ACK managed clusters and ACK Serverless clusters support NGINX Ingresses, Application Load Balancer (ALB) Ingresses, and Microservices Engine (MSE) Ingresses. NGINX Ingresses require manual maintenance. ALB Ingresses and MSE Ingresses are fully managed. This topic describes the differences among NGINX Ingresses, ALB Ingresses, and MSE Ingresses in terms of use scenarios, usage, and features. You can select suitable Ingress types for your business based on the comparison details described in this topic.
Background information
NGINX Ingresses provide traffic management and advanced routing features at Layer 7 based on the open source Ingress NGINX Controller. NGINX Ingresses are compatible with the upstream community and support extensions. NGINX Ingresses require manual maintenance. No service-level agreement (SLA) guarantee is provided for NGINX Ingresses. If you want to customize gateways, you can choose NGINX Ingresses.
ALB Ingresses are developed based on ALB instances and are fully compatible with NGINX Ingresses. ALB Ingresses are fully managed and adopt an all-in-one architecture. ALB Ingresses support SSL hardware acceleration, auto scaling, low latency, and complex routing. Each ALB instance supports one million queries per second (QPS) and provides enhanced traffic routing capabilities for ALB Ingresses. For more information, see ALB Ingress management.
As Higress Enterprise Edition gateways, MSE Ingresses are compatible with NGINX Ingresses and are suitable for microservices scenarios. MSE Ingresses support multiple service discovery modes, various authentication methods, and plug-ins and extensions written in multiple languages. ALB Ingresses support canary releases, resource prefetching, and traffic throttling. Each MSE cloud-native gateway supports one million QPS and provides enhanced traffic routing capabilities for MSE Ingresses.
Scenarios
Type | Scenario |
Nginx Ingress |
|
ALB Ingress |
|
MSE Ingress |
|
Implementation
The following figures show how NGINX Ingresses, ALB Ingresses, and MSE Ingresses forward requests received by www.example.net/app
to backend applications.
NGINX Ingresses
The NGINX Ingress controller is an implementation that integrates both the control plane and the data plane. Each pod of the NGINX Ingress controller runs a controller process that serves as the control plane and other NGINX processes that serve as the data plane. Therefore, the pods of the NGINX Ingress controller process both the requests for configurations and the requests from users.
ALB Ingresses
The ALB Ingress controller uses the API server to dynamically obtain changes in Ingress and AlbConfig resources and then updates the ALB instance. Unlike the NGINX Ingress controller, the ALB Ingress controller is a managed control plane of the ALB instance. It manages the ALB instance but does not process user requests. User requests are distributed by the ALB instance.
MSE Ingresses
The MSE Ingress controller listens for Ingress resources defined by MseIngressConfigs in the cluster and coordinates MSE cloud-native gateways to implement the traffic management rules specified in the Ingress configurations. Unlike the NGINX Ingress controller, the MSE Ingress controller is used to manage MSE cloud-native gateways and their control planes. The pods of the MSE Ingress controller do not process requests from users. User requests are routed and forwarded by the MSE cloud-native gateway.
Comparison of features
Item | Nginx Ingress | ALB Ingress | MSE Ingress |
Service positioning |
|
|
|
Service architecture | Provides extended features based on NGINX and Lua. |
|
|
Basic routing |
|
|
|
Protocol |
|
|
|
Configuration change |
|
|
|
Authentication |
| Supports TLS-based authentication. |
|
Performance |
|
|
|
Observability |
|
|
|
O&M |
|
| Gateways are fully managed and O&M-free. |
Security |
|
|
|
Expense and costs |
|
|
|
For more information, see Manage the NGINX Ingress controller. | For more information, see Manage the ALB Ingress controller. | For more information, see Manage the MSE Ingress Controller component. | |
Service governance |
|
|
|
Scalability | Supports Lua for configuring extended features. | Supports AScript, which can be used to configure extended features. For more information, see AScript overview. |
|
Cloud-native support | A component that requires manual maintenance and can be used in ACK clusters and ACK Serverless clusters. For more information, see Ingress overview. |
| A user-side component that can be used in ACK clusters and ACK Serverless clusters and supports seamless integration with the key annotations of NGINX Ingresses. For more information about the annotations supported by MSE Ingresses, see Annotations supported by MSE Ingress gateways. |
References
For more information about how to migrate your workloads from NGINX Ingresses to other types of Ingresses or Service Mesh (ASM) gateways, see the following topics: