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 配置。

流程

  1. 为您的自定义 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
    # ...

    1
    接口的名称。
    2
    以太网的类型。
    3
    创建后接口的请求状态。
    4
    在这个示例中禁用 IPv4 和 IPv6。
    5
    网桥附加到的节点 NIC。
  2. 使用 cat 命令对 NMState 配置的内容进行 base64 编码:

    $ cat <nmstate_configuration>.yaml | base64 1
    1
    <nmstate_configuration> 替换为 NMState 资源 YAML 文件的名称。
  3. 创建 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
    # ...
    1
    对于集群中的每个节点,指定节点的主机名路径以及机器类型的 base-64 编码 Ignition 配置文件数据。如果您在要应用到集群中的所有节点的 /etc/nmstate/openshift/cluster.yml 配置文件中指定了单个全局配置,则不需要为每个节点指定主机名路径。worker 角色是集群中节点的默认角色。当为每个节点,或 MachineConfig 清单文件中的所有节点指定主机名路径时,.yaml 扩展无法正常工作。
    2
    策略的名称。
    3
    将编码的 base64 信息写入指定路径。

2.4.1. 可选:将每个机器集扩展到计算节点

要将自定义 br-ex 网桥配置应用到 OpenShift Container Platform 集群中的所有计算节点,您必须编辑 MachineConfig 自定义资源 (CR) 并修改其角色。另外,您必须创建一个 BareMetalHost CR,用于定义裸机机器的信息,如主机名、凭证等。

配置这些资源后,您必须扩展机器集,以便机器集可以将资源配置应用到每个计算节点并重新引导节点。

先决条件

  • 您创建了包含自定义 br-ex 网桥配置的 MachineConfig 清单对象。

流程

  1. 输入以下命令编辑 MachineConfig CR:

    $ oc edit mc <machineconfig_custom_resource_name>
  2. 将每个计算节点配置添加到 CR,以便 CR 可以管理集群中每个定义的计算节点的角色。
  3. 创建名为 extraworker-secretSecret 对象,该对象具有最小的静态 IP 配置。
  4. 输入以下命令将 extraworker-secret secret 应用到集群中的每个节点。此步骤提供每个计算节点对 Ignition 配置文件的访问权限。

    $ oc apply -f ./extraworker-secret.yaml
  5. 创建 BareMetalHost 资源并在 preprovisioningNetworkDataName 参数中指定网络 secret:

    带有附加网络 secret 的 BareMetalHost 资源示例

    apiVersion: metal3.io/v1alpha1
    kind: BareMetalHost
    spec:
    # ...
      preprovisioningNetworkDataName: ostest-extraworker-0-network-config-secret
    # ...

  6. 要在集群的 openshift-machine-api 命名空间中管理 BareMetalHost 对象,请输入以下命令来更改命名空间:

    $ oc project openshift-machine-api
  7. 获取机器集:

    $ oc get machinesets
  8. 输入以下命令扩展每个机器集。您必须为每个机器集运行这个命令。

    $ oc scale machineset <machineset_name> --replicas=<n> 1
    1
    其中 <machineset_name> 是机器集的名称,<n> 是计算节点的数量。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.