Azure Application Gateway Ingress Controller for AKS
The Ingress Controller based on the nginx web server that we showed in the last section is a type of generic Ingress Controller that can be used in almost any environment. It relies on standard Kubernetes objects such as Deployments, Pods, and Services, and does not require any external components. If any external components are provisioned, this is done by cloud-controller-manager, and not the Ingress Controller itself.
This approach has a few drawbacks if you use it in a cloud environment such as Azure Kubernetes Service:
- You have an Azure load balancer just to proxy the requests to
nginx
Ingress Controller Pods viaNodePorts
. Then, there is another level of load balancing after the request reaches the Node, performed by kube-proxy as part of the Service object for Ingress Controller. Request routing based on paths is done by Ingress Controller Pods. And eventually, the last level of kube-proxy load balancing is at the...