創(chuàng)建節(jié)點池
在ACK集群中,節(jié)點是集群中的物理或虛擬機器,用于運行容器化應用程序。節(jié)點池是一組具有相同配置和用途的節(jié)點,例如節(jié)點規(guī)格、可用區(qū)、標簽、污點等,便于對集群中的節(jié)點進行分組管理和運維。您可以在創(chuàng)建節(jié)點池時指定節(jié)點屬性,也可以修改存量節(jié)點池的配置。
前提條件
已創(chuàng)建ACK集群。具體操作,請參見創(chuàng)建ACK托管集群。
已通過kubectl工具連接集群。具體操作,請參見獲取集群KubeConfig并通過kubectl工具連接集群。
節(jié)點池類型
普通節(jié)點池:為提供管理一組同質(zhì)節(jié)點的能力,同一個節(jié)點池內(nèi)具有相同的節(jié)點配置,例如規(guī)格、標簽(Label)、污點(Taint)。更多信息,請參見節(jié)點池概述。
托管節(jié)點池:在普通節(jié)點池基礎(chǔ)上,提供CVE自動修復、自動觸發(fā)故障節(jié)點修復等能力,從而實現(xiàn)托管的自動化節(jié)點運維。更多信息,請參見托管節(jié)點池概述。
說明僅ACK集群Pro版支持托管節(jié)點池。
關(guān)于兩種節(jié)點池的差異,請參見托管節(jié)點池與普通節(jié)點池的區(qū)別。
操作步驟
創(chuàng)建或編輯節(jié)點池時不會影響其他已有節(jié)點池內(nèi)節(jié)點和業(yè)務的運行。
登錄容器服務管理控制臺,在左側(cè)導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側(cè)導航欄,選擇 。
在節(jié)點池頁面右上角,單擊創(chuàng)建節(jié)點池,然后在創(chuàng)建節(jié)點池對話框,完成創(chuàng)建節(jié)點池的配置項。
普通配置
高級配置
配置項
描述
ECS 標簽
為彈出的ECS添加標簽,標簽鍵不可重復。最大長度為128個字符,標簽鍵和標簽值不能以
aliyun
、acs:
開頭,不能包含https://
、http://
。一臺ECS可綁定標簽的上限為20個。如需提高上限,請到配額平臺提交申請。由于ACK和ESS存在以下標簽占用,因此最多可指定17個ECS標簽。
ACK默認占用兩個ECS標簽。
ack.aliyun.com:<您的集群ID>
ack.alibabacloud.com/nodepool-id:<您的節(jié)點池ID>
ESS默認占用1個ECS標簽:
acs:autoscaling:scalingGroupId:<您的節(jié)點池伸縮組ID>
。
說明開啟彈性伸縮后,因彈性伸縮將默認占用兩個ECS標簽,因此節(jié)點池會額外占用兩個ECS標簽:
k8s.io/cluster-autoscaler:true
和k8s.aliyun.com:true
。自動伸縮組件為了預檢測彈出節(jié)點的調(diào)度行為,需依靠ECS標簽記錄K8s的節(jié)點標簽和污點。因此,節(jié)點的每個標簽都會被轉(zhuǎn)為
k8s.io/cluster-autoscaler/node-template/label/標簽鍵:標簽值
;節(jié)點的每個污點會被轉(zhuǎn)為k8s.io/cluster-autoscaler/node-template/taint/污點鍵/污點值:污點效果
。
污點 (Taints)
為節(jié)點添加污點,污點(Taints)包含鍵、值和Effect(效果)。有效污點鍵包含前綴(可選)和名稱。如果有前綴,用正斜線(/)分隔。更多信息,請參見污點和容忍度。污點有以下限制:
鍵:污點鍵的名稱長度為1~63個字符,必須以字母、數(shù)字或字符
[a-z0-9A-Z]
開頭和結(jié)尾,中間可包含字母、數(shù)字、短劃線(-)、下劃線(_)、英文半角句號(.)。如果指定前綴,必須是DNS子域。即一系列由英文半角句號(.)分隔的DNS標簽,不超過253個字符,并以正斜線(/)結(jié)尾。關(guān)于DNS子域,請參見DNS子域。
值:污點值可以為空,不超過63個字符,必須以字母、數(shù)字或字符
[a-z0-9A-Z]
開頭和結(jié)尾,可包含字母、數(shù)字、短劃線(-)、下劃線(_)、英文半角句號(.)。Effect:可選擇NoSchedule、NoExecute、PreferNoSchedule三種。
NoSchedule:如果污點中存在至少一個Effect值為NoSchedule的污點,則系統(tǒng)不會將Pod分配到該節(jié)點。
NoExecute:任何不能忍受這個污點的Pod都會被驅(qū)逐,任何可以忍受這個污點的Pod都不會被驅(qū)逐。
PreferNoSchedule:系統(tǒng)會盡量避免將Pod調(diào)度到存在其不能容忍污點的節(jié)點上,但不會強制執(zhí)行。
節(jié)點標簽
為節(jié)點添加標簽,標簽是鍵值對。有效標簽鍵包含前綴(可選)和名稱,如果有前綴,前綴和名稱之間用正斜線(/)分隔。標簽有以下限制:
標簽鍵的名稱長度為1~63個字符,必須以字母數(shù)字字符
[a-z0-9A-Z]
開頭和結(jié)尾,中間可包含字母、數(shù)字、短劃線(-)、下劃線(_)、英文半角句號(.)。如果指定前綴,必須是DNS子域。即一系列由英文半角句號(.)分隔的DNS標簽,不超過253個字符,以正斜線(/)結(jié)尾。關(guān)于DNS子域,請參見DNS子域。
標簽鍵中以下前綴由Kubernetes核心組件保留,不支持指定。
kubernetes.io/
k8s.io/
以
kubernetes.io/
和k8s.io/
結(jié)尾的前綴。例如test.kubernetes.io/
。以下除外:
kubelet.kubernetes.io/
node.kubernetes.io
以
kubelet.kubernetes.io/
結(jié)尾的前綴。以
node.kubernetes.io
結(jié)尾的前綴。
標簽值可以為空,不超過63個字符,必須以字母數(shù)字字符
[a-z0-9A-Z]
開頭和結(jié)尾,可包含字母、數(shù)字、短劃線(-)、下劃線(_)和英文半角句號(.)。選中設(shè)置為不可調(diào)度后,新添加的節(jié)點注冊到集群時默認設(shè)置為不可調(diào)度。如果想打開存量節(jié)點的調(diào)度選項,可在集群節(jié)點列表中開啟。
伸縮模式
為節(jié)點池開啟自動伸縮后,可以選擇ECS實例伸縮的方式。
標準模式:通過創(chuàng)建、釋放ECS實例的方式進行伸縮。
極速模式:通過創(chuàng)建、停機、再啟動ECS實例的方式進行伸縮,以便在需要再次伸縮時,直接重新啟動處于停機狀態(tài)的實例,提高伸縮速度。
ECS實例停機時不收取計算資源費用,只收取存儲費用(包含本地存儲能力的實例規(guī)格族除外,例如大數(shù)據(jù)型、本地SSD型等)。關(guān)于ECS實例停機模式的計費詳情及相關(guān)注意事項,請參見節(jié)省停機模式。
擴縮容策略
優(yōu)先級策略:根據(jù)以上配置的虛擬交換機的優(yōu)先級進行擴縮容(選擇的虛擬交換機的順序,由上到下優(yōu)先級遞減)。當優(yōu)先級較高的虛擬交換機所在可用區(qū)無法創(chuàng)建ECS實例時,自動使用下一優(yōu)先級的虛擬交換機創(chuàng)建ECS實例。
成本優(yōu)化策略:按vCPU單價從低到高嘗試創(chuàng)建。當伸縮配置已設(shè)置搶占式計費方式的多實例規(guī)格時,優(yōu)先創(chuàng)建對應搶占式計費實例。當搶占式計費實例規(guī)格由于庫存等原因無法創(chuàng)建時,自動嘗試以按量付費的方式創(chuàng)建。
當付費類型為搶占式實例時,除允許搶占式實例補償外,您還可以配置以下參數(shù):
按量實例所占比例%:節(jié)點池實例中按量實例應占的比例,取值范圍為[0,100]。
允許按量實例補償:開啟后,如果因價格或庫存等原因無法創(chuàng)建足夠的搶占式實例,伸縮組將自動嘗試創(chuàng)建按量實例,以滿足ECS實例數(shù)量要求。
均衡分布策略:只有設(shè)置多個專有網(wǎng)絡(luò)交換機時,均衡分布策略才能生效。在伸縮組指定的多可用區(qū)(即指定多個專有網(wǎng)絡(luò)交換機)之間均勻分配ECS實例。如果由于庫存不足等原因造成可用區(qū)之間不平衡,您可以再次進行均衡操作,以平衡資源的可用區(qū)分布。
重要節(jié)點池創(chuàng)建完成后,擴縮容策略不支持編輯。
當付費類型為搶占式實例時,您可以設(shè)置是否開啟允許搶占式實例補償。開啟后,當收到搶占式實例將被回收的系統(tǒng)消息時(即搶占式實例被回收前5分鐘左右),開啟彈性的節(jié)點池將嘗試創(chuàng)建新的實例,替換掉將被回收的搶占式實例。
CPU Policy
更多信息,請參見CPU管理策略。
資源組
創(chuàng)建的集群將歸屬于選擇的資源組。一個資源只能歸屬于一個資源組。根據(jù)不同的業(yè)務場景,您可以將資源組映射為項目、應用或組織等概念。
部署集
重要部署集為白名單功能,若您需要開啟該功能,請在配額中心申請。
部署集一旦指定將不能修改。
選擇部署集后,節(jié)點池內(nèi)最大節(jié)點數(shù)會受限。部署集默認支持節(jié)點上限為
20 * 可用區(qū)數(shù)量
(可用區(qū)數(shù)量由虛擬交換機決定)。請謹慎選擇,確保部署集內(nèi)配額充足,避免節(jié)點彈出失敗。
您需要先通過ECS控制臺創(chuàng)建部署集,然后通過ACK控制臺為節(jié)點池指定部署集。創(chuàng)建部署集,請參見創(chuàng)建部署集。
您可以使用部署集將節(jié)點池彈出的ECS實例分散部署在不同的物理服務器上,以保證業(yè)務的高可用性和底層容災能力。在部署集內(nèi)創(chuàng)建ECS實例時,根據(jù)事先設(shè)置的部署策略,分散啟動指定地域下的ECS實例。更多信息,請參見節(jié)點池部署集最佳實踐。
自定義安全組
可選擇普通安全組或企業(yè)級安全組,僅支持同時選擇一種類型的安全組。節(jié)點池的安全組不支持修改,安全組的類型也不允許變更。關(guān)于安全組的更多信息,請參見安全組概述。
自定義鏡像
配置自定義鏡像后,自定義鏡像將取代默認系統(tǒng)鏡像。
自定義ECS鏡像:集群所有節(jié)點將基于此鏡像進行部署。關(guān)于創(chuàng)建自定義鏡像操作,請參見基于自定義鏡像創(chuàng)建集群或節(jié)點池。
共享ECS鏡像:集群所有節(jié)點將基于此鏡像進行部署。關(guān)于共享鏡像的更多信息,請參見操作步驟。
重要請基于ACK集群支持的操作系統(tǒng)制作自定義鏡像。詳細信息,請參見操作系統(tǒng)鏡像概述。
請勿使用ACK集群中正在運行的ECS實例制作自定義鏡像。如需使用,請先從集群移除,請參見移除節(jié)點。
自定義鏡像中預定義的行為邏輯可能影響集群節(jié)點初始化、容器運行、節(jié)點OS升級、托管節(jié)點池的節(jié)點自動恢復等操作。在生產(chǎn)環(huán)境使用前,請確保已經(jīng)過嚴格的測試驗證。
僅白名單用戶可使用此功能。請前往配額平臺申請。
RDS 白名單
單擊請選擇您想要添加白名單的RDS實例,將節(jié)點IP添加至RDS實例的白名單。
自定義節(jié)點名稱
是否開啟自定義節(jié)點名稱。自定義節(jié)點名稱后,將同時更改節(jié)點名稱、ECS實例名稱、ECS實例Hostname。
說明對于開啟自定義節(jié)點名稱的Windows實例,其Hostname固定為IP地址,使用
-
代替IP地址中的.
,且不包含前綴和后綴。節(jié)點名稱由前綴、節(jié)點IP地址及后綴三部分組成:
總長度為2-64個字符。節(jié)點名稱首尾必須為小寫字母和數(shù)字。
前綴和后綴允許使用大小寫字母、數(shù)字、連字符(-)和點號(.)。必須以大小寫字母開頭,不能以連字符(-)或點號(.)開頭或結(jié)尾。不能連續(xù)使用連字符(-)或點號(.)。
前綴必選(ECS限制),后綴可選。
例如:節(jié)點IP地址為192.XX.YY.55,指定前綴為aliyun.com,后綴為test。
如果節(jié)點為Linux節(jié)點,則節(jié)點名稱、ECS實例、ECS實例Hostname均為aliyun.com192.XX.YY.55test。
如果節(jié)點為Windows節(jié)點,則ECS實例Hostname為192-XX-YY-55,節(jié)點名稱、ECS實例名稱均為aliyun.com192.XX.YY.55test。
Worker RAM 角色
在節(jié)點池的維度指定一個Worker RAM角色,降低在集群所有節(jié)點中共用一個Worker RAM角色可能存在的風險。
默認角色:使用集群默認創(chuàng)建的Worker RAM角色。
自定義:節(jié)點池將使用指定的角色作為Worker RAM角色,為空時將使用默認角色。更多信息,請參見使用自定義Worker RAM角色。
重要僅支持1.22及以上版本的ACK托管集群。
實例預自定義數(shù)據(jù)
如需使用此功能,請前往配額平臺提交申請。
節(jié)點加入集群前,將運行您指定的實例預自定義數(shù)據(jù)腳本。關(guān)于User-Data腳本,請參見User-Data腳本。
例如,指定實例預自定義數(shù)據(jù)為
echo "hello world"
,則節(jié)點實際運行腳本如下。#!/bin/bash echo "hello world" [節(jié)點初始化腳本]
實例自定義數(shù)據(jù)
節(jié)點加入集群后,將運行您指定的實例自定義數(shù)據(jù)腳本。關(guān)于User-Data腳本,請參見User-Data腳本。
例如,指定實例自定義數(shù)據(jù)為
echo "hello world"
,則節(jié)點實際運行腳本如下。#!/bin/bash [節(jié)點初始化腳本] echo "hello world"
說明創(chuàng)建集群或擴容節(jié)點成功不代表實例自定義腳本執(zhí)行成功。您可以登錄節(jié)點執(zhí)行
grep cloud-init /var/log/messages
命令查看執(zhí)行日志。私有池類型
說明目前處于灰度發(fā)布中。如需使用,請提交工單申請。
私有池類型包括:開放、不使用和指定。
開放:實例將會自動匹配開放類型的私有容量池,如果沒有符合條件的私有池,則使用公共池資源啟動。
不使用:實例不會使用任何私有池容量,直接使用公共池資源啟動。
指定:您需要進一步選擇私有池ID來指定實例只使用該私有池容量啟動,如果該私有池不可用,則實例啟動失敗。
關(guān)于私有池的更多信息,請參見私有池。
單擊確認配置。
在節(jié)點池列表,如果節(jié)點池狀態(tài)顯示初始化中,表明節(jié)點池正在創(chuàng)建。創(chuàng)建完成后,狀態(tài)顯示為已激活。
相關(guān)操作
節(jié)點池激活完成后,您可以在節(jié)點池列表的操作列或單擊操作列的更多,按需進行以下操作。
界面詞 | 說明 | 相關(guān)文檔 |
詳情 | 節(jié)點池配置詳情。 | 無。 |
編輯 | 調(diào)整節(jié)點池的配置,例如節(jié)點池所在的虛擬交換機、托管節(jié)點池配置、付費類型、實例規(guī)格、啟用或停用彈性伸縮等。 | |
監(jiān)控 | 集成阿里云Prometheus監(jiān)控服務,展示對應ECS實例的基本監(jiān)控信息。 | |
擴縮容 | 自動化調(diào)整節(jié)點池的期望節(jié)點數(shù),實現(xiàn)節(jié)點池擴縮容,將節(jié)點數(shù)目維持在期望數(shù)量,節(jié)省業(yè)務成本。 | |
托管配置 | 開啟托管節(jié)點池的相關(guān)配置,例如自愈規(guī)則、自動升級規(guī)則、CVE自動修復等。 | 前文的普通配置 |
添加已有節(jié)點 | 通過自動添加節(jié)點和手動添加節(jié)點兩種方式將已有的ECS實例添加到已創(chuàng)建的Kubernetes集群中。 | |
克隆 | 基于現(xiàn)有節(jié)點池配置,克隆期望數(shù)量的節(jié)點池。 | 無。 |
節(jié)點恢復 | 當集群托管節(jié)點池中的節(jié)點發(fā)生異常時,ACK會自動發(fā)起節(jié)點恢復操作,使節(jié)點保持正常運行狀態(tài)。 | |
CVE修復 | 一鍵修復節(jié)點池高危CVE漏洞的便捷能力。 | |
Kubelet配置 | 修改節(jié)點池內(nèi)節(jié)點的kubelet配置。 | |
升級 | 對kubelet、操作系統(tǒng)和容器運行時按需組合升級。 | |
刪除 | 刪除不再使用的節(jié)點池,以減少不必要的資源浪費。 |