Chinaunix首页 | 论坛 | 博客
  • 博客访问: 308888
  • 博文数量: 22
  • 博客积分: 186
  • 博客等级: 入伍新兵
  • 技术积分: 1091
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-12 19:54
文章存档

2022年(1)

2020年(1)

2018年(1)

2013年(10)

2012年(9)

分类: LINUX

2022-02-16 19:04:36

::欢迎转载,请注明出处和链接:)

== 修改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集群配置 
    获取标准配置文件: 
点击(此处)折叠或打开
  1. kubeadm config print init-defaults > ~/kubeadm.yaml
    或者直接取用原始的K8S集群配置文件。然后,修改配置,比如修改节点IP地址。
    vim ~/kubeadm.yaml 
     点击(此处)折叠或打开
  1. advertiseAddress: 10.11.1.105 #修改成新的IP

2. 更新系统IP和本地域名 

点击(此处)折叠或打开

  1. vim /etc/sysconfig/network-scripts/ifcfg-eth0  #更新IP
  2. vim /etc/hosts   #更新IP
  3. ip addr add 10.11.1.105/24 dev eth0
  4. ip addr del 10.11.1.102/24 dev eth0
    其中eth0请使用实际的网口。

3. 重新生成集群的conf文件 

点击(此处)折叠或打开

  1. rm -f /etc/kubernetes/*.conf
  2. kubeadm init phase kubeconfig all --config ~/kubeadm.yaml
    运行上述命令会重新生成以下文件:

点击(此处)折叠或打开

  1.     #admin.conf
  2.     #controller-manager.conf
  3.     #kubelet.conf
  4.     #scheduler.conf

4. 重新生成K8S组件的POD配置yaml文件 

点击(此处)折叠或打开

  1. rm -f /etc/kubernetes/manifests/*.yaml
  2. kubeadm init phase control-plane all --config ~/kubeadm.yaml
   运行上述命令会影响以下文件:

点击(此处)折叠或打开

  1.     #kube-apiserver.yaml
  2.     #kube-controller-manager.yaml
  3.     #kube-scheduler.yaml

5. 重新生成本地etcd的POD配置yaml文件 
    重新生成etcd.yaml,如果是外部etcd则略过
点击(此处)折叠或打开
  1. kubeadm init phase etcd local --config ~/kubeadm.yaml
    运行上述命令会影响以下文件,外部etcd则不会影响:
     点击(此处)折叠或打开
  1. #/etc/kubernetes/manifests/etcd.yaml

6. 重新安装所需的插件 

点击(此处)折叠或打开

  1. kubeadm init phase addon all --config ~/kubeadm.yaml
    运行上述命令会影响以下组件:

点击(此处)折叠或打开

  1. #kube-proxy
  2. #coredns
    注意,如果K8S服务自动更新了,可能会报错“x509: certificate is valid for 10.254.0.1, 10.11.1.102, not 10.11.1.105”。那么更新~/.kube/config即可,操作如下:
   点击(此处)折叠或打开
  1. cp /etc/kubernetes/admin.conf ~/.kube/config

kubelet服务跑太快了吧~
    如果还不行,请执行下一步“重新生成证书”,再重新“安装插件”。

7. 重新生成证书 

点击(此处)折叠或打开

  1. 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*
  2. kubeadm init phase certs all --config ~/kubeadm.yaml

8. 修改集群configmap的IP 
    分别修改以下configmap的配置,主要是IP地址的修改。

点击(此处)折叠或打开

  1. kubectl edit cm -n kube-system kubeadm-config
  2.   kubectl edit cm -n kube-system kube-proxy
  3.   kubectl edit cm -n kube-system coredns
  4.   kubectl edit cm -n kube-public cluster-info

9. 重启生效并检验 

点击(此处)折叠或打开

  1. systemctl restart kubelet docker
  2. cp /etc/kubernetes/admin.conf ~/.kube/config
     稍等一会儿,可以查看K8S集群及POD状态:

点击(此处)折叠或打开

  1. kubectl get node -owide
  2. kubectl get pods -A -owide

    至此,完成单节点K8S Master IP地址的修改。





阅读(3179) | 评论(0) | 转发(0) |
1

上一篇:框架沉淀,策略透明 -- initramfs的前世今生

下一篇:没有了

给主人留下些什么吧!~~