停止调度
只会将node标识为SchedulingDisabled不可调度状态。之后K8S再创建的pod资源,不会被调度到该节点。旧有的pod不会受到影响,仍正常对外提供服务
kubectl cordon <node-name>
节点排空
使用 kubectl drain 命令:在进行节点维护前,先将节点上的 Pod 迁移到其他节点。使用命令:
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data
忽略守护进程集 (DaemonSets):–ignore-daemonsets 标志用于忽略守护进程集,–delete-emptydir-data 用于删除本地emptydir数据。
检查节点状态
查看节点状态:确保节点在维护前状态正常,使用命令:
kubectl get nodes
kubectl get pod -A -o wide | grep <node-name>
查看 Pod 状态:确保节点上的 Pod 运行正常,没有未决状态的 Pod。
进行维护操作
系统更新和补丁:更新操作系统,应用必要的安全补丁。
配置更新:根据需要更新节点上的配置文件,例如 Docker 配置或 kubelet 配置。
硬件维护:检查和更换有问题的硬件组件。
重新加入集群
标记节点为可调度:维护完成后,将节点标记为可调度状态,使用命令:
kubectl uncordon <node-name>
检查节点健康状况:确保节点恢复正常状态,所有服务正常运行,使用命令:
kubectl get nodes
评论区