2.4. 创建包含一个自定义 br-ex 网桥的清单对象
除了使用 configure-ovs.sh
shell 脚本在裸机平台上设置 br-ex
网桥的替代选择,您可以创建一个包括 NMState 配置文件的 MachineConfig
对象。NMState 配置文件在集群的每个节点上创建自定义的 br-ex
网桥网络配置。
创建包含一个自定义 br-ex
网桥的 MachineConfig
对象只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
请考虑以下用例:创建包含自定义 br-ex
网桥的清单对象:
-
您需要对网桥进行安装后更改,如更改 Open vSwitch (OVS) 或 OVN-Kubernetes
br-ex
网桥网络。configure-ovs.sh
shell 脚本不支持对网桥进行安装后更改。 - 您希望将网桥部署到与主机或服务器 IP 地址上可用的接口不同的接口上。
-
您希望通过
configure-ovs.sh
shell 脚本对网桥进行高级配置。对这些配置使用脚本可能会导致网桥无法连接多个网络接口,并无法正确处理接口之间的数据转发。
如果您需要一个只带有单一网络接口控制器 (NIC) 和默认网络设置的环境,请使用 configure-ovs.sh
shell 脚本。
在安装 Red Hat Enterprise Linux CoreOS (RHCOS) 并重启系统后,Machine Config Operator 会将 Ignition 配置文件注入集群中的每个节点,以便每个节点收到 br-ex
网桥网络配置。为防止配置冲突,configure-ovs.sh
shell 脚本会收到一个不要配置 br-ex
网桥的信号。
先决条件
-
可选: 已安装
nmstate
API,以便您可以验证 NMState 配置。
流程
为您的自定义
br-ex
网桥网络创建一个使用 base64 信息的 NMState 配置文件:自定义
br-ex
网桥网络的 NMState 配置示例interfaces: - name: enp2s0 1 type: ethernet 2 state: up 3 ipv4: enabled: false 4 ipv6: enabled: false - name: br-ex type: ovs-bridge state: up ipv4: enabled: false dhcp: false ipv6: enabled: false dhcp: false bridge: port: - name: enp2s0 5 - name: br-ex - name: br-ex type: ovs-interface state: up copy-mac-from: enp2s0 ipv4: enabled: true dhcp: true ipv6: enabled: false dhcp: false # ...
使用
cat
命令对 NMState 配置的内容进行 base64 编码:$ cat <nmstate_configuration>.yaml | base64 1
- 1
- 将
<nmstate_configuration>
替换为 NMState 资源 YAML 文件的名称。
创建
MachineConfig
清单文件,并定义一个自定义br-ex
网桥网络配置,如下例所示:apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker 1 name: 10-br-ex-worker 2 spec: config: ignition: version: 3.2.0 storage: files: - contents: source: data:text/plain;charset=utf-8;base64,<base64_encoded_nmstate_configuration> 3 mode: 0644 overwrite: true path: /etc/nmstate/openshift/cluster.yml # ...
2.4.1. 可选:将每个机器集扩展到计算节点
要将自定义 br-ex
网桥配置应用到 OpenShift Container Platform 集群中的所有计算节点,您必须编辑 MachineConfig
自定义资源 (CR) 并修改其角色。另外,您必须创建一个 BareMetalHost
CR,用于定义裸机机器的信息,如主机名、凭证等。
配置这些资源后,您必须扩展机器集,以便机器集可以将资源配置应用到每个计算节点并重新引导节点。
先决条件
-
您创建了包含自定义
br-ex
网桥配置的MachineConfig
清单对象。
流程
输入以下命令编辑
MachineConfig
CR:$ oc edit mc <machineconfig_custom_resource_name>
- 将每个计算节点配置添加到 CR,以便 CR 可以管理集群中每个定义的计算节点的角色。
-
创建名为
extraworker-secret
的Secret
对象,该对象具有最小的静态 IP 配置。 输入以下命令将
extraworker-secret
secret 应用到集群中的每个节点。此步骤提供每个计算节点对 Ignition 配置文件的访问权限。$ oc apply -f ./extraworker-secret.yaml
创建
BareMetalHost
资源并在preprovisioningNetworkDataName
参数中指定网络 secret:带有附加网络 secret 的
BareMetalHost
资源示例apiVersion: metal3.io/v1alpha1 kind: BareMetalHost spec: # ... preprovisioningNetworkDataName: ostest-extraworker-0-network-config-secret # ...
要在集群的
openshift-machine-api
命名空间中管理BareMetalHost
对象,请输入以下命令来更改命名空间:$ oc project openshift-machine-api
获取机器集:
$ oc get machinesets
输入以下命令扩展每个机器集。您必须为每个机器集运行这个命令。
$ oc scale machineset <machineset_name> --replicas=<n> 1
- 1
- 其中
<machineset_name>
是机器集的名称,<n>
是计算节点的数量。