3.2. 为 RHOSO 网络准备 RHOCP
Red Hat OpenStack Services on OpenShift (RHOSO)服务作为 Red Hat OpenShift Container Platform (RHOCP)工作负载运行。您可以使用 NMState Operator 将 worker 节点连接到所需的隔离网络。您可以使用 MetalLB Operator 在隔离的网络上公开内部服务端点。默认情况下,公共服务端点以 RHOCP 路由的形式公开,因为只有路由用于公共端点。
control plane 接口名称必须在所有节点上一致,因为网络清单直接引用 control plane 接口名称。如果 control plane 接口名称不一致,则 RHOSO 环境将无法部署。如果物理接口名称与节点上不一致,您必须创建一个 Linux 绑定,为可由其他网络清单引用的物理接口配置一致的替代名称。
以下流程中的示例使用 IPv4 地址。您可以使用 IPv6 地址而不是 IPv4 地址。双堆栈 IPv4/6 不可用。有关如何配置 IPv6 地址的详情,请参考 RHOCP 网络指南中的以下资源 :
3.2.1. 使用隔离网络接口准备 RHOCP 复制链接链接已复制到粘贴板!
创建一个 NodeNetworkConfigurationPolicy
(nncp
) CR,以便在 RHOCP 集群中每个 worker 节点上为每个隔离网络配置接口。
流程
-
在工作站上创建一个
NodeNetworkConfigurationPolicy
(nncp
) CR 文件,例如openstack-nncp.yaml
。 检索 RHOCP 集群中 worker 节点的名称:
oc get nodes -l node-role.kubernetes.io/worker -o jsonpath="{.items[*].metadata.name}"
$ oc get nodes -l node-role.kubernetes.io/worker -o jsonpath="{.items[*].metadata.name}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 发现网络配置:
oc get nns/<worker_node> -o yaml | more
$ oc get nns/<worker_node> -o yaml | more
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<worker_node
> 替换为在第 2 步中获取的 worker 节点的名称,如worker-1
。为每个 worker 节点重复此步骤。
-
将
在
nncp
CR 文件中,在 RHOCP 集群中每个 worker 节点上为每个隔离网络配置接口。有关必须配置网络隔离的默认物理数据中心网络的信息,请参阅 OpenShift 网络上的默认 Red Hat OpenStack Services。在以下示例中,
nncp
CR 为 worker 节点 1 配置enp6s0
接口,即osp-enp6s0-worker-1
,将带有 IPv4 地址的 VLAN 接口用于网络隔离:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在集群中创建
nncp
CR:oc apply -f openstack-nncp.yaml
$ oc apply -f openstack-nncp.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
nncp
CR 是否已创建:oc get nncp -w
$ oc get nncp -w NAME STATUS REASON osp-enp6s0-worker-1 Progressing ConfigurationProgressing osp-enp6s0-worker-1 Progressing ConfigurationProgressing osp-enp6s0-worker-1 Available SuccessfullyConfigured
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.2. 将服务 pod 附加到隔离的网络 复制链接链接已复制到粘贴板!
为每个隔离网络创建一个 NetworkAttachmentDefinition
(net-attach-def
)自定义资源(CR),以将服务 pod 附加到网络。
流程
-
在工作站上创建一个
NetworkAttachmentDefinition
(net-attach-def
) CR 文件,如openstack-net-attach-def.yaml
。 在
NetworkAttachmentDefinition
CR 文件中,为每个隔离网络配置NetworkAttachmentDefinition
资源,以将服务部署 pod 附加到网络。以下示例为以下网络创建一个NetworkAttachmentDefinition
资源:-
internalapi
、存储
、ctlplane
,以及类型为macvlan
的租户网络。 -
Octavia
,类型为bridge
的负载平衡管理网络。此网络附加连接管理负载均衡器虚拟机(amphorae)和由 OVN 操作器管理的 Open vSwitch pod 的 pod。 -
DNS 服务(指定)在内部使用的指定网络来管理 DNS 服务器。
-
指定ext
网络,用于提供对 DNS 服务解析器和 DNS 服务器的外部访问。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
metadata.namespace
:部署服务的命名空间。 -
"master"
: 与网络关联的节点接口名称,如nncp
CR 中定义的。 -
"IPAM"
:
关于 CNI IPAM 插件将 IP 分配给从范围.30 - .70
中创建的 pod。 -
"range_start" - "range_end"
:IP 地址池范围不得与 MetalLBIPAddressPool
范围和NetConfig allocationRange
重叠。
-
在集群中创建
NetworkAttachmentDefinition
CR:oc apply -f openstack-net-attach-def.yaml
$ oc apply -f openstack-net-attach-def.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
NetworkAttachmentDefinition
CR 是否已创建:oc get net-attach-def -n openstack
$ oc get net-attach-def -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3. 为 RHOSO 网络 VIP 准备 RHOCP 复制链接链接已复制到粘贴板!
Red Hat OpenStack Services on OpenShift (RHOSO)服务作为 Red Hat OpenShift Container Platform (RHOCP)工作负载运行。您必须创建一个 L2Advertisement
资源,以定义如何宣布虚拟 IP (VIP)和 IPAddressPool
资源来配置哪些 IP 可用作 VIP。在第 2 层模式中,一个节点假定将服务公告给本地网络。
流程
-
在工作站上创建一个
IPAddressPool
CR 文件,例如openstack-ipaddresspools.yaml
。 在
IPAddressPool
CR 文件中,在隔离网络上配置IPAddressPool
资源,以指定 MetalLB 具有授权的 IP 地址范围:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
spec.addresses
:IPAddressPool
范围不得与whereabouts
IPAM 范围和 NetConfigallocationRange
重叠。
有关如何配置其他
IPAddressPool
资源参数的详情,请参考 RHOCP 网络指南中的 配置 MetalLB 地址池。-
在集群中创建
IPAddressPool
CR:oc apply -f openstack-ipaddresspools.yaml
$ oc apply -f openstack-ipaddresspools.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
IPAddressPool
CR 是否已创建:oc describe -n metallb-system IPAddressPool
$ oc describe -n metallb-system IPAddressPool
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在工作站上创建一个
L2Advertisement
CR 文件,如openstack-l2advertisement.yaml
。 在
L2Advertisement
CR 文件中,配置L2Advertisement
CR,以定义哪些节点向本地网络公告服务。为每个网络创建一个L2Advertisement
资源。在以下示例中,每个
L2Advertisement
CR 指定在附加到 VLAN 的接口上宣布从网络地址池请求的 VIP:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
spec.interfaces
:宣布从 VLAN 地址池请求的 VIP 的接口。
有关如何配置其他
L2Advertisement
资源参数的详情,请参考 RHOCP 网络指南中的 使用 L2 公告和标签配置 MetalLB。-
在集群中创建
L2Advertisement
CR:oc apply -f openstack-l2advertisement.yaml
$ oc apply -f openstack-l2advertisement.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
L2Advertisement
CR 是否已创建:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的集群将 OVNKubernetes 用作网络后端,则必须启用全局转发,以便 MetalLB 可以在二级网络接口中工作。
检查集群使用的网络后端:
oc get network.operator cluster --output=jsonpath='{.spec.defaultNetwork.type}'
$ oc get network.operator cluster --output=jsonpath='{.spec.defaultNetwork.type}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果后端是 OVNKubernetes,则运行以下命令来启用全局 IP 转发:
oc patch network.operator cluster -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}' --type=merge
$ oc patch network.operator cluster -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow