注冊集群彈性伸縮節點池用于管理一組線上節點資源,您可以通過該節點池為您的數據中心本地集群擴容云上的ECS節點。本文介紹如何使用onectl管理注冊集群的彈性伸縮節點池。
前提條件
通過容器服務Kubernetes版接入一個注冊的Kubernetes集群。具體操作,請參見創建注冊集群。
通過kubectl連接注冊集群。具體操作,請參見獲取集群KubeConfig并通過kubectl工具連接集群。
在本地安裝配置onectl。具體操作,請參見通過onectl管理注冊集群。
配置節點添加腳本
執行以下命令,配置節點添加腳本。
關于腳本的編寫,請參見使用自定義節點添加腳本。
onectl nodepool config --script-url ****
預期輸出:
Set node init script successfully, script url: ****.
開啟節點池自動彈性伸縮
執行以下命令,開啟節點池的自動彈性伸縮。
onectl nodepool auto-scale enable
預期輸出:
Cluster **** (id: ****), auto scaling enabled.
創建彈性伸縮節點池
前提條件
檢查確認節點池創建的前提條件。
如果已經配置節點池的自動彈性伸縮,在節點池創建完成后,cluster-autoscaler組件會以Deployment形式自動部署在注冊集群中。因此,在創建節點池之前,如需使用自動彈性伸縮功能,需要先配置cluster-autoscaler組件的權限。
操作步驟
執行以下命令,檢查創建節點池的前提條件是否滿足。
onectl nodepool check
預期輸出:
Node pool check passed.
執行以下命令,進行自動彈性伸縮權限配置。
onectl ram-user grant --addon cluster-autoscaler
預期輸出:
Ram policy ack-one-registered-cluster-policy-cluster-autoscaler granted to ram user **** successfully.
執行以下命令,創建節點池。
onectl nodepool create --name test-nodepool --key-pair-name **** --instance-types ecs.g6.xlarge,ecs.hfc6.xlarge --vswitches ****
參數
是否必選
說明
name
是
節點池名稱。
key-pair-name
是,且僅支持二選一。
免密登錄節點的密鑰對名稱。
login-password
節點登錄密碼。
instance-types
是
節點實例規格。
vswitches
是
虛擬交換機列表。
您可以執行onectl nodepool create -h
查看更多節點池創建的參數配置信息。
查看節點池列表
執行以下命令,查看注冊集群的所有節點池。
onectl nodepool list --cluster-id ****
其中,cluster-id
為注冊集群的ID,默認為當前集群。
手動擴容節點池
執行以下命令,手動擴容節點池。
onectl nodepool scale --node-count 3 --node-pool-id **** --cluster-id ****
參數 | 是否必選 | 說明 |
node-count | 否 | 期望的節點數量,默認為0。 |
node-pool-id | 是 | 待擴容的節點池ID。 |
cluster-id | 否 | 節點池所屬的注冊集群ID,默認為當前集群。 |
預期輸出:
Cluster ****, node pool **** (id: ****) scaled to node count 3.
關閉節點池自動彈性伸縮
執行以下命令,關閉節點池的自動彈性伸縮。
onectl nodepool auto-scale disable
預期輸出:
Cluster **** (id: ****), auto scaling disabled.
刪除節點池
執行以下命令,刪除節點池。
onectl nodepool delete --node-pool-id **** --cluster-id **** --force
參數 | 是否必選 | 說明 |
node-pool-id | 是 | 待刪除的節點池ID。 |
cluster-id | 否 | 節點池所屬的注冊集群ID,默認為當前集群。 |
force | 否 | 是否強制刪除。當節點池的節點數量大于0時,可以強制刪除節點池并釋放所有節點資源。 |