This topic describes the key concepts of Ingress, how an ingress controller works, and how to use the NGINX Ingress controller.
The open source Ingress-NGINX project will no longer be maintained after March 2026. Therefore, Container Service for Kubernetes will stop maintaining the NGINX Ingress controller component. Please be aware of the associated risks. For more information, see Product Announcement: End of Maintenance for the NGINX Ingress controller Component.
Ingress concepts
In a Kubernetes cluster, an Ingress acts as the access point that exposes internal services and handles most of the service traffic. An Ingress is a Kubernetes resource object used to manage how external traffic accesses internal services. You can configure forwarding rules in an Ingress resource to route traffic to the backend pods of different Services. For more information about the comparison of different Ingresses in ACK, see Comparison among Nginx Ingresses, ALB Ingresses, and MSE Ingresses.
How an ingress controller works
An ingress controller parses the forwarding rules defined in an Ingress. When an ingress controller receives a request, it matches the request against the Ingress rules and forwards it to the Pods of the corresponding Service. In Kubernetes, the relationship between a Service, an Ingress, and an ingress controller is as follows:
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 Ingress controller is a reverse proxy program that parses Ingress rules. If changes are made to the Ingress rules, the Ingress controller updates the Ingress rules accordingly. After an Ingress controller receives a request, it redirects the request to a Service based on the Ingress rules.
The changes to Ingresses in a Kubernetes cluster are updated to Ingress controllers through the cluster API server. The configurations of SLB instances are dynamically generated based on these changes. Then, Ingress rules are updated based on the configurations. 
NGINX Ingress Controller usage
The official Kubernetes project currently maintains the NGINX Ingress controller. ACK Serverless provides an optimized version of the community NGINX Ingress controller. When you create an ACK Serverless cluster, you can install this customized version of the NGINX Ingress controller component.