雲邊協同的情境中,邊緣單元下的服務呈現本單元訪問閉環的特性。您可以通過在雲端節點池和邊緣節點池部署Nginx Ingress Controller,為邊緣單元下的服務提供負載平衡等功能。本文介紹如何在ACK Edge叢集的雲端節點池和邊緣節點池部署Nginx Ingress Controller。
背景資訊
阿里雲Container Service Edge 版採用非侵入方式增強,提供邊緣自治、邊緣單元、邊緣流量管理、原生營運API支援等能力,以原生方式支援邊緣計算情境下的應用統一生命週期管理和統一資源調度。您可以方便快速的將自己的邊緣節點接入到叢集中。
注意事項
在雲端節點池和邊緣節點池部署ack-ingress-nginx-v1時注意事項如下:
要求ACK Edge叢集版本大於等於1.19。
支援在一個ACK Edge叢集上多次部署, 每次部署需要唯一的發布名稱。
支援在一個ACK Edge叢集的同一命名空間下多次部署,但為了管理方便,建議每次部署選擇獨立的命名空間。
首次部署時若不修改參數配置值,則ack-ingress-nginx-v1預設部署到ACK Edge叢集的預設節點池。
操作步驟
在控制台左側導覽列,選擇 。
在應用市場的應用目錄頁簽,搜尋並選中ack-ingress-nginx-v1。
在ack-ingress-nginx-v1組件頁面,單擊右上方的一鍵部署。
在彈出面板中,選擇叢集、命名空間,並填寫發布名稱。
說明在節點池部署ack-ingress-nginx-v1時,建議發布名稱以ack-ingress-nginx-v1-{節點池名稱}格式命名。例如:ack-ingress-nginx-v1-edge-hangzhou。
單擊下一步進入參數配置頁面,設定參數資訊。
您可以在Container Service管理主控台叢集管理頁左側導覽列中,選擇 ,查看節點池列表,找到對應的雲端節點池ID和邊緣節點池ID。
在雲端節點池部署時需設定如下參數:
在
service. nodeSelector
配置項中加入雲端節點池的Label:alibabacloud.com/nodepool-id: {節點池ID}
。說明service. nodeSelector
欄位只需保留alibabacloud.com/nodepool-id: {節點池ID}
資訊。在
ingressClassResource
配置項中設定name
和controllerValue
。說明在同一個ACK Edge叢集中多次部署ack-ingress-nginx-v1時,每次部署的
name
和controllerValue
要確保唯一。命名規範建議如下:name
:ack-nginx-{節點池名稱}
, 例如:ack-nginx-edge-hangzhou
。controllerValue
:"k8s.io/ack-ingress-nginx-{節點池名稱}"
,例如:"k8s.io/ack-ingress-nginx-edge-hangzhou"
。
在邊緣節點池部署時需設定如下參數:
在
service. nodeSelector
配置項中加入邊緣端節點池的Label:alibabacloud.com/nodepool-id: {節點池ID}
。說明service. nodeSelector
欄位只需保留alibabacloud.com/nodepool-id: {節點池ID}
資訊。將
global. edgeNodePool
設定為true
。ack-ingress-nginx-v1會自動進行如下操作:自動將邊緣節點側部署的Nginx Ingress Controller的Service的Type類型由LoadBalancer改為NodePort模式。若您需要將自己邊緣側的服務對公網進行訪問,則需要單獨配置帶有公網IP的負載平衡器。
Nginx Ingress Controller使用的鏡像,會自動變為公網地址的鏡像,避免邊緣側節點無法拉取內網鏡像。
在
ingressClassResource
配置項中設定name
和controllerValue
。說明在同一個ACK Edge叢集中多次部署ack-ingress-nginx-v1時,每次部署的
name
和controllerValue
要確保唯一。命名規範建議如下:name
:ack-nginx-{節點池名稱}
, 例如:ack-nginx-edge-hangzhou
。controllerValue
:"k8s.io/ack-ingress-nginx-{節點池名稱}"
,例如:"k8s.io/ack-ingress-nginx-edge-hangzhou"
。
單擊確定完成安裝。
在叢集管理頁左側導覽列中,選擇 。
在Helm頁面可以看到Nginx Ingress Controller服務已經部署成功。