master变更ip

k8s的master更换ip后,通信问题会出现问题,kubelet日志也会出现node “master.com” not found,需要重新生成config文件和签名文件

在/etc/kubernetes/manifests中, 将etcd.yaml kube-apiserver.yaml里的ip地址替换为新的ip

生成新的config文件

1
2
mv admin.conf admin.conf.bak
kubeadm init phase kubeconfig admin --apiserver-advertise-address <新ip>

删除旧的证书,生成新证书

1
2
3
4
cd pki
mv apiserver.key apiserver.key.bak
mv apiserver.crt apiserver.crt.bak
kubeadm init phase certs apiserver --apiserver-advertise-address <新ip>

重启docker和kubelet

1
2
systemctl restart docker.service
systemctl restart kubelet

验证配置文件config

1
kubectl get nodes --kubeconfig=admin.conf 

将kubeconfig默认配置文件替换为admin.conf

1
mv admin.conf ~/.kube/config

node节点需要将bootstrap-kubelet.conf和kubelet.conf的master ip修改为最新的ip并重启kubelet

1
systemctl restart kubelet

master中的node节点就会处于ready状态