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