I've successfully deployed my Ingress resource and its associated services, but when I run kubectl get ing, the ADDRESS field remains completely blank even after waiting for several minutes. The pods are running, and the service is active, but I can't access my application externally. Is this usually a configuration issue with the Ingress Controller, a missing LoadBalancer service, or an issue with the ingressClassName in newer Kubernetes versions (1.22+)? How can I trigger the controller to assign an IP or hostname?
3 answers
The most common reason for a blank ADDRESS field is that an Ingress Controller (like Nginx, Traefik, or HAProxy) is either not installed or not watching your Ingress resource. In Kubernetes 1.22 and later, you must explicitly define the ingressClassName in your YAML (e.g., ingressClassName: nginx). If the controller is installed, check its service; if you are on a cloud provider (AWS, GCP, Azure), the Ingress Controller's service must be of type: LoadBalancer so the cloud provider can provision an external IP. Once the LoadBalancer receives its IP from the cloud, the Ingress Controller will update the Ingress resource, and the ADDRESS will finally populate.
I’m running a local cluster using Minikube. Does the ADDRESS field work differently there? I've followed the tutorials, but I still see a blank column even after enabling the ingress addon.
Don't forget to check the Ingress Controller logs. If there’s a misconfiguration in your backend service names or port numbers, the controller might refuse to process the Ingress resource, which prevents the address assignment.
I agree with Brenda. I recently had this issue because my Service and Ingress were in different namespaces. The Ingress Controller can usually only see services in its own namespace unless configured otherwise. Moving them to the same namespace fixed the "No Address" issue immediately!
David, on Minikube, you often need to run the minikube tunnel command in a separate terminal window. Because Minikube runs in a VM or container, it needs that tunnel to bridge the network and provide a "LoadBalancer" IP to the cluster. Once the tunnel is active, the Ingress Controller will see the available IP and update the ADDRESS field, usually to 127.0.0.1 or the Minikube VM IP.