Kubernetes之更换集群IP地址
LiuSw Lv6

Kubernetes之更换集群IP地址

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

操作如下:

一.更改配置文件

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

1
2
3
cd /etc/kubernetes/manifests 
vim etcd.yaml # 修改etcd原IP为新的IP地址
vim kube-apiserver.yaml # 修改api-server原IP为新的IP地址

二.生成新的config文件

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

三.删除老证书,生成新证书

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

四.重启docker

1
2
systemctl restart docker 
systemctl restart kubelet

五.将配置文件config输出

1
2
kubectl get nodes --kubeconfig=admin.conf  #  此时已经是通信成功了

六.替换config文件

1
2
3
4
# 将kubeconfig默认配置文件替换为admin.conf,这样就可以直接使用kubectl get nodes
# 再将admin.conf配置到其他master或者node的机器上,就可以通过api访问这台k8s机器了。
cp admin.conf /root/.kube/config
scp /root/.kube/config k8s-node:/root/.kube/config

 评论