1 应用场景
场景:在实际工作中,可能某个 Master 节点需要维护,迁移,我们需要平滑的停止、启动该节点,尽量减少启停中对集群造成的影响
注意:
-
为了确保 K8s 集群能够安全恢复,请在操作前对 K8s 数据进行备份 -
为了确保重启 Master 节点期间 K8s 集群能够使用,集群中 Master 节点数量要大于等于 3 -
若启停的 Master 节点上有 etcd 服务,在启停该 Master 节点期间,请勿对集群资源进行任何操作,包括添加、更新、删除等,否则会导致启停节点的 etcd 数据失效
2 操作步骤
2.1 备份数据
略,后续补充
2.2 停止 Master 节点调度
kubectl get node
kubectl cordon sh-gpu101.aibee.cn
kubectl get node
2.3 驱逐 Master 节点上的工作负载
kubectl drain sh-gpu101.aibee.cn --delete-local-data --ignore-daemonsets --force
查看节点上是否还有业务 pod
kubectl get pod -A -o wide |grep sh-gpu101.aibee.cn
2.4 停止 Master 节点
systemctl stop kubelet
systemctl stop etcd
systemctl stop docker
如果不想恢复使用,删除节点并确认节点信息
kubectl delete node sh-gpu101.aibee.cn
kubectl get node
2.5 恢复 Master 节点
systemctl start docker
systemctl start etcd
systemctl start kubelet
systemctl status docker etcd kubelet
2.6 允许 Master 节点调度
kubectl uncordon sh-gpu101.aibee.cn
|