请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于K8S如何安全优雅关机的问题

老师你好,我在本地虚拟机搭建了三个K8S节点,1 个master,两个worker,搭建是成功的

图片描述

图片描述

然后我发现一个现象,(PS:为了避免太多环境影响,我先不让work节点 join master节点),我在master节点这台机器上运行sync && reboot 重启,master节点的各种组件etcd,kube-api-server, kube-scheduler是没有什么问题的。

但是运行 sync && shutdown -h now 关机,再次开机的时候就发现K8S各种组件都不正常了 虽然都是显示running,但是ready为 0/1,查看日志也找不到什么明显的错误。

图片描述

所以想请教一下老师,K8S一般怎样才能安全关机?

对于关机处理这里,我查了很多资料,试过很多组合,发现再次开机后都有问题
尝试一:

sync && shutdown -h now

尝试二:

kubectl drain kumaster --ignore-daemonsets --delete-emptydir-data
systemctl stop kubelet
sync
shutdown -h now
开机后执行kubectl uncordon kumaster

尝试三:

systemctl stop kubelet
sync
shutdown -h now

最后只试出来一种暂时能凑活,保证开机后K8S组件还算正常的方案,即:

kubectl drain kumaster --ignore-daemonsets --delete-emptydir-data
rm -rf /etc/kubernetes/manifests/* 把那些pod的yaml都删了,事先备份
systemctl stop kubelet.service
crictl stop {剩余容器}
sync && shutdown -h now 关机
开机就恢复yaml文件, 让K8S创建Pod
cp /etc/kubernetes/manifests-backup/* /etc/kubernetes/manifests/

感觉关机流程应该有问题,kubelet提前关了,然后crictl直接停了pod,也包括etcd自身的pod, 导致状态混乱。所以想请假下老师,关机时的正常流程应该是怎么样的?谢谢老师

搭建K8S集群,我安装的是1.33版本,容器运行时为containerd,也安装了runc,cni-plugin

正在回答 回答被采纳积分+3

1回答

VentureHe 8天前

直接关机就OK的。要优雅关机,先关闭node,再关闭master

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号