3.5. 在子网间建立通信
在典型的 OpenShift Container Platform 集群设置中,所有节点(包括 control plane 和 worker 节点)都驻留在同一网络中。但是,对于边缘计算场景,找到接近边缘的 worker 节点会很有用。这通常涉及为与 control plane 和本地 worker 节点使用的子网不同的远程 worker 节点使用不同的网络片段或子网。此类设置可以降低边缘的延迟并允许增强的可扩展性。
在安装 OpenShift Container Platform 前,您必须正确配置网络,以确保包含远程节点的边缘子网可以访问包含 control plane 节点的子网,并从 control plane 接收流量。
在集群安装过程中,将永久 IP 地址分配给 install-config.yaml
配置文件的网络配置中的节点。如果不这样做,节点可能会被分配一个临时 IP 地址,该地址可能会影响流量到达节点的方式。例如,如果节点分配了临时 IP 地址,并且为节点配置了绑定接口,则绑定接口可能会收到不同的 IP 地址。
此流程详细介绍了允许第二个子网中的远程 worker 节点与第一个子网中的 control plane 节点有效通信所需的网络配置,并允许第一个子网中的 control plane 节点与第二个子网中的远程 worker 节点有效通信。
在此过程中,集群跨越两个子网:
-
第一个子网 (
10.0.0.0
) 包含 control plane 和本地 worker 节点。 -
第二个子网 (
192.168.0.0
) 包含边缘工作程序节点。
所有 control plane 节点必须在同一子网中运行。当使用多个子网时,您还可以使用清单将 Ingress VIP 配置为在 control plane 节点上运行。详情请参阅"配置要在 control plane 上运行的网络组件"。
使用多个子网部署集群需要使用虚拟介质。
流程
配置第一个子网与第二个子网通信:
运行以下命令,以
root
用户身份登录 control plane 节点:sudo su -
$ sudo su -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取网络接口名称:
nmcli dev status
# nmcli dev status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
通过网关将路由添加到第二个子网(
192.168.0.0
):s+
nmcli connection modify <interface_name> +ipv4.routes "192.168.0.0/24 via <gateway>"
# nmcli connection modify <interface_name> +ipv4.routes "192.168.0.0/24 via <gateway>"
+ 将 <interface_name>
替换为接口名称。使用实际网关的 IP 地址替换 <gateway>
。
+ .Example
+
nmcli connection modify eth0 +ipv4.routes "192.168.0.0/24 via 192.168.0.1"
# nmcli connection modify eth0 +ipv4.routes "192.168.0.0/24 via 192.168.0.1"
应用更改:
nmcli connection up <interface_name>
# nmcli connection up <interface_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<interface_name>
替换为接口名称。验证路由表以确保路由已被成功添加:
ip route
# ip route
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对第一个子网中的每个 control plane 节点重复前面的步骤。
注意调整命令以匹配您的实际接口名称和网关。
- 将第二个子网配置为与第一个子网通信:
以
root
用户身份登录远程 worker 节点:sudo su -
$ sudo su -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取网络接口名称:
nmcli dev status
# nmcli dev status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过网关将路由添加到第一个子网 (
10.0.0.0
):nmcli connection modify <interface_name> +ipv4.routes "10.0.0.0/24 via <gateway>"
# nmcli connection modify <interface_name> +ipv4.routes "10.0.0.0/24 via <gateway>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<interface_name>
替换为接口名称。使用实际网关的 IP 地址替换<gateway>
。示例
nmcli connection modify eth0 +ipv4.routes "10.0.0.0/24 via 10.0.0.1"
# nmcli connection modify eth0 +ipv4.routes "10.0.0.0/24 via 10.0.0.1"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用更改:
nmcli connection up <interface_name>
# nmcli connection up <interface_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<interface_name>
替换为接口名称。验证路由表以确保路由已被成功添加:
ip route
# ip route
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对第二个子网中的每个 worker 节点重复前面的步骤。
注意调整命令以匹配您的实际接口名称和网关。
- 配置网络后,测试连接以确保远程 worker 节点可以访问 control plane 节点,control plane 节点可以访问远程 worker 节点。
从第一个子网中的 control plane 节点,ping 第二个子网中的远程 worker 节点:
ping <remote_worker_node_ip_address>
$ ping <remote_worker_node_ip_address>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 ping 成功,这意味着第一个子网中的 control plane 节点可以访问第二个子网中的远程 worker 节点。如果您没有收到响应,请检查网络配置并重复该节点的步骤。
从第二个子网中的远程 worker 节点,ping 第一个子网中的 control plane 节点:
ping <control_plane_node_ip_address>
$ ping <control_plane_node_ip_address>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 ping 成功,则意味着第二个子网中的远程 worker 节点可以访问第一个子网中的 control plane。如果您没有收到响应,请检查网络配置并重复该节点的步骤。