Welcome to the Linux Foundation Forum!
Lab 10.1 - <error: endpoints "default-http-backend" not found> - Solved

Hi,
K8s version
Client Version: v1.18.1 Server Version: v1.18.1
Traefik version
curl 172.168.100.101:8080/api/version {"Version":"v1.7.24","Codename":"maroilles"}
- I was getting
404 page not found
whencurl -H "Host: www.example.com" http://k8smaster/
kubectl describe ingress/ingress-test
Name: ingress-test Namespace: default Address: Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>) Rules: Host Path Backends ---- ---- -------- www.example.com / secondapp:80 (192.168.245.98:80) Annotations: kubernetes.io/ingress.class: traefik Events: <none>
Researching I found this option for ingress.rule.yaml. It changes the "Default backend" option. I've adapted to our exercise and it started working.
.... spec: backend: serviceName: secondapp servicePort: 80 rules: ....
The default backend has changed.
kubectl describe ingress ingress-test
Name: ingress-test Namespace: default Address: Default backend: secondapp:80 (192.168.245.98:80) Rules: Host Path Backends ---- ---- -------- www.example.com / secondapp:80 (192.168.245.98:80) thirdpage.org / thirdpage:80 (192.168.245.99:80) Annotations: kubernetes.io/ingress.class: traefik Events: <none>
0
Comments
Hi @turnes,
The
default-backend
is responsible to deliver the404-page-not-found
error page when you are trying to access a Service that does not have a rule defined or a Service that has not been configured correctly.By overwriting the
default-backend
you are forcing the Ingress to send all bad requests to thesecondapp
Service. This did not solve the actual issue you were facing earlier, it only introduced a shortcut. When troubleshooting an Ingress, you have to follow the components that are part of that connection: Pod, Service, and Ingress.The first step would be to make sure that the Pod is running, and you can talk to the Pod directly via its port 80.
The second step would be to make sure that the Service is running, that the Endpoint displays IP address(es) and you can access the Pod via the Service; if you cannot, then there is a
label/selector
mismatch or the Service'stargetPort
does not match the Pod'scontainerPort
.Then, the final step is to test through the Ingress. If not successful, revisit the Ingress rule and verify for spelling errors, and ensure the Ingress'
servicePort
matches the Service'sport
. Re-deploying the Ingress also helps, when all else seems to be correct.Regards,
-Chris
Hello,
You may also want to check the version of Traefik you are using. It looks like you are using 1.7.24, instead of what the course and included YAML file declare, which is 1.7.13. The software is rather dynamic, so each version may have important differences in configuration files.
Regards,
I'm trying to deploy a sample application with Ingress E2E - TLS.
I'm having the same issue. Been googling for almost 2 days. Still having the same Default backend error
Default backend: default-http-backend:80 ()
My pods are up and running:
website-deployment-57867dd67c-5dxwd 1/1 Running 0 43m
website-deployment-57867dd67c-sz7bf 1/1 Running 0 43m
My service info
Name: website-service
Namespace: default
Labels:
Annotations:
Selector: app=website
Type: ClusterIP
IP Families:
IP: 10.0.125.26
IPs:
Port: 8443/TCP
TargetPort: 8443/TCP
Endpoints: 192.172.1.123:8443,192.172.1.53:8443
Session Affinity: None
Events:
When I describe my ingress
Name: website-ingress
Namespace: default
Address: 40.70.164.183
Default backend: default-http-backend:80 ()
TLS:
frontend-tls terminates website.com
Rules:
Host Path Backends
---- ---- --------
website.com
/ website-service:8443 (192.172.1.123:8443,192.172.1.53:8443)
Annotations: appgw.ingress.kubernetes.io/appgw-trusted-root-certificate: backend-tls
appgw.ingress.kubernetes.io/backend-hostname: backend
appgw.ingress.kubernetes.io/backend-path-prefix: /
appgw.ingress.kubernetes.io/backend-protocol: https
appgw.ingress.kubernetes.io/ssl-redirect: true
kubernetes.io/ingress.class: azure/application-gateway
Events:
Thoughts!?
Are you using Azure for the labs? There are many, many networking issues with Azure. We do not support running labs in it due to the many ongoing issues.
The labs will work on GCE, AWS EC2, Digital Ocean, Virtual Box, KVM, Bare metal, and VMWare. If the lab that works on all of these platforms but does not work on Azure, it's not the labs or Kubernetes at fault.
If you are using something other than Azure, what Ingess controller are you using? Do you get a 404 error when you go to nodeIP:80?
What exercise and step is not working?
Regards,
Yes using Azure, and yes I'm getting 404 error