全部產品
Search
文件中心

Container Service for Kubernetes:部署Nginx Ingress Controller

更新時間:Jun 03, 2026

雲邊協同的情境中,邊緣單元下的服務呈現本地流量閉環的特性,即流量優先在邊緣節點池內完成處理。本文介紹如何在ACK Edge叢集的雲端節點池和邊緣節點池部署Nginx Ingress Controller,為邊緣單元下的服務提供負載平衡等功能。

重要

由於Ingress NGINX開源專案於2026年3月後停止維護更新,Container Service for Kubernetes將停止Nginx Ingress Controller組件維護,請充分瞭解使用風險。更多詳細內容,請參見【產品公告】關於停止維護Nginx Ingress Controller組件的公告

背景資訊

阿里雲Container Service Edge 版採用非侵入方式增強,提供邊緣自治、邊緣單元、邊緣流量管理、原生營運API支援等能力。它以原生方式支援邊緣計算情境下的應用統一生命週期管理和統一資源調度。您可以快速將自己的邊緣節點接入到叢集中。

注意事項

在雲端節點池和邊緣節點池部署ack-ingress-nginx-v1時注意事項如下:

  • ACK Edge叢集為1.19及以上版本。

  • 支援在同一個ACK Edge叢集上多次部署, 每次需唯一的發布名稱。建議每次部署選擇獨立的命名空間以便管理。

  • 首次部署時若不修改參數配置,則ack-ingress-nginx-v1預設部署到ACK Edge叢集的預設節點池。

操作步驟

  1. 登入Container Service管理主控台,在左側導覽列選擇市場 > 應用市場

  2. 應用市場應用目錄頁簽,搜尋並選中ack-ingress-nginx-v1。

  3. 在ack-ingress-nginx-v1組件頁面,單擊右上方的一鍵部署

  4. 在彈出面板中,選擇叢集命名空間,並填寫發布名稱

    說明

    在節點池部署ack-ingress-nginx-v1時,建議發布名稱以ack-ingress-nginx-v1-{節點池名稱}格式命名。例如:ack-ingress-nginx-v1-edge-hangzhou

  5. 單擊下一步進入參數配置頁面,設定參數資訊。

    您可以在Container Service管理主控台叢集管理頁左側導覽列中,選擇節點管理 > 節點池,查看節點池列表,找到對應的雲端節點池ID和邊緣節點池ID,用於後續配置nodeSelector

    • 在雲端節點池部署時需設定如下參數:

      • nodeSelector配置項中加入雲端節點池的Label:alibabacloud.com/nodepool-id: {節點池ID}

        說明

        nodeSelector欄位只需保留alibabacloud.com/nodepool-id: {節點池ID}資訊。

        ##
        nodeSelector:
          kubernetes.io/os: linux
          alibabacloud.com/nodepool-id: np-xxxx
      • ingressClassResource配置項中設定namecontrollerValue

        說明

        在同一個ACK Edge叢集中多次部署ack-ingress-nginx-v1時,每次部署的namecontrollerValue要確保唯一。命名規範建議如下:

        • nameack-nginx-{節點池名稱},例如:ack-nginx-edge-hangzhou

        • controllerValue"k8s.io/ack-ingress-nginx-{節點池名稱}",例如:"k8s.io/ack-ingress-nginx-edge-hangzhou"

        ingressClassResource:
            # name & controllerValue is used instead of ingressClass,
            # and name can be also used in kubernetes.io/ingress.class annotation.
            # prevent override of default ingress class in addon, controllerValue's default value is 'k8s.io/ack-ingress-nginx',
            # and default name is 'ack-nginx'.
            # please both modiy name and controllerValue to unique values.
            name: ack-nginx-edge-hangzhou
            controllerValue: "k8s.io/ack-ingress-nginx-edge-hangzhou"
    • 在邊緣節點池部署時需設定如下參數:

      • nodeSelector配置項中加入邊緣端節點池的Label:alibabacloud.com/nodepool-id: {節點池ID}

        說明

        nodeSelector欄位只需保留alibabacloud.com/nodepool-id: {節點池ID}資訊。

      • global. edgeNodePool設定為true。ack-ingress-nginx-v1會自動進行如下操作:

        • 自動將邊緣節點側部署的Nginx Ingress Controller的Service的Type類型由LoadBalancer改為NodePort模式。若您需要將邊緣側的服務對公網進行訪問,則需要單獨配置帶有公網IP的負載平衡器。

        • Nginx Ingress Controller使用的鏡像,會自動變為公網地址的鏡像,避免邊緣側節點無法拉取內網鏡像。

        global:
          clusterType: "Edge"
          # For edge cluster, set it to true if the controller will be deployed in an edge node pool.
          edgeNodePool: true
      • ingressClassResource配置項中設定namecontrollerValue

        說明

        在同一個ACK Edge叢集中多次部署ack-ingress-nginx-v1時,每次部署的namecontrollerValue要確保唯一。命名規範建議如下:

        • nameack-nginx-{節點池名稱},例如:ack-nginx-edge-hangzhou

        • controllerValue"k8s.io/ack-ingress-nginx-{節點池名稱}",例如:"k8s.io/ack-ingress-nginx-edge-hangzhou"

  6. 單擊確定完成安裝。

  7. 在叢集管理頁左側導覽列中,選擇應用 > Helm

    在Helm頁面可以看到Nginx Ingress Controller服務已經部署成功。