当你的k8s集群出现问题时,比如固定的ip改变了,此时需要重新进行初始化。
master
在master执行
kubeadm reset(失败就加-f)
然后一路yes,成功后,执行kubeadm初始化命令
kubeadm init --kubernetes-version v1.20.11 --apiserver-advertise-address 192.168.1.113 --pod-network-cidr=10.244.0.0/16,注意上面的192.168.1.113替换为自己主机的ip,这里没有意外都会成功,注意,这时你如果直接kubectl get nodes连接失败,提示
Unable to connect to the server: dial tcp 192.168.1.109:6443: connect: no route to host
且连接到的ip还是集群之前的ip,这是因为kubeadm reset不会清除之前的config文件,这时需要手动清理,分别执行
sudo rm -rf $HOME/.kube/config
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
然后,重新kubectl get nodes你会发现master已经正常
work node
在ndoe节点执行
kubeadm reset
成功后,将master的kubeadm join命令复制到node节点并执行,成功后执行
kubectl get nodes
你会发现之前master一样的问题,同理,此时需要将master的config文件复制到node的/root/.kube/config下面
至此,大功告成。
删除节点
# 首先驱逐要删除节点(假设节点名为k8s-node1)上的pods(master节点执行)
kubectl drain ubuntu --delete-local-data --force --ignore-daemonsets
# 然后执行删除(master节点执行)
kubectl delete node ubuntu
# 最后在删除的节点机器上执行
kubeadm reset