2.4. 创建包含一个自定义 br-ex 网桥的清单对象
除了使用 configure-ovs.sh shell 脚本在裸机平台上设置 br-ex 网桥的替代选择,您可以创建一个包括 NMState 配置文件的 MachineConfig 对象。主机 nmstate-configuration.service 和 nmstate.service 将 NMState 配置文件应用到集群中运行的每个节点。
作为使用 configure-ovs.sh shell 脚本在裸机平台上设置 br-ex 网桥的替代选择,您可以创建一个包括 NMState 配置文件的 NodeNetworkConfigurationPolicy (NNCP) 自定义资源(CR)。
Kubernetes NMState Operator 使用 NMState 配置文件在集群的每个节点上创建自定义的 br-ex 网桥网络配置。
创建 NodeNetworkConfigurationPolicy CR 后,将在集群安装过程中创建的 NMState 配置文件中的内容复制到 NNCP CR。NNCP CR 文件不完整,表示文件中描述的网络策略无法应用到集群中的节点。
此功能支持以下任务:
- 修改集群的最大传输单元 (MTU)。
- 修改不同绑定接口的属性,如 MIImon (媒体独立接口监控器)、绑定模式或服务质量 (QoS)。
- 更新 DNS 值。
请考虑以下用例:创建包含自定义 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 网桥的信号。
先决条件
-
可选: 已安装
nmstateAPI,以便您可以验证 NMState 配置。
流程
为您的自定义
br-ex网桥网络创建一个使用 base64 信息的 NMState 配置文件:自定义
br-ex网桥网络的 NMState 配置示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
interfaces.name- 接口的名称。
interfaces.type- 以太网的类型。
interfaces.state- 创建后接口的请求状态。
ipv4.enabled- 在这个示例中禁用 IPv4 和 IPv6。
port.name- 网桥附加到的节点 NIC。
auto-route-metric-
将参数设置为
48,以确保br-ex默认路由始终具有最高的优先级(最低指标)。此配置可防止与NetworkManager服务自动配置的任何其他接口冲突。
使用
cat命令对 NMState 配置的内容进行 base64 编码:cat <nmstate_configuration>.yml | base64
$ cat <nmstate_configuration>.yml | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<nmstate_configuration>-
将
<nmstate_configuration>替换为 NMState 资源 YAML 文件的名称。
创建
MachineConfig清单文件,并定义一个自定义br-ex网桥网络配置,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
metadata.name- 策略的名称。
contents.source- 将编码的 base64 信息写入指定路径。
path对于集群中的每个节点,指定节点的主机名路径以及机器类型的 base-64 编码 Ignition 配置文件数据。
worker角色是集群中节点的默认角色。在为配置文件指定短主机名路径或MachineConfig清单文件中的所有节点时,您必须使用.yml扩展作为配置文件,如$(hostname -s).yml。如果您在要应用到集群中的所有节点的
/etc/nmstate/openshift/cluster.yml配置文件中指定了单个全局配置,则不需要为每个节点指定短主机名路径,如/etc/nmstate/openshift/<node_hostname>.yml。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
输入以下命令将
MachineConfig对象中的更新应用到集群:oc apply -f <machine_config>.yml
$ oc apply -f <machine_config>.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
-
扩展计算节点,以将包含自定义
br-ex网桥的 manifest 对象应用到集群中存在的每个计算节点。如需更多信息,请参阅附加资源部分中的"扩展集群"。
2.4.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.yamlCopy 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-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 获取机器集:
oc get machinesets
$ oc get machinesetsCopy 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>是计算节点的数量。