使用onectl管理弹性伸缩节点池
注册集群弹性伸缩节点池用于管理一组线上节点资源,您可以通过该节点池为您的数据中心本地集群扩容云上的ECS节点。本文介绍如何使用onectl管理注册集群的弹性伸缩节点池。
前提条件
已创建ACK One注册集群,并已将本地数据中心自建Kubernetes集群接入ACK One注册集群。具体操作,请参见创建ACK One注册集群。
-
在本地安装配置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时,可以强制删除节点池并释放所有节点资源。 |