前景介绍
使用本地vmware搭建集群后,直接把vmware关机,然后再次启动后提示集群异常,所有容器状态为exited,并报错
The connection to the server 192.168.137.11:6443 was refused – did you specify the right host or port?
处理步骤
第一反应Kubernetes API server没有启动。
因为我的Kubernetes集群是通过kubeadm 安装的,所以API server也是通过Pod来运行的,只有kubelet 是通过systemd运行的。
运行 systemctl status kubelet 查看,结果是正常的
再运行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
原创文章,作者:AIRF,如若转载,请注明出处:http://www.ai-rf.com/index.php/2023/09/17/k8s%e9%9b%86%e7%be%a4%e5%85%b3%e6%9c%ba%e5%90%8e%ef%bc%8c%e5%a6%82%e4%bd%95%e8%a7%a3%e5%86%b3-kubernetes-%e9%87%8d%e5%90%af%e8%b5%b7%e4%b8%8d%e6%9d%a5%e7%9a%84%e9%97%ae%e9%a2%98/