There are several parts in this question, I do think need to be addressed:
- There are multiple
NGINX Ingress Controllers
available to use within Kubernetes environment. Specifying which exact one is used will definitely help in troubleshooting process as there could be slight differences in their inner workings that could affect your workload.
You can read more about this topic (NGINX
based Ingress
controllers) by following this thread:
A side note!
I saw you're using this specific Ingress
controller as per previous question asked on StackOverflow:
- What is a
default-backend
?
default-backend
in short is a "place" (Deployment
with a Pod
and a Service
) where all the traffic that doesn't match Ingress
resource is sent (for example unknown path
).
Your Ingress
resource is displaying following message:
default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
As it can't find an Endpoint
named default-http-backend
(with associated Service
of the same name). To fix that you'll need to provision such resources.
Example of such default-backend
implementation:
Ingress
resources and it's path
As for your Ingress
resource. It's crucial to include YAML
manifests for resources you are deploying. It's easier for other community member to see the whole pictures and the potential issues you are facing.
By the part of the: $ kubectl describe ingress ingress-svc
it can be seen:
Rules:
Host Path Backends
---- ---- --------
auditmee.com
/swagger-ui.html springboot-service:8080 (192.168.157.76:8080,...)
There is a host: HOST.com
that have one really specific path (file to be exact). Setup like this will allow your client to have access only to swagger-ui.html
. If you had some other files, there wouldn't be available:
curl http://HOST/swagger-ui.html
<-- 200
curl http://HOST/super-awesome-icon.png
<-- 404
A side note!
Also please check on which protocol HTTP
/HTTPS
are you serving your resources.
As your workload is unknown to us, you could try to set your path
to path: /
. This rule would allow all request for resources for HOST
to be passed to your springboot-service
.
I encourage you to check available documentation for more resources:
I also found displaying logs of the Ingress
controller to be highly effective in troubleshooting:
$ kubectl logs -n NAMESPACE INGRESS-POD-NAME
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…