Kubernetes Ingress is a collection of routing rules that govern how external users can access services running in a Kubernetes cluster. In order for Kubernetes Ingress resources to work, the cluster must have an ingress controller operational.
In a nutshell, Kubernetes supports a high level abstraction called Ingress, which allows simple host or URL based HTTP routing.
Although, Ingress is a core resource in Kubernetes, it is always implemented by a third party proxy known as an Ingress Controller. An ingress controller is responsible for reading the Ingress Resource information and processing that data accordingly.
Ingress Controllers are not started automatically (unlike other Kubernetes controllers that run as part of the kube-controller-manager).
Load Balancers vs Ingress¶
It is important to understand that ingress controllers do not eliminate the need for an external load balancer. It simply adds an additional layer of routing and control behind the load balancer.
Regardless of your Ingress strategy, it is best to start with an external load balancer because it will provide a "Stable Endpoint" (IP Address) for external traffic to access.
The load balancer will then route traffic to the Ingress on your cluster that will perform service-specific routing.
View Ingress Resources¶
The Cluster Dashboard provides users a detailed view into all Ingress Resources on a given Kubernetes cluster.
- Navigate to the cluster's Dashboard
- Click on Resources
- Select Ingress
An illustrative example is shown below showing the list of Ingress resources across all namespaces on the cluster.
Users can also use the Dashboard to filter Ingress resources by a given workload. In the example below, the Ingress resource is associated with the workload "apigw".