You created an Ingress but nothing works. What could be missing?
Usually no Ingress controller is installed, so no one reads the rules. Also check ingressClassName, that the backend Service and port exist, DNS pointing to the controller's address, and that Pods are ready.
Explain it simply
A signboard saying 'Admissions: first floor' is useless if no staff member exists to guide people. The Ingress is the signboard; the controller is the staff.
Kubernetes does not ship a default Ingress controller. Install one such as ingress-nginx, and check kubectl get pods -n ingress-nginx. Then work through the list: does ingressClassName match an existing IngressClass (kubectl get ingressclass)? Does kubectl describe ingress shop show the backend Service with endpoints, not <error>? Is the path type correct, with Prefix or Exact? Does your domain's DNS A record, or your hosts file for testing, point to the controller's external IP or load balancer? Finally check the controller's logs for config errors.
A 404 from nginx usually means the controller works but no rule matches the host or path; a 502 or 503 means no healthy backend.
Example
kubectl get pods -n ingress-nginx
kubectl get ingressclass
kubectl describe ingress shop
kubectl logs -n ingress-nginx deploy/ingress-nginx-controllerWhat to say in the interview
"First I confirm an Ingress controller is installed and running, then the ingressClassName, backend Service and endpoints, DNS to the controller's IP, and the controller logs. 404 means no rule matched; 502 or 503 means no healthy backend."
Common mistakes
- Using an annotation or class name that belongs to a different controller.