1 应用场景
场景:在实际工作中,可能某个 Master 节点需要维护,迁移,我们需要平滑的停止、启动该节点,尽量减少启停中对集群造成的影响
注意:
-
为了确保 K8s 集群能够安全恢复,请在操作前对 K8s 数据进行备份
-
为了确保重启 Master 节点期间 K8s 集群能够使用,集群中 Master 节点数量要大于等于 3
-
若启停的 Master 节点上有 etcd 服务,在启停该 Master 节点期间,请勿对集群资源进行任何操作,包括添加、更新、删除等,否则会导致启停节点的 etcd 数据失效
2 操作步骤
2.1 备份数据
略,后续补充
2.2 停止 Master 节点调度
# 查看信息
kubectl get node
# 停止 Master 节点调度,停止后,上面已经运行的工作负载(Pod)不会受到影响,新的工作负载不会调度到该节点上
kubectl cordon sh-gpu101.aibee.cn
# 再次查看信息
kubectl get node
2.3 驱逐 Master 节点上的工作负载
# --ignore-daemonsets 驱逐 pod 时忽略 daemonset
# --delete-local-data 驱逐 pod 时删除 pod 的临时数据
kubectl drain sh-gpu101.aibee.cn --delete-local-data --ignore-daemonsets --force
查看节点上是否还有业务 pod文章来源:https://www.toymoban.com/news/detail-400736.html
kubectl get pod -A -o wide |grep sh-gpu101.aibee.cn
2.4 停止 Master 节点
# 注意顺序
systemctl stop kubelet
systemctl stop etcd
systemctl stop docker
如果不想恢复使用,删除节点并确认节点信息文章来源地址https://www.toymoban.com/news/detail-400736.html
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
到了这里,关于K8s集群重启与恢复-Master节点启停的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!