用戶在不刪除現有節點的情況下,將工作負載遷移到新的節點上。遷移流程如下圖所示。

- 現有節點和工作負載待遷移的節點必須在同一集群。
- 當前僅支持在Kubernetes v1.13.10及以后集群版本執行此操作。
- 默認節點池DefaultPool不支持修改配置。
步驟 1 創建新的節點。
1. 登錄CCE控制臺,在左側導航欄中選擇“資源管理 > 節點池管理”。
2. 在集群選擇框中,選擇現有節點所屬的集群。
3. 單擊“創建節點池”,設置節點池如下參數,其他參數根據需要進行修改,參數說明請參見節點池管理->創建節點池。
a. 節點池名稱:新建節點池的名稱,例如nodepool-demo。
b. 節點購買數量:本例添加一個節點。
c. 節點規格:請根據業務需求選擇相應的節點規格。
d. 操作系統:選擇節點對應的操作系統。
e. 登錄方式:支持密碼和密鑰對。
- 選擇“密碼”:用戶名默認為“root”,請輸入登錄節點的密碼,并確認密碼。
登錄節點時需要使用該密碼,請妥善管理密碼,系統無法獲取您設置的密碼內容。
- 選擇“密鑰對”:在選項框中選擇用于登錄本節點的密鑰對,并單擊勾選確認信息。
密鑰對用于遠程登錄節點時的身份認證。若沒有密鑰對,可單擊選項框右側的“創建密鑰對”來新建。
4. 單擊“下一步:配置確認”。確認節點池配置后,單擊“提交”。
單擊“返回節點池管理”返回節點池列表。在節點列表中可查看到新建節點池已創建,且狀態為“正常”。
步驟 2 單擊節點池名稱,在節點列表中可查看到新建節點的IP地址。
步驟 3 安裝配置kubectl。
1. 在左側導航欄中選擇“資源管理 > 集群管理”,單擊現有節點所在集群下的“命令行工具 > kubectl”。
2. 在集群詳情頁中的“kubectl”頁簽下,請參照界面中的提示信息完成集群連接。
步驟 4 遷移工作負載。
1. 給需要遷移工作負載的節點打上Taint(污點)。
kubectl taint node [node] key=value:[effect]
其中,[node]為待遷移工作負載所在節點的IP;[effect]取值為NoSchedule、PreferNoSchedule或NoExecute,此處必須設置為NoSchedule。
? NoSchedule:一定不能被調度。
? PreferNoSchedule:盡量不要調度。
? NoExecute:不僅不會調度,還會驅逐Node上已有的Pod。
說明:
若需要重新設置污點時,可執行kubectl taint node [node] key:[effect]-命令去除污點。
2. 安全驅逐節點上的工作負載。
kubectl drain [node]
其中,[node]為待轉移工作負載所在節點的IP。
3. 在左側導航欄中選擇“工作負載 > 無狀態負載 Deployment”。在工作負載列表中,待遷移工作負載的狀態由“運行中”變為“未就緒”。工作負載狀態再次變為“運行中”,表示遷移成功。
說明:
遷移工作負載時,若工作負載配置了節點親和性,則工作負載會一直提示“未就緒”等異常情況。請單擊工作負載名稱進入到負載詳情頁,在選擇“調度策略”頁簽,刪除原節點的親和性配置,并單擊“簡易調度策略”配置新的節點親和性和反親和性策略,詳情請參見“親和反親和調度->簡易調度策略”。
工作負載遷移成功后,在工作負載詳情頁的“實例列表”頁簽,可查看到工作負載狀已遷移到步驟1中所創建的節點上。
步驟 5 刪除原有節點。
工作負載遷移成功且運行正常后,即可在“資源管理 > 節點管理”中刪除原有節點。
步驟 1 拷貝節點池并添加節點。
1. 登錄CCE控制臺,在左側導航欄中選擇“資源管理 > 節點池管理”。
2. 在集群選擇框中,選擇現有節點所屬的集群。
在節點池列表中,查找到原有節點所在的節點池。
3. 單擊該節點池名稱后的“更多 > 拷貝”,在“創建節點池”頁面下設置如下參數,其他參數根據需要進行修改,參數說明請參見“節點管理->創建節點池”。
? 節點池名稱:新建節點池的名稱,例如nodepool-demo。
? 節點購買數量:本例添加一個節點。
? 節點規格:請根據業務需求選擇相應的節點規格。
? 操作系統:選擇節點對應的操作系統。
? 登錄方式:支持密碼和密鑰對。
- 選擇“密碼”:用戶名默認為“root”,請輸入登錄節點的密碼,并確認密碼。
登錄節點時需要使用該密碼,請妥善管理密碼,系統無法獲取您設置的密碼內容。
- 選擇“密鑰對”:在選項框中選擇用于登錄本節點的密鑰對,并單擊勾選確認信息。
密鑰對用于遠程登錄節點時的身份認證。若沒有密鑰對,可單擊選項框右側的“創建密鑰對”來新建。
4. 單擊“下一步:配置確認”。確認節點池配置后,單擊“提交”。
單擊“返回節點池管理”返回節點池列表。在節點列表中可查看到新建節點池已創建,且狀態為“正常”。
步驟 2 單擊節點池名稱,在節點列表中可查看到新建節點的IP地址。
步驟 3 遷移工作負載。
1. 單擊節點池nodepool-demo后的“編輯”配置Taints參數。
2. 單擊“Add Taint”,輸入Key和Value值,Effect選項有NoSchedule、PreferNoSchedule或NoExecute,此處必須選擇“NoExecute”。
? NoSchedule:一定不能被調度。
? PreferNoSchedule:盡量不要調度。
? NoExecute:不僅不會調度,還會驅逐Node上已有的Pod。
說明:
若需要重新設置污點時,可執行kubectl taint node [node] key:[effect]-命令去除污點。
3. 單擊“保存”。
4. 在左側導航欄中選擇“工作負載 > 無狀態負載 Deployment”。在工作負載列表中,待遷移工作負載的狀態由“運行中”變為“未就緒”。工作負載狀態再次變為“運行中”,表示遷移成功。
說明:
遷移工作負載時,若工作負載配置了節點親和性,則工作負載會一直提示“未就緒”等異常情況。請單擊工作負載名稱進入到負載詳情頁,在選擇“調度策略”頁簽,刪除原節點的親和性配置,并單擊“簡易調度策略”配置新的節點親和性和反親和性策略,詳情請參見“親和反親和調度->簡易調度策略”。
工作負載遷移成功后,在工作負載詳情頁的“Pods”頁簽,可查看到工作負載狀已遷移到步驟1中所創建的節點上。
步驟 4 刪除原有節點。
工作負載遷移成功且運行正常后,即可在“資源管理 > 節點池管理”中刪除原有節點。