5.4. 将网络服务用于 RHOSO 数据平面
将现有 Red Hat OpenStack Platform 中的 Networker 服务部署到 OpenShift (RHOSO)数据平面上的 Red Hat OpenStack Services 中。Networker
服务可以在 Controller
节点或专用 Networker
节点上运行。您决定要在 Networker 节点上运行哪些服务,并为 Networker 节点创建单独的 OpenStackDataPlaneNodeSet
自定义资源(CR)。如果选项适用于您的环境,您可能还决定实现以下选项:
-
根据您的拓扑,您可能需要在节点上运行
neutron-metadata
服务,特别是为 Compute 节点上托管的 SR-IOV 端口提供元数据时。 -
如果要在 Networker 节点上运行 OVN 网关服务,请在要部署的列表中保留
ovn
服务。 -
可选:您可以在 Networker 节点上运行
neutron-dhcp
服务,而不是在 Compute 节点上运行。除非部署使用 DHCP 转发或 dnsmasq 支持的高级 DHCP 选项,否则您可能不需要将neutron-dhcp
与 OVN DHCP 实施一起使用。
当节点设置为 OVN chassis 网关时,将现有 Red Hat OpenStack Platform 部署中的每个 Controller 或 Networker 节点采用到 OpenShift 上的 Red Hat OpenStack Services (RHOSO)。任何参数设置为 enable-chassis-as-gw
的节点都被视为 OVN 网关机箱。在这种情况下,此类节点将在使用后成为 edpm 网络器节点。
检查运行
OVN Controller 网关代理
的节点。代理列表因您启用的服务而异:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
先决条件
定义 shell 变量。根据上面的代理列表输出,controller-0、controller-1、controller-2 是我们的目标主机。如果您有
Controller
和Networker
节点都运行 networker 服务,那么请在下面添加所有这些主机。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
根据您的环境,将
["<node-name>"]="192.168.122.100"
替换为相应 Networker 或 Controller 节点的名称和 IP 地址。
-
根据您的环境,将
流程
为您的节点部署
OpenStackDataPlaneNodeSet
CR:注意您可以重复使用为 Compute 节点指定的
OpenStackDataPlaneNodeSet
CR 中的大多数nodeTemplate
部分。您可以省略一些变量,因为 Networker 节点上运行的一组有限服务。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在采用前,请确保在 Networker 节点中使用的
OpenStackDataPlaneNodeSet
CR 中使用相同的ovn-controller
设置。此配置存储在 Open vSwitch 数据库的Open_vSwitch
表中的external_ids
列中:ovs-vsctl list Open . ... external_ids : {hostname=controller-0.localdomain, ovn-bridge=br-int, ovn-bridge-mappings=<bridge_mappings>, ovn-chassis-mac-mappings="datacentre:1e:0a:bb:e6:7c:ad", ovn-cms-options=enable-chassis-as-gw, ovn-encap-ip="172.19.0.100", ovn-encap-tos="0", ovn-encap-type=geneve, ovn-match-northd-version=False, ovn-monitor-all=True, ovn-ofctrl-wait-before-clear="8000", ovn-openflow-probe-interval="60", ovn-remote="tcp:ovsdbserver-sb.openstack.svc:6642", ovn-remote-probe-interval="60000", rundir="/var/run/openvswitch", system-id="2eec68e6-aa21-4c95-a868-31aeafc11736"} ...
ovs-vsctl list Open . ... external_ids : {hostname=controller-0.localdomain, ovn-bridge=br-int, ovn-bridge-mappings=<bridge_mappings>, ovn-chassis-mac-mappings="datacentre:1e:0a:bb:e6:7c:ad", ovn-cms-options=enable-chassis-as-gw, ovn-encap-ip="172.19.0.100", ovn-encap-tos="0", ovn-encap-type=geneve, ovn-match-northd-version=False, ovn-monitor-all=True, ovn-ofctrl-wait-before-clear="8000", ovn-openflow-probe-interval="60", ovn-remote="tcp:ovsdbserver-sb.openstack.svc:6642", ovn-remote-probe-interval="60000", rundir="/var/run/openvswitch", system-id="2eec68e6-aa21-4c95-a868-31aeafc11736"} ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<bridge_mappings
> 替换为您的配置中网桥映射的值,如"datacentre:br-ctlplane
"。
-
将
可选:在
OpenStackDataPlaneNodeSet
CR 中启用neutron-metadata
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<networker_CR_name
> 替换为您为 Networker 节点部署的 CR 名称,如openstack-networker
。
-
将
可选:在
OpenStackDataPlaneNodeSet
CR 中启用neutron-dhcp
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Networker 节点运行
pre-adoption-validation
服务:创建仅运行验证的
OpenStackDataPlaneDeployment
CR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证完成后,确认 Ansible EE pod 的状态为
Completed
:watch oc get pod -l app=openstackansibleee
$ watch oc get pod -l app=openstackansibleee
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs -l app=openstackansibleee -f --max-log-requests 20
$ oc logs -l app=openstackansibleee -f --max-log-requests 20
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待部署变为
Ready
状态:oc wait --for condition=Ready openstackdataplanedeployment/openstack-pre-adoption-networker --timeout=10m
$ oc wait --for condition=Ready openstackdataplanedeployment/openstack-pre-adoption-networker --timeout=10m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为 Networker 节点部署
OpenStackDataPlaneDeployment
CR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意另外,在部署主
OpenStackDataPlaneDeployment
CR 前,您可以在nodeSets
列表中包含 Networker 节点。您不能在部署后将新节点设置为OpenStackDataPlaneDeployment
CR。清理不再运行的任何网络服务(neutron)代理。
注意在某些情况下,来自被替换或停用的旧数据平面的代理保留在 RHOSO 中。提供的这些代理可能由 RHOSO 中运行的新代理提供,或者功能可能被其他组件替代。例如,可能不再需要 DHCP 代理,因为 RHOSO 中的 OVN DHCP 可以提供此功能。
列出代理:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果列表中的任何代理在
Alive
字段中显示XXX
,请验证 Host 和 Agent Type,如果不再需要此代理,且代理已在 Red Hat OpenStack Platform 主机上永久停止。然后,删除代理:oc exec openstackclient -- openstack network agent <agent_id>
$ oc exec openstackclient -- openstack network agent <agent_id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<agent_id
> 替换为要删除的代理 ID,例如856960f0-5530-46c7-a331-6eadcba362da
。
-
将
验证
确认所有 Ansible EE pod 都到达
Completed
状态:watch oc get pod -l app=openstackansibleee
$ watch oc get pod -l app=openstackansibleee
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs -l app=openstackansibleee -f --max-log-requests 20
$ oc logs -l app=openstackansibleee -f --max-log-requests 20
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待 data plane 节点设置为
Ready
状态:oc wait --for condition=Ready osdpns/<networker_CR_name> --timeout=30m
$ oc wait --for condition=Ready osdpns/<networker_CR_name> --timeout=30m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<networker_CR_name
> 替换为您为 Networker 节点部署的 CR 名称,如openstack-networker
。
-
将
验证 Networking 服务(neutron)代理是否正在运行。代理列表因您启用的服务而异:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow