1. k8s集群无法启动:

可以按照以下思路排查:

1.1 首先检查etcd服务:
systemctl status etcd 

检查服务状态是否正常;
如果不正常,检查运行日志

journalctl -exf|grep etcd

按照运行日志的报错决定下一步的操作;
或者尝试直接重启etcd服务:

systemctl restart etcd

检查是否能恢复正常;
如果还不行,就再尝试以etcd数据备份恢复etcd服务:

/usr/local/etcd/etcdctl snapshot restore /etcdbackup/snapshot-20220713-010001.db --endpoints=127.0.0.1:2379 

其中 .db 文件就是备份文件,可以由近及远尝试不同日期的备份。然后尝试启动etcd服务

systemctl restart etcd  
1.2 然后重启kubelet 服务:
systemctl restart kubelet 
1.3 清空etcd数据,重装k8s

如果以上操作无效,最后的终极方法,也是最耗时的方法,就是删除etcd数据目录、删除卸载kubelet后,重新安装k8s:

①删除etcd数据目录:

rm -rf /usr/local/etcd/default.etcd && systemctl restart etcd 

②卸载k8s:

    kubeadm reset
    iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
    systemctl stop kubelet
    systemctl stop docker
    rm -rf /var/lib/cni/*
    rm -rf /var/lib/kubelet/*
    rm -rf /etc/kubernetes/
    rm -rf $HOME/.kube
    rm -rf /etc/cni/*
    ifconfig cni0 down
    ifconfig flannel.1 down
    ifconfig docker0 down
    ip link delete cni0
    ip link delete flannel.1
    systemctl start docker

③重新安装k8s(含Calico网络、NFS存储、Dashboard)
写的累了,放到另外一篇文章了,哈哈~

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐