当你的k8s集群出现问题时,比如固定的ip改变了,此时需要重新进行初始化。
在master执行

kubeadm reset(失败就加-f)

然后一路yes,成功后,执行kubeadm初始化命令

kubeadm init \
--apiserver-advertise-address=192.168.17.129 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.23.1 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12

注意上面的192.168.17.129替换为自己主机的ip,这里没有意外都会成功,注意,这时你如果直接kubectl get nodes连接失败,提示
Unable to connect to the server: dial tcp 192.168.17.129: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一样的问题,在etc/kub…下面同理,此时需要将master的config文件复制到node的/root/.kube/config下面

从master复制过来。
scp …
到/root/.kube下面
在node1执行

[root@node1 ~]# scp -r -p .kube root@node2:/root
[root@node1 ~]# scp -r -p .kube root@node3:/root

或者有这个问题

Config not found: /root/.kube/admin.conf The connection to the server localhost:8080 was refused - did you specify the right host or port?

从master复制过来。
scp …
在etc/kub…下面
在node1执行

[root@node1 ~]#scp -p /etc/kubernetes/admin.conf root@node2:/etc/kubernetes/
[root@node1 ~]#scp -p /etc/kubernetes/admin.conf root@node3:/etc/kubernetes/
Logo

开源、云原生的融合云平台

更多推荐