k8s集群搭建好后如何更换服务器IP
来源:5-4 部署etcd集群

xinzoo
2021-07-01
老师,我们有个新的生产系统,买了服务器在客户办公室搭建完k8s集群,后续会把服务器搬到机房托管。这里就涉及服务器IP变更。k8s集群如何更换IP呢?
我自己在虚拟机上试了一下,先从新生成证书(kubelet证书、kube-apiserver服务端证书)。
然后修改etcd的服务文件,主要修改IP相关,如下
--initial-advertise-peer-urls https://10.1.1.21:2380 \
--listen-peer-urls https://10.1.1.21:2380 \
--listen-client-urls https://10.1.1.21:2379,https://127.0.0.1:2379 \
--advertise-client-urls https://10.1.1.21:2379 \
--initial-cluster-token etcd-cluster-0 \
--initial-cluster k8s-n1=https://10.1.1.21:2380,k8s-n2=https://10.1.1.22:2380,k8s-n3=https://10.1.1.23:2380 \
--initial-cluster-state new \
--data-dir=/var/lib/etcd
修改完后重启etcd报错:
health check for peer 615ec16deda466b could not connect: dial tcp 10.1.1.13:2380: connect: no route to host
health check for peer 4b03b326cd80957 could not connect: dial tcp 10.1.1.11:2380: connect: no route to host
health check for peer 615ec16deda466b could not connect: dial tcp 10.1.1.13:2380: connect: no route to host
我删了etcd工作目录
–data-dir=/var/lib/etcd
重启etcd服务正常,但是k8s集群修改完所有步骤后成了一个空的k8s集群,之前用yaml部署的pod、svc、deploy等等都不在了,包括Calico、coreDNS和nodelocaldns,还有ingress-nginx也不在了。
写回答
1回答
-
这个场景一种选择就是重新生成证书,所有ip相关的配置都得修改一遍,然后重启所有服务。如果有漏改的漏操作的就得比较排查问题了。另外一个选择就是备份etcd数据即可。然后重新搭建集群,把etcd数据恢复过去。感觉对于新手来说后者更适合
012021-07-07
相似问题