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回答

刘果国

2021-07-02

这个场景一种选择就是重新生成证书,所有ip相关的配置都得修改一遍,然后重启所有服务。如果有漏改的漏操作的就得比较排查问题了。另外一个选择就是备份etcd数据即可。然后重新搭建集群,把etcd数据恢复过去。感觉对于新手来说后者更适合

0
1
xinzoo
非常感谢!
2021-07-07
共1条回复

Kubernetes生产落地全程实践

一个互联网公司落地Kubernetes全过程点点滴滴

2293 学习 · 2217 问题

查看课程