3.7. 在子网间建立通信


在典型的 OpenShift Container Platform 集群设置中,所有节点(包括 control plane 和计算节点)都驻留在同一网络中。但是,对于边缘计算场景,定位接近边缘的计算节点会很有用。这通常涉及将不同的网络段或子网用于与 control plane 和本地计算节点使用的子网不同的网络段或子网。此类设置可以降低边缘的延迟并允许增强的可扩展性。

在安装 OpenShift Container Platform 前,您必须正确配置网络,以确保包含远程节点的边缘子网可以访问包含 control plane 节点的子网,并从 control plane 接收流量。

重要

在集群安装过程中,将永久 IP 地址分配给 install-config.yaml 配置文件的网络配置中的节点。如果不这样做,节点可能会被分配一个临时 IP 地址,该地址可能会影响流量到达节点的方式。例如,如果节点分配了临时 IP 地址,并且为节点配置了绑定接口,则绑定接口可能会收到不同的 IP 地址。

您可以通过配置用户管理的负载均衡器来代替默认负载均衡器,在同一子网或多个子网中运行 control plane 节点。使用多个子网环境,您可以降低 OpenShift Container Platform 集群因为硬件故障或网络中断而失败的问题。如需更多信息,请参阅"配置用户管理的负载均衡器"和"配置用户管理的负载均衡器"。

在多个子网环境中运行 control plane 节点需要完成以下关键任务:

  • 通过在 install-config.yaml 文件的 loadBalancer.type 参数中指定 UserManaged 来配置用户管理的负载均衡器,而不是默认的负载均衡器。
  • install-config.yaml 文件的 ingressVIPsapiVIPs 参数中配置用户管理的负载均衡器地址。
  • 将多个子网无类别域间路由 (CIDR) 和用户管理的负载均衡器 IP 地址添加到 install-config.yaml 文件中的 networking.machineNetworks 参数。
注意

使用多个子网部署集群需要使用虚拟介质,如 redfish-virtualmediaidrac-virtualmedia

此流程详细介绍了允许第二个子网中的远程计算节点与第一个子网中的 control plane 节点有效通信所需的网络配置,并允许第一个子网中的 control plane 节点与第二个子网中的远程 worker 节点有效通信。

在此过程中,集群跨越两个子网:

  • 第一个子网 (10.0.0.0) 包含 control plane 和本地计算节点。
  • 第二个子网 (192.168.0.0) 包含边缘计算节点。

流程

  1. 配置第一个子网与第二个子网通信:

    1. 运行以下命令,以 root 用户身份登录 control plane 节点:

      $ sudo su -
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令,获取网络接口的名称:

      # nmcli dev status
      Copy to Clipboard Toggle word wrap
    3. 运行以下命令,通过网关向第二个子网(192.168.0.0)添加路由:

      # nmcli connection modify <interface_name> +ipv4.routes "192.168.0.0/24 via <gateway>"
      Copy to Clipboard Toggle word wrap

      <interface_name> 替换为接口名称。使用实际网关的 IP 地址替换 <gateway>

      示例

      # nmcli connection modify eth0 +ipv4.routes "192.168.0.0/24 via 192.168.0.1"
      Copy to Clipboard Toggle word wrap

    4. 运行以下命令来应用更改:

      # nmcli connection up <interface_name>
      Copy to Clipboard Toggle word wrap

      <interface_name> 替换为接口名称。

    5. 验证路由表以确保路由已被成功添加:

      # ip route
      Copy to Clipboard Toggle word wrap
    6. 对第一个子网中的每个 control plane 节点重复前面的步骤。

      注意

      调整命令以匹配您的实际接口名称和网关。

  2. 将第二个子网配置为与第一个子网通信:

    1. 运行以下命令,以 root 用户身份登录远程计算节点:

      $ sudo su -
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令,获取网络接口的名称:

      # nmcli dev status
      Copy to Clipboard Toggle word wrap
    3. 运行以下命令,通过网关向第一个子网(10.0.0.0)添加路由:

      # nmcli connection modify <interface_name> +ipv4.routes "10.0.0.0/24 via <gateway>"
      Copy to Clipboard Toggle word wrap

      <interface_name> 替换为接口名称。使用实际网关的 IP 地址替换 <gateway>

      示例

      # nmcli connection modify eth0 +ipv4.routes "10.0.0.0/24 via 10.0.0.1"
      Copy to Clipboard Toggle word wrap

    4. 运行以下命令来应用更改:

      # nmcli connection up <interface_name>
      Copy to Clipboard Toggle word wrap

      <interface_name> 替换为接口名称。

    5. 运行以下命令,验证路由表以确保路由已被成功添加:

      # ip route
      Copy to Clipboard Toggle word wrap
    6. 对第二个子网中的每一计算节点重复前面的步骤。

      注意

      调整命令以匹配您的实际接口名称和网关。

  3. 配置网络后,测试连接以确保远程节点可以访问 control plane 节点,control plane 节点可以访问远程节点。

    1. 从第一个子网中的 control plane 节点,运行以下命令来 ping 第二个子网中的远程节点:

      $ ping <remote_node_ip_address>
      Copy to Clipboard Toggle word wrap

      如果 ping 成功,则意味着第一个子网中的 control plane 节点可以访问第二个子网中的远程节点。如果您没有收到响应,请检查网络配置并重复该节点的步骤。

    2. 在第二个子网中的远程节点中,运行以下命令来 ping 第一个子网中的 control plane 节点:

      $ ping <control_plane_node_ip_address>
      Copy to Clipboard Toggle word wrap

      如果 ping 成功,则意味着第二个子网中的远程计算节点可以访问第一个子网中的 control plane。如果您没有收到响应,请检查网络配置并重复该节点的步骤。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat