操作场景
您可以通过控制台使用节点排水功能,系统会将节点设置为不可调度,然后安全地将节点上所有符合节点排水规则的Pod驱逐,后续新建的Pod都不会再调度到该节点。
在节点故障等场景下,该功能可帮助您快速隔离故障节点,被驱逐的Pod将会由工作负载controller转移到其他正常可调度的节点上。
约束与限制
仅以下指定版本的集群支持节点排水功能:
- v1.21集群:v1.21.10-r0及以上版本
- v1.23集群:v1.23.8-r0及以上版本
- v1.25集群:v1.25.3-r0及以上版本
- v1.25以上版本集群
IAM用户在使用节点排水功能时,至少需要具有以下一项权限,详情请参见命名空间权限(Kubernetes RBAC授权)。
- cluster-admin(管理员权限):对全部命名空间下所有资源的读写权限。
- drainage-editor:节点排水操作权限,可执行节点排水。
- drainage-viewer:节点排水只读权限,仅可查看节点排水状态,无法执行节点排水。
节点排水规格
节点排水功能会安全驱逐节点上的Pod,但对于满足以下过滤规则的Pod,系统会进行例外处理:
表 节点排水规则
Pod筛选条件 | 使用强制排水 | 不使用强制排水 |
---|---|---|
Pod的status.phase字段为Succeeded或Failed | 删除 | 删除 |
Pod不受工作负载controller管理 | 删除 | 放弃排水 |
Pod由DaemonSet管理 | 忽略 | 放弃排水 |
Pod中挂载了emptyDir类型的volume | 驱逐 | 放弃排水 |
由kubelet直接管理的静态Pod | 忽略 | 忽略 |
说明节点排水过程中可能会对Pod执行的操作如下:
删除:Pod会从当前节点上删除,不会再重新调度至其他节点。
驱逐:Pod会从当前节点上删除,且会重新调度至其他节点。
忽略:Pod不会被驱逐或删除。
放弃排水:若节点上存在放弃排水的Pod,节点排水过程会中止,不会驱逐或删除任何Pod。
操作步骤
步骤 1 登录CCE控制台,单击集群名称进入集群。
步骤 2 在左侧导航栏选择“节点管理”,在右侧单击节点后的“更多 > 节点排水”。
步骤 3 在弹出的“节点排水”窗口中,进行排水设置。
- 超时时间(秒):超过设定的时间后排水任务会自动失败,0表示不设置超时时间。
- 强制排水:使用强制排水时,将忽略DaemonSet管理的Pod,但会删除挂载了emptyDir卷的Pod和不受controller管理的Pod。详情请参见节点排水规则。
步骤 4 单击“确定”,等待完成节点排水。