一.直接重置kubeadm
kubeadm reset
命令详情参考官方注释
后面按正常流程执行kubeadm init和join即可。如果不想删除之前的配置看下面方法。
二.重新init
我们在修改完一些配置需要重新init时,因为kubeadm已经初始化过一次了,所以再次执行会报错如下,因为第二次init默认不会覆盖之前的初始化参数,所以需要我们手动清理掉之前的init。
报错:
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml]: /etc/kubernetes/manifests/kube-apiserver.yaml already exists
[ERROR FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml]: /etc/kubernetes/manifests/kube-controller-manager.yaml already exists
[ERROR FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml]: /etc/kubernetes/manifests/kube-scheduler.yaml already exists
[ERROR FileAvailable--etc-kubernetes-manifests-etcd.yaml]: /etc/kubernetes/manifests/etcd.yaml already exists
[ERROR DirAvailable--var-lib-etcd]: /var/lib/etcd is not empty
基本都是提示一些已存在的信息,手动删掉
rm -rf /etc/kubernetes/manifests/kube-apiserver.yaml
rm -rf /etc/kubernetes/manifests/kube-controller-manager.yaml
rm -rf /etc/kubernetes/manifests/kube-scheduler.yaml
rm -rf /etc/kubernetes/manifests/etcd.yaml
rm -rf /var/lib/etcd/*
以此可以看出kubeadm在初始化init时做了什么
停掉kubelet服务
systemctl stop kubelet.service
重新初始化成功:
重新join
先看报错:
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
[ERROR Port-10250]: Port 10250 is in use
[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
一样可以直接reset
kubeadm reset
删除已存在的文件,停服务后重新join
rm -rf /etc/kubernetes/kubelet.conf
systemctl stop kubelet.service
三.join忘记token怎么办
直接重新生成一个
kubeadm token create --print-join-command