3.5. 创建包含一个自定义 br-ex 网桥的清单对象
				除了使用 configure-ovs.sh shell 脚本在裸机平台上设置 br-ex 网桥的替代选择,您可以创建一个包括 NMState 配置文件的 MachineConfig 对象。主机 nmstate-configuration.service 和 nmstate.service 将 NMState 配置文件应用到集群中运行的每个节点。
			
				请考虑以下用例:创建包含自定义 br-ex 网桥的清单对象:
			
- 
						您需要对网桥进行安装后更改,如更改 Open vSwitch (OVS) 或 OVN-Kubernetes br-ex网桥网络。configure-ovs.shshell 脚本不支持对网桥进行安装后更改。
- 您希望将网桥部署到与主机或服务器 IP 地址上可用的接口不同的接口上。
- 
						您希望通过 configure-ovs.shshell 脚本对网桥进行高级配置。对这些配置使用脚本可能会导致网桥无法连接多个网络接口,并无法正确处理接口之间的数据转发。
					如果您需要一个只带有单一网络接口控制器 (NIC) 和默认网络设置的环境,请使用 configure-ovs.sh shell 脚本。
				
				在安装 Red Hat Enterprise Linux CoreOS (RHCOS) 并重启系统后,Machine Config Operator 会将 Ignition 配置文件注入集群中的每个节点,以便每个节点收到 br-ex 网桥网络配置。为防止配置冲突,configure-ovs.sh shell 脚本会收到一个不要配置 br-ex 网桥的信号。
			
以下接口名称列表被保留,您不能使用带有 NMstate 配置的名称:
- 
							br-ext
- 
							br-int
- 
							br-local
- 
							br-nexthop
- 
							br0
- 
							ext-vxlan
- 
							ext
- 
							genev_sys_*
- 
							int
- 
							k8s-*
- 
							ovn-k8s-*
- 
							patch-br channel
- 
							tun0
- 
							vxlan_sys_*
先决条件
- 
						可选: 已安装 nmstateAPI,以便您可以验证 NMState 配置。
流程
- 为您的自定义 - br-ex网桥网络创建一个使用 base64 信息的 NMState 配置文件:- 自定义 - br-ex网桥网络的 NMState 配置示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用 - cat命令对 NMState 配置的内容进行 base64 编码:- cat <nmstate_configuration>.yaml | base64 - $ cat <nmstate_configuration>.yaml | base64- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 将<nmstate_configuration>替换为 NMState 资源 YAML 文件的名称。
 
- 创建 - MachineConfig清单文件,并定义一个自定义- br-ex网桥网络配置,如下例所示:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 如果您在要应用到集群中的所有节点的 - /etc/nmstate/openshift/cluster.yml配置文件中指定了单个全局配置,则不需要为每个节点指定短主机名路径,如- /etc/nmstate/openshift/<node_hostname>.yml。例如:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
后续步骤
- 
						扩展计算节点,以将包含自定义 br-ex网桥的 manifest 对象应用到集群中存在的每个计算节点。如需更多信息,请参阅附加资源部分中的 "扩展集群"。
3.5.1. 将每个机器集扩展到计算节点
					要将自定义 br-ex 网桥配置应用到 OpenShift Container Platform 集群中的所有计算节点,您必须编辑 MachineConfig 自定义资源 (CR) 并修改其角色。另外,您必须创建一个 BareMetalHost CR,用于定义裸机机器的信息,如主机名、凭证等。
				
配置这些资源后,您必须扩展机器集,以便机器集可以将资源配置应用到每个计算节点并重新引导节点。
先决条件
- 
							您创建了包含自定义 br-ex网桥配置的MachineConfig清单对象。
流程
- 输入以下命令编辑 - MachineConfigCR:- oc edit mc <machineconfig_custom_resource_name> - $ oc edit mc <machineconfig_custom_resource_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将每个计算节点配置添加到 CR,以便 CR 可以管理集群中每个定义的计算节点的角色。
- 
							创建名为 extraworker-secret的Secret对象,该对象具有最小的静态 IP 配置。
- 输入以下命令将 - extraworker-secretsecret 应用到集群中的每个节点。此步骤提供每个计算节点对 Ignition 配置文件的访问权限。- oc apply -f ./extraworker-secret.yaml - $ oc apply -f ./extraworker-secret.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 创建 - BareMetalHost资源并在- preprovisioningNetworkDataName参数中指定网络 secret:- 带有附加网络 secret 的 - BareMetalHost资源示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 要在集群的 - openshift-machine-api命名空间中管理- BareMetalHost对象,请输入以下命令来更改命名空间:- oc project openshift-machine-api - $ oc project openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取机器集: - oc get machinesets - $ oc get machinesets- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 输入以下命令扩展每个机器集。您必须为每个机器集运行这个命令。 - oc scale machineset <machineset_name> --replicas=<n> - $ oc scale machineset <machineset_name> --replicas=<n>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 其中<machineset_name>是机器集的名称,<n>是计算节点的数量。