K8s节点IP修改全流程指南
kubernetes 节点修改ip地址的方法
修改服务器IP地址处理方法
在系统部署完成后,若需要修改服务器IP地址时按照以下流程进行操作。需特别说明的是本操作是针对只有一台服务的情况下,若存在多台服务器,相关操作可能有所不同,请谨慎使用。
- 备份数据库及系统配置
若系统已经运行了一些生产任务,为防止数据丢失。需提前进行数据库备份。
- 数据库备份
执行数据库备份脚本对数据库进行备份。
Sh sql-bak.sh

- 备份k8s有关配置及证书
cp -rf /etc/kubernetes /etc/kubernetes-bak
cp -rf /var/lib/kubelet/pki /var/lib/kubelet/pki-bak
- 修改服务器IP地址
- 修改IP配置文件

vi /etc/netplan/00-installer-config.yaml
修改内容为下面图中所示(IP、网关等进行替换)

- 修改host文件
Vi /etc/hosts

图中红色区域改为实际服务器IP地址。
- 重启网卡服务
netplan apply
说明:若使用xshell连接服务器进行的IP地址修改,服务器IP修改后,跟服务器的通讯会断开,需将本机IP修改到同样网段内,并重建xshell连接。
- 修改k8s有关内容
- oldip=192.168.0.41(替换为服务器原IP)
给oldip变量赋值
- newip=10.98.99.140(替换为服务器新IP)
给newip变量赋值
- cd /etc/kubernetes
- find . -type f | xargs sed -i "s/$oldip/$newip/"
将/etc/kubernetes下所有文件中的旧IP地址修改为新IP
- cd /etc/kubernetes/pki
- for f in $(find -name "*.crt"); do openssl x509 -in $f -text -noout > $f.txt; done
将/etc/kubernetes/pki目录下的所有后缀为.crt的文件内容输出到txt文件中。
- grep -Rl $oldip .(命令中的l都为小写L)
在当前目录及其子目录中查找包含原来IP地址内容的文件

- rm apiserver.crt apiserver.key etcd/peer.key etcd/peer.crt etcd/server.crt etcd/server.key
删除上一步查询出来的对应的.crt及.key文件。
- kubeadm init phase certs all
重新生成集群证书

- cd /etc/kubernetes
- rm -f admin.conf kubelet.conf controller-manager.conf scheduler.conf
删除k8s各组件的配置文件
- kubeadm init phase kubeconfig all
生成k8s的有关配置文件
- cp /etc/kubernetes/admin.conf /root/.kube/config
Kubernetes 的命令行工具 kubectl 默认会查找用户的kubeconfig 文件在 ~/.kube/config(对于 root 用户来说是/root/.kube/config)。通过将 admin.conf 复制到这个位置,kubectl 就可以自动找到并使用这个配置文件,而无需在每次使用时手动指定配置文件路径。
- kubectl get node
验证以上修改工作是否成功

- kubectl -n kube-system edit cm kubeadm-config
将原始IP地址改为新的IP地址(修改3处)

- kubectl -n kube-system edit cm kube-proxy
将原始IP地址改为新的IP地址(修改1处)

- kubectl -n kube-system edit cm coredns
将原始IP地址改为新的IP地址(修改2处)

- kubectl edit cm cluster-info -n kube-public
将原始IP地址改为新的IP地址(修改1处)

- systemctl daemon-reload
- systemctl restart docker
- systemctl status docker
确认是否重启成功
- systemctl restart kubelet
- systemctl status kubelet
确认是否重启成功

- 修改weedfs服务
- kubectl get endpoints -A | grep 原IP地址

- kubectl edit endpoints 截图的 -n bjsh
通过此命令修改weedfs-shengchan、weedfs-shengchan9333中的IP地址

更多推荐
所有评论(0)