k8s集群换IP

k8s集群搭建及节点加入时需要确定IP,但安装完成后设备移动到新环境可能出现网段更换或者IP被占用的情况,导致无法ping通节点或者无法打开原IP的服务。

解决方法为保持原有IP不更换,给网卡再加一个IP

这边使用两个ubuntu虚拟机模拟服务器和window主机模拟客户机

机器IP
ubuntu虚拟机1192.168.1.121
ubuntu虚拟机2192.168.1.122
windows192.168.1.135

如图:

k8s集群已经在两台虚拟机上搭建完毕,使用客户机浏览器访问一下kubesphere

验证一下在上面开启的服务是否能访问

验证完毕,集群正常

然后服务器模拟搬到新环境,新环境需要的网段为172.20.10.*,但两个原IP为192.168.1.121和192.168.1.122的k8s因为IP问题将无法使用。所以需要给服务器的网卡设置第二个IP,让网络互通。预计更改如下:

机器IP
ubuntu虚拟机1192.168.1.121=>172.20.10.12
ubuntu虚拟机2192.168.1.122=>172.20.10.13
windows172.20.10.11

如图:

接下来要对两个ubuntu网络进行更改,两台服务器分别输入

cd /etc/netplan
ls

 查看到网络配置文件为:

修改配置文件:

vi 00-installer-config.yaml

虚拟机1原本IP为192.168.1.121,在原本的基础上修改为,设置两个IP:

# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      addresses: [192.168.1.121/24,172.20.10.12]
      gateway4: 172.20.10.1
      nameservers:
        addresses:
        - 114.114.114.114
        - 8.8.8.8
        search: []
  version: 2

同理虚拟机2原本IP为192.168.1.122,在原本的基础上修改为,设置两个IP:

# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      addresses: [192.168.1.122/24,172.20.10.13/24]
      gateway4: 172.20.10.1
      nameservers:
        addresses:
        - 114.114.114.114
        - 8.8.8.8
        search: []
  version: 2

记得gateway4网关改成新IP的

改完后生效一下:

netplan apply

再看一下两个机器的IP

已经有两个IP了

但是客户机ping不通

这边要改一下虚拟机NAT网络的地址,当然正式环境服务器不是虚拟机就不需要这些操作了

我这边用的是VMware虚拟机软件,点击编辑-虚拟网络编辑器

然后点击更换配置

选择NAT模式,修改下面的子网为新环境的,所以我这边设置172.20.10.0

然后点击应用,打开终端再ping一下。通了

打开浏览器用新IP访问一下kubesphere,可以访问

再看看上面部署的服务,也可以访问

结束

### 更改Kubernetes集群节点和服务的IP地址 对于已经运行并部署了多个应用的Kubernetes集群而言,直接更改其组成节点IP地址确实可能导致集群无法正常工作。这是因为Kubernetes依赖于稳定的网络环境来维持各组件间的通信以及服务发现机制的有效性。 #### 节点IP变更的影响及应对措施 当需要改变构成Kubernetes集群的服务器(即节点)的IP地址时,除了更新操作系统层面的网络设置外,还需要考虑以下几个方面: - **kubelet配置文件**:每个节点上的`/var/lib/kubelet/config.yaml`或其他形式的配置文件可能包含了旧的IP地址信息。这些地方都需要相应地调整为新的IP地址[^1]。 - **etcd数据存储**:如果使用的是高可用架构下的自建etcd集群,则其中保存着关于各个成员的信息,包括它们各自的URL路径,这部分也需要同步修改以反映最新的网络状况。 - **API Server客户端证书**:为了安全起见,默认情况下apiserver只会接受来自特定主机名或IP列表发出的身份验证请求。因此,在执行任何操作前应先确认是否有足够的权限,并准备好重新签发带有新IP地址条目的CA根证书及其子证书。 - **CoreDNS记录**:由于核心DNS插件会自动注册所有加入过该平台的新机器作为A记录的一部分,所以一旦发生迁移事件就应当立即清理掉那些不再有效的入口项以免造成混淆[^3]。 完成上述准备工作之后,按照官方文档指导逐步重启涉及改动的服务进程直至整个系统恢复正常运作状态即可。 #### 修改服务定义中的Cluster IP范围 另外值得注意的一点是,有时即使不涉及到物理层面上的实际变动也可能因为业务需求而希望指定某些特殊区间内的虚拟地址供内部调用者识别——这就牵扯到了对Service资源对象属性之一clusterIP字段的手动编辑上来了。不过鉴于此类行为容易引发冲突甚至破坏现有连接关系的缘故,建议仅限专业人士谨慎为之。 ```yaml apiVersion: v1 kind: Service metadata: name: example-service spec: selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 clusterIP: "10.0.0.2" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值