All Products
Search
Document Center

Container Service for Kubernetes:Install the NGINX Ingress controller

Last Updated:May 12, 2025

In cloud-edge collaboration scenarios, traffic processing for services under edge units is prioritized within edge node pools. This topic describes how to deploy the NGINX Ingress controller in both edge node pools and cloud node pools in ACK Edge clusters, providing load balancing for edge unit services.

Background information

ACK Edge provides the following capabilities for non-intrusive enhancements:

  • Edge autonomy: self-healing during network disruptions

  • Edge units: logical isolation of edge node groups

  • Edge traffic management: local-first traffic prioritization

  • Native operational API support: full Kubernetes API compatibility

ACK Edge natively supports unified application lifecycle management and resource scheduling across cloud-edge environments. You can add edge nodes to an ACK Edge cluster in a few steps.

Usage notes

When you deploy ack-ingress-nginx-v1 in edge node pools and cloud node pools, take note of the following:

  • The Kubernetes version of the ACK Edge cluster is 1.19 or later.

  • You can deploy ack-ingress-nginx-v1 in an ACK Edge cluster multiple times. Specify a unique release name each time you deploy ack-ingress-nginx-v1. We recommend using independent namespaces for each deployment to isolate operations.

  • If you use the default settings during the first time you deploy ack-ingress-nginx-v1 in an ACK Edge cluster, ack-ingress-nginx-v1 is deployed in the default node pool of the cluster.

Procedure

  1. Log on to the ACK console. In the left-side navigation pane, choose Marketplace > Marketplace.

  2. On the App Catalog tab of the Marketplace page, find and click ack-ingress-nginx-v1.

  3. On the ack-ingress-nginx-v1 page, click Deploy in the upper-right corner of the page.

  4. In the Deploy wizard, set the Cluster, Namespace, and Release Name parameters.

    Note

    When you deploy ack-ingress-nginx-v1 in a node pool, we recommend that you specify the release name in the ack-ingress-nginx-v1-{Node pool name} format. Example: ack-ingress-nginx-v1-edge-hangzhou.

  5. Click Next to set the parameters on the Parameters wizard page.

    To retrieve the node pool IDs for service.nodeSelector configuration, go to the cluster details page in the ACK console and choose Nodes > Node Pools in the left-side navigation pane. Then, retrieve the cloud node pool ID and edge node pool ID in the node pool list.

    • Set the following parameters when deploying ack-ingress-nginx-v1 in a cloud node pool:

      • Add the following label to the nodeSelector parameter: alibabacloud.com/nodepool-id {Node pool ID}.

        Note

        You need to specify only alibabacloud.com/nodepool-id: {Node pool ID} in the nodeSelector parameter.

        label

      • Set the name and controllerValue fields in the ingressClassResource parameter.

        Note

        If you want to deploy ack-ingress-nginx-v1 in an ACK Edge cluster multiple times, you must specify unique values for the name and controllerValue fields each time you deploy ack-ingress-nginx-v1. Set the fields based on the following description:

        • Set name in the ack-nginx-{Node pool name} format. Example: ack-nginx-edge-hangzhou.

        • Set controllerValue in the "k8s.io/ack-ingress-nginx-{Node pool name}" format. Example: "k8s.io/ack-ingress-nginx-edge-hangzhou".

        para

    • Set the following parameters when deploying ack-ingress-nginx-v1 in an edge node pool:

      • Add the following label to the nodeSelector parameter: alibabacloud.com/nodepool-id: {Node pool ID}.

        Note

        You need to specify only alibabacloud.com/nodepool-id: {Node pool ID} in the nodeSelector parameter.

        label

      • Set the global. edgeNodePool parameter to true. ack-ingress-nginx-v1 automatically performs the following operations:

        • The Service type of the NGINX Ingress controller deployed on edge nodes will be automatically modified from LoadBalancer to NodePort. To expose your applications deployed at the edge to the public Internet, you must configure a load balancer with a public IP address.

        • Specify a public image address for the NGINX Ingress controller. This prevents deployment failures when the system fails to pull private images that are hosted on Alibaba Cloud.

        shezhi

      • Set the name and controllerValue fields in the ingressClassResource parameter.

        Note

        If you want to deploy ack-ingress-nginx-v1 in an ACK Edge cluster multiple times, you must specify unique values for the name and controllerValue fields each time you deploy ack-ingress-nginx-v1. Set the fields based on the following description:

        • Set name in the ack-nginx-{Node pool name} format. Example: ack-nginx-edge-hangzhou.

        • Set controllerValue in the "k8s.io/ack-ingress-nginx-{Node pool name}" format. Example: "k8s.io/ack-ingress-nginx-edge-hangzhou".

        para

  6. Click OK.

  7. In the left-side navigation pane of the cluster details page, choose Applications > Helm.

    On the Helm page, you can find that the NGINX Ingress controller is deployed.