本文介紹靈駿節點池的常見操作流程,包括建立節點池、添加和移除節點、升級kubelet等,以及常見營運情境的處理方式。
適用範圍
靈駿叢集類型:基礎靈駿叢集服務(Lite)。
ACK 叢集類型:ACK託管叢集Pro版 1.31及以上版本。如需升級,詳見手動升級叢集。
ACK 叢集靈駿節點池:
OS kernel 版本:5.10 及以上。
OS cgroup 版本:Kubernetes 社區自 1.26 版本起支援 cgroup v2,自 1.35 版本起廢棄對 cgroup v1 的支援。若叢集版本為 1.35 及以上,節點需為使用 cgroup v2 的作業系統鏡像,使用cgroup v1作業系統的節點將無法添加到ACK叢集中。
1.35以下版本的ACK叢集升級至1.35及以上版本時,需使用cgroup v2的作業系統,否則將無法進行叢集升級。詳見將節點遷移至 cgroup v2。
ACK 叢集網路:
僅支援 IPv4 單棧叢集,不支援 IPv6 雙棧叢集。
僅支援 Terway 獨佔 ENI 模式。
不同靈駿機型的底層網路存在差異,低版本 Terway 可能不相容。建議建立靈駿節點池前,將Terway(terway-controlplane和terway-eniip)升級至最新版本。
需確保 ACK 叢集靈駿節點池使用的Pod 交換器包含靈駿叢集所在的可用性區域。
ACK 叢集的Pod 交換器支援在建立叢集時配置。建立ACK叢集後,添加靈駿節點前,也支援通過修改terway-eniip 參數PodVswitchId來配置。操作流程,請參見修改Pod虛擬交換器。
ACK 叢集組件版本:
建立ACK託管叢集Pro版時預設使用最新組件版本。在存量叢集中建立靈駿節點池時,如果已使用以下組件,請升級組件至指定版本。
準備工作
建立靈駿叢集。選擇基礎靈駿叢集服務,並在靈駿節點分組中添加節點。
建立ACK託管叢集。選擇Pro版,需與靈駿叢集處在相同地區和相同VPC下。
建立ECS節點池。可在建立ACK託管叢集時配置,建議保有 3 個及以上ECS節點,用於部署部分ACK管控組件,以保證高可用。
安裝ACK叢集組件。
通過組件管理頁面安裝ack-rdma-device-plugin組件。
若靈駿節點使用靈駿串連,則需單獨申請ACK VPD CNI組件白名單,在建立靈駿節點池前,通過組件管理頁面安裝ACK VPD CNI組件。
若靈駿節點為PPU節點,則需要額外安裝ack-ppu-device-plugin和ack-ppu-exporter組件。
重要建立包含靈駿串連節點的節點池時,ACK 將自動完成兩項操作:在叢集安全性群組中添加靈駿分組的網段,並允許入方向訪問;為節點池添加標籤
alibabacloud.com/lingjun-network-type: vpd,請勿刪除。
建立靈駿節點池
可在控制台完成節點池配置,包括基本配置、網路設定、儲存配置等。部分配置項(尤其是節點池可用性相關和網路相關的配置)建立後不支援修改,請重點關注。建立節點池不影響已有節點池內的節點和業務。
建立前請注意
靈駿節點池預設將容器運行時資料存放區到系統硬碟,請確保為容器運行時目錄預留充足可用空間,若磁碟空間不足將導致 Pod 驅逐或節點異常。
建立靈駿節點池的 VPC 網路通訊僅支援使用Terway獨佔ENI模式,請確認單節點Pod數限額滿足業務需求。
靈駿節點池中的節點預設攜帶汙點(Taint)
node-role.alibabacloud.com/lingjun: NoSchedule,避免系統組件(非 DaemonSet)調度到靈駿節點上佔用資源。若 Pod 需調度到靈駿節點,可為 Pod 添加對該Taint的容忍,實現僅特定工作負載調度到靈駿節點的效果。也可以根據業務需求,換為自訂Taint,實現相同效果。可在組件滿足最低版本要求後刪除 Taint,但刪除Taint後,系統組件或者其他工作負載可能調度到靈駿節點,佔用昂貴的 GPU 節點資源。
節點池預設攜帶的完整標籤列表,請參見節點標籤(Labels)配置項說明。請勿刪除預設 Label。
操作步驟
在ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,選擇。
單擊... > 建立靈駿節點池,按照頁面提示完成靈駿節點池的建立。
節點池建立後,部分配置項可通過編輯節點池修改。下表中,是否支援修改代表節點池建立後對應的配置項是否支援修改。
基礎配置
配置項
說明
是否支援修改
節點池名稱
自訂的節點池名稱。
是
地區
預設選擇當前叢集所在地區,不可更改。
否
託管配置
白名單功能
啟用託管節點池,使用ACK提供的自動化營運能力。
是
容器運行時
僅支援containerd。
否
靈駿資源
配置項
說明
是否支援修改
靈駿叢集
可選擇與ACK叢集位於相同VPC的Lite類型的靈駿叢集。
否
靈駿分組
可選擇與靈駿節點池位於相同VPC且未關聯靈駿節點池的靈駿分組。
否
Worker RAM 角色
為靈駿節點池指定 Worker RAM 角色。配置後,靈駿分組內新擴容的節點將自動繼承該角色。
需先選擇靈駿分組。僅雲端硬碟系統硬碟的靈駿機型支援配置 Worker RAM 角色,若所選靈駿分組不支援,則不顯示本配置項。
預設角色:使用 ACK 自動建立的、信任主體為靈駿智能計算的 Worker RAM 角色。若叢集中不存在該角色,建立節點池時將自動建立並綁定至本節點池。
自訂角色:使用指定的 RAM 角色。僅可選擇信任策略的可信服務中包含靈駿智能計算(
eflo-controller.eflo.aliyuncs.com)的 RAM 角色。相關說明請參見使用自訂Worker RAM角色。
若所選靈駿分組已配置 RAM 角色,則本配置項自動選中自訂角色並固定為分組當前的 RAM 角色,不可更改,也不可切回預設角色。
重要若靈駿分組已配置 RAM 角色,節點池與關聯靈駿分組的 RAM 角色須保持一致,兩者不一致將導致靈駿節點池建立失敗。
分組內新擴容的節點將自動繼承分組的 RAM 角色,分組內已有節點不生效。
節點池建立後,請勿修改靈駿分組的 RAM 角色,以免功能異常。
否
儲存
自訂資料盤配置為白名單功能,可使用本功能初始化靈駿節點的本機資料盤,並將容器運行時目錄或自訂目錄掛載到本機資料盤。如需開通,請通過客戶服務經理(PDSA)聯絡Container Service團隊。
重要節點池升級期間,若節點儲存配置不一致,將按各節點的實際配置分別初始化。
本機存放區有遺失資料的風險,強烈建議您使用雲端硬碟系統硬碟掛載容器運行時目錄。為保障穩定性,請確保為容器運行時目錄預留充足空間,避免出現節點磁碟空間不足-DiskPressure的情況。若未配置本機資料盤掛載容器運行時目錄,則預設該目錄掛載到系統硬碟。
配置項
說明
是否支援修改
系統硬碟
當前靈駿分組下節點的雲端硬碟系統硬碟配置。使用本地系統硬碟時,此處不展示具體配置。
若未配置本機資料盤掛載容器運行時目錄,容器運行時目錄預設掛載到系統硬碟(本地系統硬碟或雲端硬碟系統硬碟)。
重要當容器運行時資料存放區在系統硬碟時,若磁碟空間不足將導致 Pod 驅逐或節點異常。為保障穩定性,請確保系統硬碟預留充足可用空間,或者配置獨立資料盤用於容器運行時。請參見節點磁碟空間不足-DiskPressure瞭解節點磁碟空間不足的解決方案。
不涉及
數據盤
對靈駿節點本機資料盤進行自訂配置。
可單擊+添加需要進行自訂配置的本機資料盤,可添加的數量上限由靈駿機型的本地磁碟數量決定。預設 0 塊,即全部資料盤均不初始化且容器運行時掛載到系統硬碟。。
對添加的每塊本機資料盤進行配置:
初始化設定:選擇使用ext4 或者 xfs 檔案系統格式化並掛載目錄。僅對未格式化的本地碟生效。可選擇以下任一掛載方式:
作為容器運行時目錄:將該塊本機資料盤掛載為容器運行時佔用目錄,包括
/var/lib/container、/var/lib/containerd、/var/lib/kubelet以及/var/log/pods等目錄。一個節點池最多僅支援將一塊本機資料盤作為容器運行時目錄。配置自訂掛載目錄:將該本機資料盤格式化後掛載到指定目錄。自訂掛載目錄不支援使用系統及組件的關鍵目錄(詳見自訂目錄限制),否則節點池建立或更新失敗。
不初始化:不格式化本機資料盤,保留節點原有資料。選擇不初始化時,無法配置作為容器運行時目錄或自訂掛載目錄。添加第二塊及之後的本機資料盤時,預設選擇不初始化。
重要本機資料盤可配置為不初始化,或格式化並掛載目錄;不支援僅掛載目錄而不格式化,也不支援僅格式化而不掛載目錄。
添加的本機資料盤數量不可超過靈駿機型支援的本地磁碟數量,否則節點池建立或更新失敗。
若本機資料盤已格式化,且節點池配置的格式化方式與節點實際的格式化方式不一致,則初始化失敗,節點添加失敗。
掛載目錄須為空白。非空目錄掛載後,原有檔案將無法訪問。
靈駿節點池僅支援將容器運行時目錄或自訂目錄掛載到本機資料盤,不支援掛載到雲端硬碟資料盤。本機存放區有遺失資料的風險,將容器運行時目錄掛載到本地碟後,靈駿節點在下線維修(備機替換)時,不保留本地碟資料,可能會導致kubelet、containerd等容器運行時資訊被清除,節點狀態異常。維修完成後,需手動將其從節點池移除,並通過添加已有靈駿節點重新加入靈駿節點池。若您不希望手動操作,可將容器運行時目錄掛載到雲端硬碟系統硬碟中,或者聯絡PDSA/提交工單評估,申請加白使用RAM Role方式添加節點,在滿足條件的情況下,可實現節點狀態自動回復。
啟用本功能時,請勿同時通過 ACK 執行個體預自訂數據或靈駿自訂資料(UserData)功能配置容器運行時目錄,否則將出現功能異常。
是
進階選項(選填)
Terway獨佔ENI模式說明
靈駿節點池僅支援 Terway 獨佔 ENI 模式(Terway 自 v1.14.4 起支援)。為相容不同靈駿機型和鏡像的底層網路差異,建議將 Terway 升級至 v1.16.8 及以上,請參見最低版本要求升級terway-eniip。
建立靈駿節點池時,ACK將自動為節點池添加標籤k8s.aliyun.com/exclusive-mode-eni-type: eniOnly,以啟用獨佔ENI模式,建立後請勿刪除。詳見為節點池配置獨佔ENI網路模式。
如果靈駿節點池未添加該標籤,則表明該節點池使用了共用ENI網路模式。
在靈駿節點通過共用ENI模式使用VPC網路通訊時,部分靈駿舊版本鏡像存在偶發Pod網路不通的風險,可通過重建Pod臨時恢複業務運行。如需徹底解決該問題,建議在業務空閑期升級Terway組件至最新版本,通過重新建立獨佔ENI模式的靈駿節點池來添加靈駿節點。
添加已有靈駿節點
如需將靈駿分組中的靈駿節點添加到ACK叢集中作為Worker節點,或將移除的Worker節點重新加入靈駿節點池,可在Container Service管理主控台,將靈駿節點池關聯的分組中的靈駿節點,大量新增到靈駿節點池中。添加後,可在節點池維度進行統一管理。
添加靈駿節點不替換節點原有的作業系統、系統硬碟和資料盤,儲存資料仍然保留。
適用範圍
待添加的節點執行個體須已在本節點池關聯的靈駿分組中,且未加入其他節點池。
靈駿節點的(OperatingState)狀態為使用中(Using)狀態。
操作步驟
在ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,選擇。
在節點池頁面,單擊⋮ 添加已有節點,按照頁面提示完成以下配置:
添加已有靈駿節點執行個體:在執行個體列表選擇待添加的執行個體。勾選顯示停用執行個體可查看當前停用執行個體。
數據盤掛載:選擇資料盤的掛載方式。
僅在已開通自訂資料盤配置白名單時開放
按節點池配置:使用節點池預設的資料盤配置初始化並掛載資料盤。
頁面將展示節點池預設的本機資料盤配置,其中標註(容器運行時佔用)的本機資料盤用於掛載容器運行時目錄。
若節點池未預設資料盤配置,則保留節點原有配置。
重要若各節點的儲存配置不同,節點池升級期間,系統將按各節點的實際儲存配置分別初始化資料盤,而非使用統一配置。
使用按節點池配置時,掛載目錄須為空白。非空目錄掛載後,原有檔案將無法訪問。
所添加節點的本機資料盤須為空白或已包含和節點池配置相同類型的檔案系統,否則節點將添加失敗。
不初始化:不對資料盤進行初始化操作,保留節點原有資料盤配置。
添加完成後,ACK會自動在靈駿節點執行個體上添加以下標籤,可在智能計算靈駿控制台查看:
ack.aliyun.com:納管該節點的ACK託管叢集Pro版ID。ack.alibabacloud.com/nodepool-id:納管該節點的靈駿節點池ID。
移除靈駿節點
當不再需要某節點繼續工作時,可將該節點從節點池中移除。移除操作可能影響業務,建議在業務低峰期進行。
注意事項
排空節點:
節點上存在 Pod 時,請勾選自動排空節點(drain),並確保叢集資源充足,Pod 將自動遷移到其他節點。
若應用配置了PDB,可能導致排空失敗,進而導致移除失敗。建議提前手動處理。
排空後,若應用在其他節點上無法正常啟動,移除任務將忽略此情況並繼續執行。
移除異常狀態的節點時,請勿勾選自動排空節點(drain),否則可能導致移除失敗。
移除後的節點狀態:
移除靈駿節點僅將節點從靈駿節點池移出,不會將節點從靈駿分組中移出,也不會自動釋放或退訂節點。
添加到節點池的靈駿節點執行個體不會隨 ACK 叢集或靈駿節點池的刪除而釋放,也不會從靈駿分組中自動縮容。請關注靈駿節點的計費狀態,避免產生額外費用。
如需進行更多節點與分組的管理操作,請前往智能計算靈駿控制台操作。
移除為非同步作業,請在節點列表中查看移除進度。
操作步驟
在ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,選擇。
單擊目標靈駿節點池名稱,在節點管理頁面移除節點。
單個節點移除:定位目標節點,在該節點右側操作列,選擇。
批量節點移除:選中目標節點,單擊頁面下方的大量移除。
選擇是否需要自動排空節點(drain),仔細閱讀頁面注意事項後按照頁面提示完成操作。
升級 kubelet 版本
靈駿節點池支援升級 kubelet 及容器運行時的版本。升級前請提前執行前置檢查,暴露可能影響升級的風險。在發起升級後系統會自動執行前置檢查,對檢查不通過的節點跳過升級。
kubelet升級:將節點池內節點的kubelet升級到與控制面相同的版本。
容器運行時升級:升級節點的容器運行時至最新版本。
僅支援包含節點的靈駿節點池執行升級操作。
在ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,選擇。
在目標靈駿節點池的操作列,選擇
Kubelet 升級,按照頁面提示完成以下配置:基礎資訊
配置項
說明
kubelet 和運行時升級資訊
展示 kubelet和容器運行時目前的版本和可升級版本。
升級節點
指定待升級節點(所有節點或部分節點)。
升級方式
原地升級時,將直接在原節點上更新替換所需的組件,不會替換系統硬碟,也不會重新初始化節點,原節點的資料不受影響。
忽略警告層級檢查項
前置檢查結果中存在節點池層級的警告項(如節點池中存在 Pod 使用了指向系統硬碟的 hostPath)時,是否忽略該項繼續升級。
批量升級策略
配置項
說明
每批次執行最多節點數
升級過程會根據設定的最大並行數依次對節點進行升級。
自動暫停策略
在節點升級過程中的暫停策略。
每批次間隔時間
自動暫停策略為不暫停時,可選擇每個升級批次之間是否需要時間間隔或間隔的時間長度。可選範圍為5~120分鐘。
單擊前置檢查。若檢查未通過,請參見頁面提供的解決方案排查問題,通過後再繼續。
單擊開始升級,按照頁面提示完成升級。
升級時,您可以根據頁面提示進行如下操作。
暫停:叢集暫停狀態為節點池升級的中間狀態,建議您不要在此期間對叢集進行操作,並儘快完成升級過程。處於中間狀態的叢集會在7日之後關閉升級過程,並清理一切升級相關的事件和日誌資訊。
暫停後,已完成升級的節點的kubelet和容器運行時不支援版本回退。
取消:取消升級。單擊取消後,已完成升級的節點的kubelet和容器運行時不支援版本回退。
靈駿節點常見營運情境
以下介紹靈駿節點在各營運情境中,對應的ACK側操作流程。
情境 | 說明 |
靈駿節點更換分組 | |
靈駿節點重啟 |
|
靈駿節點重裝 | |
靈駿下線維修(備機替換) |
更多操作
使用RDMA功能
為啟用Pod在靈駿節點的RDMA網路通訊,請先在組件管理頁面手動安裝ack-rdma-device-plugin組件。具體使用方式請參見在靈駿節點使用RDMA網路。
在靈駿節點池使用PPU節點
為在靈駿節點池使用PPU,請先在組件管理頁面手動安裝ack-rdma-device-plugin和ack-ppu-device-plugin組件,若需使用PPU監控,請安裝ppu-device-plugin組件。
通過網路拓撲感知調度使用PPU超節點
為啟用ACK拓撲感知調度將任務調度至支援ICN Link的PPU超節點,請先在組件管理頁面手動安裝ack-ppu-device-plugin組件。具體使用方式請參見通過網路拓撲感知調度使用超節點真武PPU M890。
FAQ
為什麼維修後節點仍是未就緒(Not Ready)狀態?
現象:靈駿節點由於硬體問題進行了下線維修,但維修完成後,ACK叢集中節點狀態仍然是未就緒(Not Ready)狀態。
原因:靈駿節點下線維修期間將進行換機操作,不保留本地碟資料,可能會導致kubelet、containerd等容器運行時資訊被清除,節點狀態異常。
解決方案:維修完成後,需手動將其從節點池移除,並通過添加已有靈駿節點重新加入靈駿節點池。