EDAS lets you configure Nginx Ingress, ALB Ingress, or a cloud-native gateway (MSE Ingress) to expose your Kubernetes applications to external traffic. This topic describes the common scenarios and differences among Nginx Ingress, ALB Ingress, and the cloud-native gateway (MSE Ingress).
Scenarios
Nginx Ingress gateway
The Nginx Ingress gateway is built on Nginx and is the default ingress gateway for Kubernetes. It provides basic features such as security, routing, and observability. The Nginx Ingress gateway is easy to integrate. You can create a basic Ingress resource to expose services in a Kubernetes cluster. You can also extend Lua plugins or use annotations to configure snippets. This allows Nginx to support custom request and response forwarding rules.
You can use Nginx Ingress in EDAS to provide external access to your applications. For high queries per second (QPS) scenarios, you can configure multiple LoadBalancer services for the Nginx Ingress Controller to expand the gateway bandwidth. You can also use Horizontal Pod Autoscaler (HPA) to automatically scale gateway instances based on memory or CPU usage. This scales the gateway's performance horizontally.
ALB Ingress
ALB Ingress is based on Alibaba Cloud Application Load Balancer (ALB) instances. It supports ultra-high QPS and many concurrent connections. It also features automatic elastic scaling. After you expose Kubernetes services with ALB Ingress, you do not need to manually perform gateway operations and maintenance (O&M).
To use ALB Ingress in EDAS, you must first create an ALB instance. Then, you can configure an ALB Ingress application route in the EDAS console to provide external access to your EDAS applications. Because ALB instances are fully managed, you can focus on your applications instead of manually tuning or maintaining the gateway.
Cloud-native gateway (MSE Ingress)
The cloud-native gateway supports service discovery from multiple sources, such as Kubernetes services, service registries, fixed IP addresses, and DNS. MSE Ingress provides rich traffic governance features, such as single-instance throttling, service prefetch, service fallback for disaster recovery, and tag-based routing for microservices.
You can use the MSE Ingress gateway in EDAS to provide external access for your Kubernetes Service applications. You can also create cloud-native gateway routes to forward traffic for services registered with EDAS or MSE.
Comparison
Item | Nginx Ingress | ALB Ingress | Cloud-native gateway (MSE Ingress) |
Product positioning |
|
|
|
Service Architecture | Based on Nginx and extended with Lua plugins. |
|
|
Common scenarios | Scenarios that require a highly customized gateway. | Scenarios with ultra-high QPS and many concurrent connections. |
|
Performance |
|
|
|
Basic routing |
|
|
|
O&M capabilities |
|
|
|
Supported protocols |
|
|
|
Configuration changes |
| Uses OpenAPI for configuration changes, which is faster than the List-Watch mechanism. |
|
Authentication and authorization |
| Supports TLS identity authentication. |
|
Observability |
|
|
|
Service administration |
|
|
|
Security |
|
|
|
Extensibility | Lua scripts. | Uses self-developed AScript scripts. | Wasm plugins, which can be written in multiple languages. |