在注册集群中使用节点池功能时,如果您进行了缩容操作,此时节点状态可能会变为NotReady。如果不及时清理这些节点,可能会导致集群中的资源浪费。本文将介绍如何通过cloud-node-controller组件自动清理NotReady节点。
前提条件
已创建和扩容普通节点池。具体操作,请参见创建节点池并扩容。
已通过kubectl连接注册集群。具体操作,请参见通过kubectl连接集群。
操作步骤
在注册集群安装组件之前,您需要创建RAM用户为其授予相关权限,并配置AccessKey使其具有访问云资源的权限。
步骤一:为cloud-node-controller组件配置权限
创建RAM用户并为其授予以下自定义权限策略。具体操作,请参见为RAM用户授予RAM权限。
{ "Version": "1", "Statement": [ { "Action": [ "ecs:DescribeInstances" # 允许查询ECS实例的详细信息。 ], "Resource": [ "*" ], "Effect": "Allow" } ] }
执行以下命令配置RAM Policy的AccessKey信息。
export ACCESS_KEY_ID=<ACCESS KEY ID> export ACCESS_KEY_SECRET=<ACCESS KEY SECRET>
执行以下命令创建一个名为alibaba-addon-secret的Secret资源。
kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=${ACCESS_KEY_ID}' --from-literal='access-key-secret=${ACCESS_KEY_SECRET}'
说明如果该Secret已经存在,则需要为Secret对应的RAM用户增加上述自定义权限。
步骤二:安装cloud-node-controller组件
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在组件管理页面,在核心组件页签下,找到cloud-node-controller组件,单击卡片右下方的安装。
步骤三:查看组件状态
执行以下命令查看cloud-node-controller组件状态。
kubectl get pods -n kube-system | grep cloud-node-controller
预期输出:
cloud-node-controller-abcXXX 1/1 Running 0 5m
组件部署完成后,系统将自动清理状态为NotReady的节点。