master和node的ip发生变化

发布时间 2023-07-24 17:27:59作者: pr1s0n

之前部署k8s的时候用的dhcp自动获取ip,因为服务器常年不关,所以也没绑定静态ip

某天公司停电,导致服务器重启后我的机器也重启

原ip已经被其他机器抢占

但是k8s的各种服务配置都使用的固定老的ip

因此,就需要重新设置集群服务器的ip

最初我是手动修改的各个配置文件中旧的IP,发现不行,因为集群创建时创建了一个绑定服务器ip的证书,我们的ip发生变化后,ssl证书会报错

image-20230718172154478

最后发现都不行,还是需要用kubeadm reset掉所有配置文件后重新init

root@lxt-master:~# kubeadm reset --cri-socket /var/run/cri-dockerd.sock

reset成功后

image-20230718172842248

重新init,修改apiserver

kubeadm init --apiserver-advertise-address=192.168.20.126 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.26.3 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all --cri-socket /var/run/cri-dockerd.sock

执行成功

image-20230718173320181

然后执行

root@lxt-master:~# mkdir -p $HOME/.kube
root@lxt-master:~#  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
cp:是否覆盖'/root/.kube/config'? y
root@lxt-master:~# sudo chown $(id -u):$(id -g) $HOME/.kube/config
image-20230718173439414

这个时候执行get pods还是有点问题,因为我没有指定默认的命名空间

kubectl config set contexts.context.namespace kube-system

image-20230718173807260

如果重新init后查看kubelet状态中有这个报错

image-20230718173923837

重新安装flannel

root@lxt-master:~# kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
namespace/kube-flannel created
serviceaccount/flannel created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created

node重新加入集群

image-20230718174045627

注意要先执行kubeadm reset