kubernetes 节点修改ip地址的方法

修改服务器IP地址处理方法

在系统部署完成后,若需要修改服务器IP地址时按照以下流程进行操作。需特别说明的是本操作是针对只有一台服务的情况下,若存在多台服务器,相关操作可能有所不同,请谨慎使用。

  1. 备份数据库及系统配置

若系统已经运行了一些生产任务,为防止数据丢失。需提前进行数据库备份。

  • 数据库备份

执行数据库备份脚本对数据库进行备份。

Sh  sql-bak.sh

  • 备份k8s有关配置及证书

cp -rf  /etc/kubernetes  /etc/kubernetes-bak

cp -rf /var/lib/kubelet/pki  /var/lib/kubelet/pki-bak

  1. 修改服务器IP地址
  • 修改IP配置文件

vi /etc/netplan/00-installer-config.yaml

修改内容为下面图中所示(IP、网关等进行替换)

  • 修改host文件

Vi  /etc/hosts

图中红色区域改为实际服务器IP地址。

  • 重启网卡服务

netplan apply

说明:若使用xshell连接服务器进行的IP地址修改,服务器IP修改后,跟服务器的通讯会断开,需将本机IP修改到同样网段内,并重建xshell连接。

  1. 修改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

确认是否重启成功

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

  • kubectl edit endpoints 截图的 -n bjsh

通过此命令修改weedfs-shengchan、weedfs-shengchan9333中的IP地址

    Logo

    开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

    更多推荐