更换节点IP
介绍使用 ocboot 部署的环境,更换控制节点和计算节点的IP的方法步骤。
由于Kubernetes的节点IP无法动态更换,更换后必须重新部署Kubelet服务,因此更换节点IP后,需要将节点上Kubelet实例重置,并重新部署节点。
下面分几种情况讨论:
AllInOne节点更换IP
1. 清理节点环境
- K3s
- Kubernetes
卸载 K3s 服务
$ k3s-uninstall.sh
$ k3s-agent-uninstall.sh
停止并禁用相关服务:
$ systemctl disable --now yunion-executor
卸载Kubernetes服务
$ kubeadm reset --force
$ ipvsadm --clear
停止并禁用相关服务:
$ systemctl disable --now docker.socket docker kubelet yunion-executor
卸载kubelet, yunion-executor等包,并清除相关的数据目录,下面以 centos 举例:
$ rpm -qa |grep kube |xargs -I {} yum -y remove {}
$ rpm -qa |grep yunion |xargs -I {} yum -y remove {}
$ rm -rf /etc/kubernetes/ /var/lib/etcd/ /root/.kube/ /opt/cloud/
2. 修改旧的config.yml
注意
- 如果第一次部署是直接运行的
ocboot.sh run.py <full|cmp|virt>这种方式,生成的配置文件就在 ocboot 目录下的 config-allinone-current.yml 文件 - 如果第一次部署是用的自定义配置文件,请使用相关配置文件
下面假设第一次部署运行的命令为 ocboot.sh run.py $ip 这种形式,所以生成的配置文件在运行 ocboot 目录下的 config-allinone-current.yml 文件。
在第一次运行 ocboot 目录下保存有当时部署时使用的 config-allinone-current.yml 配置文件。备份该 yaml 文件,并修改文件,将旧的 IP 地址替换为新的 IP 地址。
$ cp ./config-allinone-current.yml config.yml
$ vim config.yml
# 修改里面节点的 ip 地址,包括 primary_master_node 下面的 hostname,controlplane_host
# 如果当时部署的 mariadb 也在该节点上,还要修改 mariadb_node 里面的 hostname 以及 primary_master_node 里面的 db_host
3. 重新部署
使用 ocboot 重新部署 AllInOne 节点
$ ./ocboot.sh install config.yml
私有云计算节点更换IP
计算节点更换IP的流程同AllInOne,但是需要在控制节点删除清理该节点信息,包括k8s的node信息和云平台的宿主机信息。删除干净后,再运行上述命令,重置计算节点的Kubenetes,流程如下:
1. 清理Kubelet
下面命令在计算节点上运行,清理节点上的K3s或K8s运行环境。
- K3s
- Kubernetes
卸载 K3s 服务
$ k3s-uninstall.sh
$ k3s-agent-uninstall.sh
停止并禁用相关服务:
$ systemctl disable --now yunion-executor
卸载Kubernetes服务
$ kubeadm reset --force
$ ipvsadm --clear
停止并禁用相关服务:
$ systemctl disable --now docker.socket docker kubelet yunion-executor
卸载kubelet, yunion-executor等包,并清除相关的数据目录,下面以 centos 举例 :
$ rpm -qa |grep kube |xargs -I {} yum -y remove {}
$ rpm -qa |grep yunion |xargs -I {} yum -y remove {}
$ rm -rf /etc/kubernetes/ /var/lib/etcd/ /root/.kube/ /opt/cloud/
2. 删除 node 信息
下面命令在控制节点运行
# 假设要删除的节点为 node1
$ nodename=node1
$ kubectl delete node $nodename
3. 使用 ocboot 重新加入节点
$ ./ocboot.sh add-node $primary_master_ip $target_node_ip