By Cheng Tan
Editor's Note: The retirement of Ingress NGINX has caused strong concern among developers. The public account article "Regretfully, Ingress NGINX is Retiring" has received over 20,000 reads.

The official response provides comprehensive solutions for migrating to Gateway API and over 20 Ingress controllers. However, during the migration process, enterprises will want to understand whether the new Ingress controllers are compatible with Ingress NGINX annotations, how to perform gradual traffic switching during the migration, and how to quickly roll back in case of traffic loss to ensure a smooth migration process without affecting online business.
Therefore, this article will provide operationally-based response solutions, using Alibaba Cloud's cloud-native API gateway (Higress Enterprise Edition) as an example, detailing the migration process step by step.
As Nginx Ingress gradually stops maintenance, users need to migrate to a new gateway solution. The cloud-native API gateway is a sub-product of Alibaba Cloud's API gateway, unifying traffic gateway, microservice gateway, and security gateway, providing Nginx Ingress users with a smooth migration path and powerful feature upgrades.
The cloud-native API gateway offers two core configuration modes to suit different management needs and usage scenarios:
1. Listening to K8s Ingress (Ingress Mode): The gateway operates as an APIG Ingress Controller, compatible with K8s Ingress resources and Nginx Ingress annotations, suitable for teams looking to maintain K8s native workflows (such as GitOps).
2. Console Configuration API (API Management Mode): Configuration is done through the Alibaba Cloud console or API, providing complete API lifecycle management, advanced security policies, and API operation capabilities, suitable for scenarios requiring centralized governance and refined management.
This document will detail the comparison of the features, advantages, and applicable scenarios of these two modes to help you choose the most suitable configuration path.
This mode deploys the cloud-native API gateway as the Ingress Controller for the Kubernetes cluster, managing the north-south traffic of the cluster.
kubectl apply, GitOps, and other existing workflows to manage routing rules.Applicable Scenarios:
For the complete Ingress capabilities supported by the APIG Ingress Controller, please refer to:
APIG Ingress (the Ingress Controller of the cloud-native API gateway) supports the vast majority of Nginx Ingress annotations (statistically, it supports 51 types, covering 90% of user scenarios). This means existing K8s Ingress YAML files can be migrated without significant modification.
Key Compatible Annotation Examples:
| Function Category | Compatible Nginx Annotations (nginx.ingress.kubernetes.io/) |
|---|---|
| Routing and Rewriting |
rewrite-targetuse-regexupstream-vhost
|
| Traffic Splitting |
canarycanary-by-headercanary-weight
|
| Security and Cross-Domain |
enable-corscors-allow-methodsssl-redirectforce-ssl-redirect
|
| Timeout and Retry |
proxy-next-upstreamproxy-next-upstream-tries
|
| IP Access Control | whitelist-source-range |
This mode not only is compatible with Nginx but also provides advanced features not available in Nginx through higress.ingress.kubernetes.io/ prefixed annotations, such as:
Issues with Nginx: This capability cannot be achieved.
APIG Ingress Solution: Provides a native higress.ingress.kubernetes.io/warmup annotation that ensures when new nodes come online, traffic gradually increases within the specified warm-up window, thoroughly ensuring the new nodes complete their warm-up.
nginx.ingress.kubernetes.io/limit-rps implements Pod-level rate limiting, where the total limit is equal to "limit value x number of Pods," making precise control difficult.higress.ingress.kubernetes.io/rate-limit provides a global rate limiting across all gateway instances, allowing for precise control of total QPS.higress.ingress.kubernetes.io/concurrency-limit provides global concurrency limits, protecting backend services from sudden traffic spikes.higress.ingress.kubernetes.io/mirror-target-service annotation for easily copying traffic to testing services, useful for shadow testing in production environments.This mode positions the cloud-native API gateway as a centralized API management platform. Users define and manage APIs through the Alibaba Cloud console (or API/Terraform), achieving a comprehensive upgrade from routing forwarding to API governance.
Applicable Scenarios:
Supports full-cycle management of API design, development, testing, deployment, and decommissioning. Key features include:
Offers foundational security capabilities far beyond those of the Ingress mode, decoupling complex authentication logic from backend services:
The following table summarizes the differences between the two configuration modes across key dimensions:
| Dimension | Mode One: K8s Ingress Mode | Mode Two: Console API Mode |
|---|---|---|
| Core Positioning | K8s Ingress Controller, traffic routing | Unified API management platform |
| Configuration Method | K8s YAML | Alibaba Cloud Console / API / Terraform |
| Management Workflow | GitOps / kubectl apply | UI/API driven |
| Nginx Migration | Provides one-click migration tool. | Requires redefining APIs and configuring policies |
| API Lifecycle | No. Bound to the lifecycle of K8s resources | Complete. Supports design, development, testing, deployment, versioning, decommissioning |
| Scalability | Limited. Restricted by supported annotations | High. Wealth of plugin marketplace + custom plugin hot updates |
| Service Discovery | K8s Native. Automatically discovers K8s Service | Multi-source. Supports K8s (ACK), Nacos, FC, fixed addresses, etc. |
| API Operations | No | Complete. Supports consumer management, subscriptions, quota management |
Implementation:
higress.ingress.kubernetes.io/ annotations to enable global rate limiting and other advanced features.Implementation:
Service in ACK clusters or other service sources.Implementation:
For routing with the same domain name and path, the API created in the console will have a higher priority over the routes synchronized via Ingress mode, thus allowing you to configure them individually in the console during the migration process. If issues arise, you can immediately revert to Ingress mode by deleting the console configuration.
Note: Priorities are based on individual routing granularity, not the entire domain name. This means:
This priority mechanism can be better understood through examples:
Scenario: You have a domain example.com and need to gradually migrate from Ingress to console configuration.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api-service-v1
port:
number: 8080
- path: /web
pathType: Prefix
backend:
service:
name: web-service-v1
port:
number: 80
The automatically generated routes by the API gateway at this point are:
/api → api-service-v1:8080
/web → web-service-v1:80
/api path)A route is created in the console for example.com, pointing /api to the new version service api-service-v2:8080.
The actual merged route order now is:
/api → api-service-v2:8080 (configured in console, takes priority) ✅
/api → api-service-v1:8080 (Ingress configuration, will NOT be matched)
/web → web-service-v1:80 (Ingress configuration, works normally)
Effect:
example.com/api/* → routes to api-service-v2 (console configuration takes effect)example.com/web/* → routes to web-service-v1 (Ingress configuration takes effect)If issues arise with api-service-v2, simply delete the /api route configuration in the console.
After deletion, the routing order becomes:
/api → api-service-v1:8080 (Ingress configuration, restored immediately) ✅
/web → web-service-v1:80 (Ingress configuration)
Effect: Traffic immediately reverts to the Ingress configuration for api-service-v1, without needing to modify Ingress or restart any services.
After continuing to configure the /web path in the console:
/api → api-service-v2:8080 (console configuration) ✅
/web → web-service-v2:80 (console configuration) ✅
/api → api-service-v1:8080 (Ingress configuration, will NOT be matched)
/web → web-service-v1:80 (Ingress configuration, will NOT be matched)
At this point, all traffic is controlled by the console configuration, allowing for safe removal of the corresponding Ingress configuration.
If you want to learn more about Alibaba Cloud API Gateway (Higress), please click: https://higress.ai/en/
Ensuring Reliable Voice Activation: How Gongniu Murora Rebuilt Its Observability System
654 posts | 55 followers
FollowAlibaba Cloud Native Community - February 3, 2026
Alibaba Cloud Native Community - November 14, 2025
Alibaba Cloud Native - November 9, 2022
Alibaba Cloud Native Community - February 4, 2026
Alibaba Cloud Community - May 7, 2025
Alibaba Cloud Native - February 15, 2023
654 posts | 55 followers
Follow
Microservices Engine (MSE)
MSE provides a fully managed registration and configuration center, and gateway and microservices governance capabilities.
Learn More
Cloud Migration Solution
Secure and easy solutions for moving you workloads to the cloud
Learn More
Oracle Database Migration Solution
Migrate your legacy Oracle databases to Alibaba Cloud to save on long-term costs and take advantage of improved scalability, reliability, robust security, high performance, and cloud-native features.
Learn More
Database Migration Solution
Migrating to fully managed cloud databases brings a host of benefits including scalability, reliability, and cost efficiency.
Learn MoreMore Posts by Alibaba Cloud Native Community