Skip to content

网络设置 ​

Kubernetes 集群网络设置,单台融合架构 请跳过此步骤。此配置仅适用于 多台融合架构及专业架构 集群安装,要求所有集群机器的网络设置必须保持一致。

目的与要求 ​

通信网卡名称一致性要求 ​

在 Kubernetes 集群中,为了保证 节点间通信、Pod 网络通信 (CNI) 以及 kubelet 等核心组件的正常工作,所有节点必须统一使用相同的网络接口名称(网卡名)进行集群内部通信。

  • 问题来源: 不同服务器或虚拟化环境可能生成不同的默认网卡名(如 eth0、ens160、eno1 等)。
  • 要求: 为避免通信异常,必须将所有节点的通信网卡名统一,建议统一为 eth0。

检查当前网卡名称 ​

在每台节点服务器上,运行以下命令确认用于集群通信的网卡名称:

bash
ip addr show

或使用更简洁的命令获取名称列表:

bash
ip -o link show | awk -F': ' '{print $2}'

请确定您计划用于集群通信的那张网卡的实际名称。

修改网卡名称 ​

如果各节点的通信网卡名称不一致,可以使用 netplan 的 set-name 功能将其重命名并统一为目标名称(例如 eth0)。

确定当前网卡信息 ​

运行命令查看详细信息,记录当前网卡的名称和 MAC 地址:

bash
ip link show

示例输出及信息记录:

bash
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 3c:ec:ef:a1:93:0f brd ff:ff:ff:ff:ff:ff

当前信息记录: 网卡名为 eno1,MAC 地址为 3c:ec:ef:a1:93:0f。

编辑 Netplan 配置文件 ​

通常配置文件路径为 /etc/netplan/ 下的 .yaml 文件(如 00-installer-config.yaml):

bash
vim /etc/netplan/00-installer-config.yaml

添加或修改配置内容,设置 IP、网关、DNS,并使用 set-name 和 match.macaddress 进行重命名:

bash
# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}

network:
  ethernets:
    eno1: # 替换为当前网卡名称
      addresses:
        - 192.168.100.148/24 # 替换为您的 IP 地址和子网掩码
      routes:
        - to: default
          via: 192.168.100.1
      nameservers:
        addresses:
          - 192.168.100.1 # 替换为您的 DNS 服务器地址
      # 目标名称:将 eno1 重命名为 eth0
      set-name: eth0
      match:
        # 精确匹配 MAC 地址
        macaddress: 3c:ec:ef:a1:93:0f # 替换为您记录的 MAC 地址
  version: 2

应用配置并生效 ​

运行 netplan apply 命令,使新的网络配置和网卡重命名生效:

bash
netplan apply

重要提示: 如果您是远程通过 SSH 操作,应用此配置后 SSH 连接可能会暂时中断。请确保您具备串口、IPMI 或其他带外管理方式进行备份访问,以防网络重命名失败导致连接丢失。

打开配置文件99-disable-network-config.cfg,此文件来源于上面配置的注释部分:

bash
vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

添加以下内容:

bash
network: {config: disabled}

验证重命名 ​

运行以下命令,验证网卡是否已成功重命名为目标名称 eth0:

bash
ip addr show eth0

确保网卡名称已从原名称(如 eno1)成功变更为 eth0,且网络连接正常。