ACS叢集中Node對象以虛擬節點的形式提供。建立叢集時,ACS會自動在所選可用性區域下建立虛擬節點,每個可用性區域對應一個虛擬節點。如果您有資源打散分布、保證算力供應、擴充交換器IP等需求,可以建立新的虛擬節點,在保證叢集高可用的同時,解決算力庫存不足、交換器可用IP不足的問題。
使用情境
預設情況下,在建立ACS叢集時,ACS會根據您選擇的可用性區域或者交換器,分別在每個可用性區域下建立一個對應的虛擬節點。ACS Pod會根據調度策略部署在相應的虛擬節點下,佔用交換器的一個私網IP。以下情境,您可能需要建立新的虛擬節點。
叢集高可用:某些業務情境(如分布式任務),您可能需要將Pod分散部署到多個不同的可用性區域,以保證高可用。
算力庫存不足:當前虛擬節點對某類算力的供應不足,無法滿足您的業務需求,需要添加算力充足的可用性區域。
可用IP不足:因業務規模擴大,網路規劃不足,當前虛擬節點包含的交換器下已經沒有足夠的可用IP,叢集需要添加交換器。
前提條件
已在叢集所屬VPC下,在新的可用性區域中建立了新的交換器。關於如何建立交換器,請參見建立和管理交換器。
虛擬節點和可用性區域一一對應,交換器所屬可用性區域如果已有對應的虛擬節點,則不能重複建立。您可以在叢集的虛擬節點頁面確認當前已有虛擬節點所對應的可用性區域。
使用限制
虛擬節點本身不支援自訂Label、Annotation、Taint。
方式一:通過控制台建立虛擬節點
容器計算服務控制台已支援白屏化建立虛擬節點,您可以通過以下步驟建立虛擬節點,ACS會自動更新交換器配置。
建立新的虛擬節點後,ACS會自動更新acs-profile中的vSwitchIds配置,添加新的交換器。
登入容器計算服務控制台。
在叢集列表頁面,單擊目的地組群名稱,進入該叢集的管理頁面。
在叢集管理頁面的左側導覽列,單擊虛擬節點。
在虛擬節點頁面,單擊建立虛擬節點。
在虛擬交換器處,選中交換器,然後單擊確認。
相關說明如下:
系統會自動從叢集所在VPC中篩選出已有交換器。您也可以單擊建立虛擬交換器,至專用網路控制台建立新的交換器。
建議使用資源配置推薦功能,ACS會根據您選擇的算力類型,為您推薦算力充足的可用性區域。
虛擬節點和可用性區域一一對應,交換器所屬可用性區域如果已有對應的虛擬節點,則不能重複建立。
重要資源推薦功能將交換器劃分為三種類型:
不可用:在控制台無法直接選取,表示該交換器對應的可用性區域暫不支援ACS算力。
推薦使用:在資源配置推薦列表中選擇ComputeClass或GPU卡型後,可用性區域列中有高亮提示的交換器,表示該可用性區域對應的資源類型充足。
其他:在資源配置推薦列表中選擇ComputeClass或GPU卡型後,可用性區域列沒有高亮提示,但交換器可以選取,表示該可用性區域對應的資源類型不如“推薦使用”的類型充足,或者資源緊張。
ACS叢集內支援提交多種計算類型的Pod,建議您根據計算類型需求情況,至少選取一個“推薦使用”的可用性區域。

確認虛擬節點的狀態為已生效。
方式二:修改acs-profile的vSwitchIds配置
虛擬節點與可用性區域一一對應,如果叢集配置的交換器所屬可用性區域沒有對應虛擬節點時,系統會自動建立。因此,您可以通過更新acs-profile,在vSwitchIds中添加交換器,來實現自動建立虛擬節點。
您也可以通過在vSwitchIds中減少交換器來實現自動刪除虛擬節點。操作前,請確保該交換器下沒有部署Pod。
控制台
登入容器計算服務控制台。
在叢集列表頁面,單擊目的地組群名稱,進入該叢集的管理頁面。
修改acs-profile的
vSwitchIds配置。在左側導覽列,選擇。
在配置項頁面的命名空間處,選擇kube-system。
找到acs-profile,單擊對應的編輯。
在
vSwitchIds處,輸入新的交換器ID,然後單擊確定。說明多個交換器ID之間採用半形逗號(,)隔開。如果新添加的交換器所屬可用性區域並沒有對應的虛擬節點,ACS會自動建立。

確認已建立新的虛擬節點。
在左側導覽列,單擊虛擬節點。
在虛擬節點頁面確認已自動建立新的虛擬節點,且虛擬節點的狀態為已生效。
kubectl
串連叢集。具體操作,請參見擷取叢集kubeconfig並通過kubectl工具串連叢集或在CloudShell上通過kubectl管理Kubernetes叢集。
確認當前虛擬節點狀態。
kubectl get node返回樣本如下:
NAME STATUS ROLES AGE VERSION virtual-kubelet-cn-shanghai-g Ready agent 17d v1.30.1-alibaba.13+ae02e00117a549 virtual-kubelet-cn-shanghai-l Ready agent 17d v1.30.1-alibaba.13+ae02e00117a549 virtual-kubelet-cn-shanghai-m Ready agent 19d v1.30.1-alibaba.13+ae02e00117a549修改acs-profile的
vSwitchIds配置。編輯acs-profile。
kubectl edit cm -n kube-system acs-profile修改
vSwitchIds欄位值,添加新的交換器ID。說明多個交換器ID之間採用半形逗號(,)隔開。如果新添加的交換器所屬可用性區域並沒有對應的虛擬節點,ACS會自動建立。
data: enableClusterIp: "true" enableHybridMode: "false" enableLinuxArm64Node: "false" enableLogController: "false" enablePVCController: "true" enablePrivateZone: "false" enableReuseSSLKey: "false" enableUpdatePodResourceController: "false" enableWindowsAmd64Node: "false" featureGates: ProtectionFinalizers=false resourceGroupId: "" securityGroupId: sg-uf61931oi1w4te****** selectors: "" slsMachineGroup: "" vSwitchIds: vsw-uf68xih52l5inkm******,vsw-uf67n6lumryq7li******,vsw-uf6i6bsihi3sger******,vsw-uf6g4yjk3kemgei******修改完成後,儲存退出。
確認已建立新的虛擬節點。
kubectl get node返回樣本如下,可以看到已新增一個名為
virtual-kubelet-cn-shanghai-e的虛擬節點。NAME STATUS ROLES AGE VERSION virtual-kubelet-cn-shanghai-e Ready agent 8s v1.30.1-alibaba.13+ae02e00117a549 virtual-kubelet-cn-shanghai-g Ready agent 17d v1.30.1-alibaba.13+ae02e00117a549 virtual-kubelet-cn-shanghai-l Ready agent 17d v1.30.1-alibaba.13+ae02e00117a549 virtual-kubelet-cn-shanghai-m Ready agent 19d v1.30.1-alibaba.13+ae02e00117a549