This topic introduces Ingresses and how the Application Load Balancer (ALB) Ingress controller works. This topic also describes the requirements for installing the ALB Ingress controller and the usage notes.
Introduction to Ingresses
In a Kubernetes cluster, an Ingress functions as an access point that exposes Services in the cluster. It distributes most of the network traffic that is destined for the Services in the cluster. An Ingress is a Kubernetes resource object that is used to enable external access to Services in a Kubernetes cluster. You can configure forwarding rules for an Ingress to route network traffic to backend pods of different Services.
How the ALB Ingress controller works
The ALB Ingress controller retrieves the changes to Ingresses from the API server and dynamically generates AlbConfig objects when Ingresses changes are detected. Then, the ALB Ingress controller performs the following operations in sequence: create ALB instances, configure listeners, create Ingress rules, and configure backend server groups. The Service, Ingress, and AlbConfig objects interact with each other in the following ways:
- A Service is an abstraction of an application that is deployed in a group of replicated pods.
- An Ingress contains reverse proxy rules. It controls to which Services HTTP or HTTPS requests are routed. For example, an Ingress routes requests to different Services based on the hosts and URLs in the requests.
- An AlbConfig object is a CustomResourceDefinition (CRD) object that the ALB Ingress controller uses to configure ALB instances and listeners. An AlbConfig object corresponds to one ALB instance.
How the ALB Ingress controller works
The ALB Ingress controller is compatible with the NGINX Ingress controller, and provides improved traffic routing capabilities based on ALB instances. The ALB Ingress controller supports complex routing, automatic certificate discovery, and HTTP, HTTPS, and QUIC protocols. The ALB Ingress controller meets the requirements of cloud-native applications for ultra-high elasticity and balancing of heavy traffic loads at Layer 7.
Requirements for installing the ALB Ingress controller
To install the ALB Ingress controller in a registered cluster, make sure that the following requirements are met:
The cluster runs a Kubernetes version later than 1.18.
The cluster is deployed in a zone and region that are supported by ALB. For more information, see Supported regions and zones.
The self-managed Kubernetes cluster is connected to the register cluster over an internal network.
The ALB Ingresses are associated with pods that are deployed on elastic container instances or pods that are associated with elastic network interfaces (ENIs) in a hybrid cluster. The hybrid cluster uses the Terway network plug-in.