::欢迎转载,请注明出处和链接:)
== 修改K8S Master IP地址 ==
K8S集群生产运维中,有一些场景需要更换Master节点的IP地址。那么如何
修改K8S Master IP地址呢?我们以单节点K8S集群为例,详细说明修改的过程和注意事项。至于多节点K8S集群,在本文基础上处理相对容易,Node节点重新配置并加入K8S集群即可。
假设原Master节点IP地址是10.11.1.102,修改后的Master节点IP地址是10.11.1.105。Kubernetes的测试版本为V1.18.1。
1. 修改K8S集群配置
获取
标准配置文件:
点击(此处)折叠或打开
-
kubeadm config print init-defaults > ~/kubeadm.yaml
或者直接取用原始的K8S集群配置文件。然后,修改配置,比如修改节点IP地址。
vim ~/kubeadm.yaml
点击(此处)折叠或打开
-
advertiseAddress: 10.11.1.105 #修改成新的IP
2. 更新系统IP和本地域名
-
vim /etc/sysconfig/network-scripts/ifcfg-eth0 #更新IP
-
vim /etc/hosts #更新IP
-
ip addr add 10.11.1.105/24 dev eth0
-
ip addr del 10.11.1.102/24 dev eth0
其中eth0请
使用实际的网口。
3. 重新生成集群的conf文件
-
rm -f /etc/kubernetes/*.conf
-
kubeadm init phase kubeconfig all --config ~/kubeadm.yaml
运行上述命令会重新生成以下文件:
-
#admin.conf
-
#controller-manager.conf
-
#kubelet.conf
-
#scheduler.conf
4. 重新生成K8S组件的POD配置yaml文件
-
rm -f /etc/kubernetes/manifests/*.yaml
-
kubeadm init phase control-plane all --config ~/kubeadm.yaml
运行上述命令会影响以下文件:
-
#kube-apiserver.yaml
-
#kube-controller-manager.yaml
-
#kube-scheduler.yaml
5. 重新生成本地etcd的POD配置yaml文件
重新生成
etcd.yaml,如果是外部etcd则略过
点击(此处)折叠或打开
-
kubeadm init phase etcd local --config ~/kubeadm.yaml
运行上述命令会影响以下文件,外部etcd则不会影响:
点击(此处)折叠或打开
-
#/etc/kubernetes/manifests/etcd.yaml
6. 重新安装所需的插件
-
kubeadm init phase addon all --config ~/kubeadm.yaml
运行上述命令会影响以下组件:
注意,如果K8S服务自动更新了,可能会报错“
x509: certificate is valid for 10.254.0.1, 10.11.1.102, not 10.11.1.105”。那么更新~/.kube/config即可,操作如下:
点击(此处)折叠或打开
-
cp /etc/kubernetes/admin.conf ~/.kube/config
kubelet服务跑太快了吧~
如果还不行,请执行下一步“重新生成证书”,再重新“安装插件”。
7. 重新生成证书
-
rm -rf /etc/kubernetes/pki/apiserver.* /etc/kubernetes/pki/front-proxy-client* /etc/kubernetes/pki/etcd/healthcheck-client* /etc/kubernetes/pki/etcd/peer* /etc/kubernetes/pki/etcd/server*
-
kubeadm init phase certs all --config ~/kubeadm.yaml
8. 修改集群configmap的IP
分别修改以下configmap的配置,主要是IP地址的修改。
-
kubectl edit cm -n kube-system kubeadm-config
-
kubectl edit cm -n kube-system kube-proxy
-
kubectl edit cm -n kube-system coredns
-
kubectl edit cm -n kube-public cluster-info
9. 重启生效并检验
-
systemctl restart kubelet docker
-
cp /etc/kubernetes/admin.conf ~/.kube/config
稍等一会儿,可以查看K8S集群及POD状态:
-
kubectl get node -owide
-
kubectl get pods -A -owide
至此,完成单节点K8S Master IP地址的修改。
阅读(3515) | 评论(0) | 转发(0) |