本文基于单节点K8S。
碎碎念
已搭建好的K8S集群遭遇服务器的IP变了,kubectl 完全连不上“你的.旧.IP.地址:6443”,这时候我们最希望的绝对不是重新再部署一次,我们要的只是修改配置,让已有的环境在新IP下再次焕发生机。另外,为了避免此等悲剧成为常态,为服务器固定IP吧。
以下才是正文
- 修改/etc/kubernetes/文件夹里的*.conf文件,把这些文件中有旧IP的地方全都替换成你的新IP。
- 修改$HOME/.kube/config文件,操作同上。
- 进入$HOME/.kube/cache/discovery/,这里应该有个子文件夹名字是“你的.旧.IP.地址_6443”(如127.0.0.1_6443),把这个文件夹名字里的IP改成你新IP。
- 重新生成证书然后重启即可。这步参考了https://github.com/kubernetes/kubeadm/issues/581
我们需要重新生成三套certs&keys(apiserver, apiserver-kubelet-client, and front-proxy-client certs and keys)以防万一,先把旧证书备份吧。
$ sudo mv /etc/kubernetes/pki/apiserver.key /etc/kubernetes/pki/apiserver.key