k8s的master更换ip

k8s的master更换ip后,通信问题出现了问题,我们只需要通过kubeadm init phase命令,重新生成config文件和签名文件就可以了。操作如下:
 

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

/etc/kubernetes/manifests # vim etcd.yaml
/etc/kubernetes/manifests # vim kube-apiserver.yaml

 

二,生成新的config文件

 /etc/kubernetes# mv admin.conf admin.conf.bak
/etc/kubernetes# kubeadm init phase kubeconfig admin --apiserver-advertise-address <新的ip>

 

 三,删除老证书,生成新证书
/etc/kubernetes# cd pki
 /etc/kubernetes/pki# mv apiserver.key apiserver.key.bak
/etc/kubernetes/pki# mv apiserver.crt apiserver.crt.bak
 /etc/kubernetes/pki# kubeadm init phase certs apiserver  --apiserver-advertise-address <新的ip>

 


四,重启docker
/etc/kubernetes# cd ..
/etc/kubernetes# service docker restart
/etc/kubernetes# service kubelet restart

 

五,将配置文件config输出
/etc/kubernetes#kubectl get nodes --kubeconfig=admin.conf  #  此时已经是通信成功了
/etc/kubernetes#sz admin.conf

 六,将kubeconfig默认配置文件替换为admin.conf,这样就可以直接使用kubectl get nodes

/etc/kubernetes# mv admin.conf ~/.kube/config

 

 

 

 

admin.conf配置到访问的机器上,就可以通过api访问这台k8s机器了。

 

参考文档:https://tomcat1009.coding.me/hexo/post/2019121102/

posted @ 2019-12-27 12:01  年轻人——001  阅读(5687)  评论(2编辑  收藏  举报