CertGrid CertGrid
Hands-on Lab·Certified Kubernetes Application Developer

Ingress Rules and Ingress Controllers

An Ingress is only a request. Something has to implement it, and if nothing claims it the object sits there looking healthy forever. This creates that exact failure first, then a working two-path Ingress, and finishes with the behaviour that surprises people most: the matched path is passed to the backend unchanged.

Services and Networking Guide 36 of 44 Intermediate

This cluster's ingress-nginx runs as a NodePort Service, so the address the Ingress advertises has nothing listening on port 80 - traffic goes to the controller's ClusterIP from inside, or its NodePort from outside. On a cloud cluster the same Service would be a LoadBalancer and the advertised address would answer on 80 directly.

The ingress-nginx controller runs on cka1001-node03, which is the node its NodePort is reached on in the last step.
Server NameIP AddressOSRolesCPURAMHDD
CKA1001192.168.0.175Ubuntu 26.04 LTSControl Plane Node2 Core4 GB50 GB
CKA1001-NODE01192.168.0.176Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE02192.168.0.177Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE03192.168.0.178Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB

This guide includes

Use this when an Ingress is applied and no address ever appears. This matters because an Ingress is only a request - with no ingressClassName nothing claims it, and it sits there valid and unprogrammed indefinitely.

Before you start

  1. Two backends that serve their own path

  2. An Ingress with no class

  3. With a class, it is programmed

  4. Does it route

  5. The path reaches the backend unchanged

Official sources