kubernetes修改主机ip

前言

由于外部等不确定因素印象,kubernetes集群中的主机IP修改了,会导致集群受影响,故出以下教程来保证集群的稳定性。此教程适用于kubeadm安装的kubernetes集群,使用版本kubeadm1.15+

修改master主机ip

方式一:通过kubeadm命令进行调整

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#kubeadm.conf 配置文件如下
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
kubernetesVersion: v1.15.3 #-->这里改成你集群对应的版本
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers

#重新生成/etc/kubernetes目录下的conf文件
kubeadm init phase kubeconfig all --config=/root/kubeadm.conf
#运行上述命令会影响以下文件
#admin.conf
#controller-manager.conf
#kubelet.conf
#scheduler.conf

#重新生成manifests目录下的yaml配置
kubeadm init phase control-plane all --config=/root/kubeadm.conf
#运行上述命令会影响以下文件
#manifests/kube-apiserver.yaml
#manifests/kube-controller-manager.yaml
#manifests/kube-scheduler.yaml

#重新生成etcd.yaml,如果是外部etcd则略过
kubeadm init phase etcd local --config=/root/kubeadm.conf
#运行上述命令会影响以下文件,外部etcd则不会影响
#manifests/etcd.yaml

#重新生成组件配置
kubeadm init phase addon all --config=/root/kubeadm.conf
#运行上述命令会影响以下组件
#kube-proxy
#coredns

#备份/etc/kubernetes/pki目录
cp -r /etc/kubernetes/pki /etc/kubernetes/pki-old
rm -rf /etc/kubernetes/pki/apiserver.* /etc/kubernetes/pki/front-proxy-client*
rm -rf /etc/kubernetes/pki/etcd/healthcheck-client* /etc/kubernetes/pki/etcd/peer* /etc/kubernetes/pki/etcd/server*
#重新生成证书
kubeadm init phase certs all --config=/root/kubeadm.conf

方式二:通过sed 命令进行调整

1
2
3
4
5
6
7
8
9
10
11
#修改/etc/kubernetes 目录下的配置文件
sed -i 's/oldip/newip/g' `grep "oldip" -rl /etc/kubernetes`
systemctl restart kubelet

#修改kube-proxy configmap配置
kubectl get cm kube-proxy -n kube-system -o yaml > proxy.yaml
sed -i 's/oldip/newip/g' proxy.yaml
kubectl apply -f proxy.yaml

#重新renew证书
kubeadm alpha certs renew all --config=/root/kubeadm.conf

微信订阅号

-------------本文结束感谢您的阅读-------------