Tips:
- 环境为CentOS 7.x
- 测试版本为1.14和1.16的kubernets
- 单节点ip变更,更新master信息
- 集群多台机器修改ip略有不同
一、切换到/etc/kubernetes/manifests, 将etcd.yaml kube-apiserver.yaml里的ip地址替换为新的ip
/etc/kubernetes/manifests# vim etcd.yaml
/etc/kubernetes/manifests# vim kube-apiserver.yaml
二、备份旧证书,生成新证书
# 备份apiserver和front-proxy前缀的key和crt文件
/etc/kubernetes# cd pki
/etc/kubernetes/pki# mv *.key *.key.bak
/etc/kubernetes/pki# mv *.crt *.crt.bak
# 生成新证书
/etc/kubernetes/pki# kubeadm init phase certs all
三、生成新的config文件
# 备份所有旧的conf文件,编辑修改旧的conf文件不起作用,原因是conf文件的certificate-authority-data和client-certificate-data需要重新生成
/etc/kubernetes# mv *.conf *.conf.bak
# 重新生成全部conf文件
/etc/kubernetes# kubeadm init phase kubeconfig all
四、重启服务
/etc/kubernetes# cd ..
/etc/kubernetes# systemctl restart docker
/etc/kubernetes# systemctl restart kubelet
# 删除旧的pod,或通过修改旧的pod的replicas
kubectl delete pod xxx -n namespace
或
# 先修改为0 在修改为1或原来的数量
kubectl scale deploy deployName -n namespace --replicas=0