注册集群弹性伸缩节点池用于管理一组线上节点资源,您可以通过该节点池为您的数据中心本地集群扩容云上的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时,可以强制删除节点池并释放所有节点资源。 |