一、操作场景
注意:1. 移出节点操作不可逆,节点移出后将不再承载集群工作负载。请根据节点上是否运行业务 Pod,选择对应的操作流程,避免因操作不当导致业务中断。
注意:2. 请不要使用例如 kubectl delete node 的方式直接对节点资源进行删除,否则可能导致节点关联资源泄露进而影响业务正常运行;请务必按照以下流程安全地对节点进行移出。
二、前提条件
·已登录 容器服务控制台。
·已确认目标节点所属的集群和节点池。
·已确认目标节点上的业务运行状态。
三、对系统影响
·节点移出后,该节点上运行的 Pod 将被终止。如果 Pod 由 Deployment、StatefulSet 等控制器管理,控制器会在其他可用节点上重新调度这些 Pod。
·如果节点上运行了使用本地存储(如 hostPath、emptyDir)的 Pod,本地数据将丢失。
·移出节点不会自动释放对应的 CVM 实例。如需释放,请在 CVM 控制台 另行操作。
四、操作步骤
根据节点上是否运行业务 Pod,选择对应的操作流程。
五、场景一:节点上无业务 Pod
如果目标节点上没有运行业务 Pod(例如新加入的空闲节点、已完成业务迁移的节点),可以直接移出节点。操作方式有以下两种:
六、方式一:在节点池详情页移出节点
1. 登录容器服务控制台,选择左侧导航中的 集群。
2. 在集群列表中,选择目标集群 ID,进入该集群的基本信息页面。
3. 选择左侧导航中的节点管理,切换到节点池页签,选择目标节点池进入详情页。
4. 在节点池详情页的节点列表中,选中需移出的节点,单击移出。如下:
5. 在弹窗中确认节点信息,单击确定,即可完成节点移出。
七、方式二:修改节点池期望节点数
如果集群使用节点池管理节点(非弹性伸缩模式),你也可以通过调整节点池的期望节点数来实现缩容:
1. 登录容器服务控制台,选择左侧导航中的 集群。
2. 在集群列表中,选择目标集群 ID,进入该集群的基本信息页面。
3. 选择左侧导航中的节点管理,切换到节点池页签,选择目标节点池,单击编辑。
4. 将节点数量调整为缩容后的目标值,单击确定。
注意:说明:
注意:通过修改节点池期望节点数缩容时,系统会自动选择节点进行移出。如需指定移出特定节点,请使用 方式一。
八、场景二:节点上有业务 Pod
如果目标节点上正在运行业务 Pod,请勿直接移出节点,否则可能导致业务中断。请按照以下步骤操作:
九、步骤 1:封锁节点
封锁(cordon)节点后,新的 Pod 将不会被调度到该节点。
1. 登录 容器服务控制台,选择左侧导航中的集群。
2. 在集群列表中,单击集群 ID,进入集群管理页面。
3. 选择节点管理,在节点页签中单击节点行右侧的更多 > 封锁。
4. 在弹出的对话框中,确认节点信息后,单击确定。
注意:说明:
注意:封锁节点的详细说明,请参见 驱逐或封锁节点。
十、步骤 2:驱逐节点上的 Pod
驱逐(drain)操作会将节点上的 Pod 安全迁移到其他可用节点。
1. 在节点页签中,单击节点行右侧的更多 > 驱逐。
2. 在弹出的对话框中,确认驱逐信息,单击确定。
十一、步骤 3:确认 Pod 迁移完成
1. 在节点详情页,查看节点上的 Pod 列表。
2. 确认所有业务 Pod 已被成功迁移(节点上仅剩 DaemonSet 管理的 Pod 或无 Pod)。
十二、步骤 4:移出节点
确认 Pod 迁移完成后,按照场景一的 方式一 操作移出节点。