k8s集群关机后,如何解决 kubernetes 重启起不来的问题


如何解决 kubernetes 重启后,启来不来的问题

登录自己的Kubernetes测试集群时发现集群好像没有启动成功

运行 kubectl get pods --all -A ,报错如下。

第一反应Kubernetes API server没有启动。

因为我的Kubernetes集群是通过kubeadm 安装的,所以API server也是通过Pod来运行的,只有kubelet 是通过systemd运行的。

运行 systemctl status kubelet 查看,果然kubelet服务失败,也就是并不是API Server出错导致查不到Pod,而不是kubelet出错无法向API Server注册节点。

再运行journalctl -xefu kubelet 查看systemd日志发现真正的错误原因是:

运行cat /proc/swaps 检查果然Swap没有被关闭。

检查我之前的安装脚本发现,我之前修改/etc/fstab永久关闭Swap的命令有错。

正确的禁用Swap命令如下:

# 关闭Swap,机器重启后不生效
swapoff -a

# 修改/etc/fstab永久关闭Swap
cp -p /etc/fstab /etc/fstab.bak$(date '+%Y%m%d%H%M%S')
# Redhat
sed -i "s/\/dev\/mapper\/rhel-swap/\#\/dev\/mapper\/rhel-swap/g" /etc/fstab
# CentOS
sed -i "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab
# 修改后重新挂载全部挂载点
mount -a

# 查看Swap
free -m
cat /proc/swaps

在Kubernetes集群master和nodes上禁用Swap后,运行下面命令重启Kubelet:

systemctl daemon-reload
systemctl restart kubelet

再运行 kubectl get pods -A 检查Pod运行正常。

参考: https://blog.csdn.net/nklinsirui/article/details/80855415


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM