k8s修改集群IP--不重置集群

背景
公司产品基于k8s开发,到客户现场部署成为费时费力的工作,从安装机器、部署集群环境、安装k8s、拉取应用镜像、启动应用等;中间有任何一个环节出问题,都会导致最终应用跑不起来;为了减轻部署人员工作量,缩短部署时间,还是回到了虚拟机的老路上;k8s的节点部署为虚拟机,调试好后,导出为虚拟机镜像,到客户环境导入启动即可;大大降低工作量,缩减部署时间,降低部署人员技术门槛;

问题
客户环境部署集群后,一般需要修改k8s各个节点的IP地址为客户环境的IP,

本文命令执行环境:CentOS 7.7

  1. 修改各机器IP地址,以及hosts
    cd /etc/sysconfig/network-scripts
    vi ifcfg-ens192 # 具体修改哪个文件以实际网卡为准
    具体修改这里不再详述,修改完成后,重启网络,并修改hosts;

systemctl restart network #重启网卡
vi /etc/hosts #修改hosts中ip地址
修改成功后,ping baidu.com以及pnig k8s-master可以ping通,k8s-master为当前hostname;

集群中各个节点,都要按照以上逻辑进行修改;修改完后,节点间可通过hostname互ping

  1. 修改master节点config中的IP地址
    修改/etc/kubernetes/文件夹下的*.conf文件,把这些文件中有旧IP的地方全都替换成新IP;
    修改/etc/kubernetes/manifests文件夹里的etcd.yaml和kube-apiserver.yaml,替换旧IP;
    修改 H O M E / . k u b e / c o n f i g 文 件 , 操 作 同 上 ; 进 入 HOME/.kube/config文件,操作同上; 进入 HOME/.kube/config;HOME/.kube/cache/discovery/,这里应该有个子文件夹名字是“你的.旧.IP.地址_6443”(如127.0.0.1_6443),把这个文件夹名字里的IP改成新IP;
  2. master节点重新生成证书
    备份原有证书
    cd /etc/kubernetes/pki
    mv apiserver.key apiserver.key.bak
    mv apiserver.crt apiserver.crt.bak
    生成新证书
    kubeadm init phase certs apiserver --apiserver-advertise-address <新IP>
    证书生成完毕后,重启master节点即可;

附:
查看集群情况:kubectl get pod -n kube-system
查看kubelet情况:systemctl status kubelet -l
查看kubelet系统日志:journalctl -xefu kubelet
docker ps 查看容器启动情况

转载:https://www.youkuaiyun.com/tags/MtTagg5sMDk2MzEtYmxvZwO0O0OO0O0O.html

### 更改Kubernetes集群中的IP地址配 #### 修改ConfigMap内的旧IP为新IP 对于涉及网络通信的关键组件,其配通常存储于`ConfigMap`中。为了使这些组件能够识别新的IP地址,在更新节点或服务的IP之后,应当编辑相应的`ConfigMap`来替换其中所有的旧IP地址。 针对`kube-proxy`和`cluster-info`这两个重要的配文件,可以执行如下命令: ```bash kubectl edit cm kube-proxy -n kube-system kubectl edit cm cluster-info -n kube-public ``` 上述操作允许手动查找并更正任何存在的旧IP记录[^1]。 #### 更新API Server证书 当主控节点(Master Node)上的API server使用的SSL/TLS证书绑定的是之前的IP地址时,则需要重新签发带有当前有效IP的新证书。这一步骤至关重要因为客户端连接到API server依赖有效的认证凭证确保安全通讯渠道建立。具体做法取决于最初创建证书的方式以及所采用的身份验证机制[^3]。 #### 调整Node对象属性 除了调整核心服务外,还需关注各个工作节点的状态信息。每个节点都有一个关联的对象定义在其上运行的服务所需的信息;如果物理机器发生了迁移或是网络设有所变动,那么对应的node资源也需要同步刷新以反映最新的情况。可以通过下面的方法获取现有nodes列表,并逐一审查它们的相关字段是否正确指向了预期位: ```bash kubectl get nodes -o wide ``` 一旦发现不符之处,利用`kubectl patch node <nodename> ...`指令来进行针对性修正即可[^4]。 #### 处理特殊情况下的全面重方案 假如以上措施仍未能解决问题,或者整个环境中存在过多难以追踪的影响因素,考虑采取更为彻底的办法——即按照官方文档指导完全清除现有的k8s安装痕迹后再依照最新规划实施全新部署。虽然这种方法较为激进,但在某些极端情况下可能是唯一可行的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值