3.2. 为裸机网络准备 RHOCP


Red Hat OpenStack Services on OpenShift (RHOSO)服务作为 Red Hat OpenShift Container Platform (RHOCP)工作负载运行。您可以使用 NMState Operator 将 worker 节点连接到所需的隔离网络。您可以使用 MetalLB Operator 在隔离的网络上公开内部服务端点。默认情况下,公共服务端点作为 RHOCP 路由公开。

为 ironic 服务 pod 附加到的裸机置备服务(ironic)创建隔离网络。以下流程创建一个名为 baremetal 的隔离网络。

有关如何创建隔离网络的更多信息,请参阅在 OpenShift 上部署 Red Hat OpenStack Services 中的 为 RHOSO 网络准备 RHOCP

注意

以下流程中的示例使用 IPv4 地址。您可以使用 IPv6 地址而不是 IPv4 地址。双堆栈 IPv4/6 不可用。有关如何配置 IPv6 地址的详情,请参考 RHOCP 网络指南中的以下资源

创建一个 NodeNetworkConfigurationPolicy (nncp) CR,在 Red Hat OpenShift Container Platform (RHOCP)集群中的每个 worker 节点上配置隔离裸机网络的接口。

流程

  1. 在工作站上创建一个 NodeNetworkConfigurationPolicy (nncp) CR 文件,以便在 RHOCP 集群中的每个 worker 节点上配置隔离裸机网络的接口,例如 baremetal-nncp.yaml
  2. 检索 RHOCP 集群中 worker 节点的名称:

    $ oc get nodes -l node-role.kubernetes.io/worker -o jsonpath="{.items[*].metadata.name}"
    Copy to Clipboard Toggle word wrap
  3. 发现网络配置:

    $ oc get nns/<worker_node> -o yaml | more
    Copy to Clipboard Toggle word wrap
    • <worker_node > 替换为在第 2 步中获取的 worker 节点的名称,如 worker-1。为每个 worker 节点重复此步骤。
  4. nncp CR 文件中,在 RHOCP 集群中每个 worker 节点上配置隔离裸机网络的接口,并配置虚拟路由和转发(VRF)以避免非对称路由。在以下示例中,nncp CR 为 worker 节点 1 ( osp-enp6s0-worker-1 )配置 baremetal 接口,以使用 enp8s0 接口上的网桥进行网络隔离:

    apiVersion: nmstate.io/v1
    kind: NodeNetworkConfigurationPolicy
    metadata:
     name: osp-enp6s0-worker-1
    spec:
     desiredState:
       interfaces:
       ....
       - description: Ironic bridge
         name: baremetal
         type: linux-bridge
         mtu: 1500
         bridge:
           options:
             stp:
               enabled: false
           port:
           - name: enp8s0
         ipv4:
           address:
           - ip: 172.17.0.10
             prefix-length: "24"
           enabled: true
         ipv6:
           enabled: false
       - description: Ironic VRF
         name: ironicvrf
         state: up
         type: vrf
         vrf:
           port:
           - baremetal
           route-table-id: 10
       route-rules:
         config: []
       routes:
         config:
         - destination: 0.0.0.0/0
           metric: 150
           next-hop-address: 172.17.0.1
           next-hop-interface: baremetal
           table-id: 10
         - destination: 172.17.0.0/24
           metric: 150
           next-hop-address: 192.168.122.1
           next-hop-interface: ospbr
    Copy to Clipboard Toggle word wrap
  5. 在集群中创建 nncp CR:

    $ oc apply -f baremetal-nncp.yaml
    Copy to Clipboard Toggle word wrap
  6. 验证 nncp CR 是否已创建:

    $ oc get nncp -w
    NAME                        STATUS        REASON
    osp-enp6s0-worker-1   Progressing   ConfigurationProgressing
    osp-enp6s0-worker-1   Progressing   ConfigurationProgressing
    osp-enp6s0-worker-1   Available     SuccessfullyConfigured
    Copy to Clipboard Toggle word wrap

3.2.2. 将 ironic 服务 pod 附加到 baremetal 网络

为每个隔离网络创建一个 NetworkAttachmentDefinition (net-attach-def)自定义资源(CR),以将服务 pod 附加到网络。

流程

  1. 在工作站上为裸机网络创建一个 NetworkAttachmentDefinition (net-attach-def) CR 文件,以将 ironic 服务 pod 附加到网络,如 baremetal-net-attach-def.yaml
  2. NetworkAttachmentDefinition CR 文件中,为 baremetal 网络配置 NetworkAttachmentDefinition 资源,以将 ironic 服务部署 pod 附加到网络:

    apiVersion: k8s.cni.cncf.io/v1
    kind: NetworkAttachmentDefinition
    metadata:
      name: baremetal
      namespace: openstack
    spec:
      config: |
        {
          "cniVersion": "0.3.1",
          "name": "baremetal",
          "type": "bridge",
          "master": "baremetal", 
    1
    
          "ipam": {              
    2
    
            "type": "whereabouts",
            "range": "172.17.0.0/24",
            "range_start": "172.17.0.30", 
    3
    
            "range_end": "172.17.0.70"
          }
        }
    Copy to Clipboard Toggle word wrap
    1
    与网络关联的节点接口名称,如 nncp CR 中定义的。
    2
    将 IP 分配给从范围 .30 - .70 中创建的 pod 的 whereabouts CNI IPAM 插件。
    3
    IP 地址池范围不得与 MetalLB IPAddressPool 范围和 NetConfig allocationRange 重叠。
  3. 在集群中创建 NetworkAttachmentDefinition CR:

    $ oc apply -f baremetal-net-attach-def.yaml
    Copy to Clipboard Toggle word wrap
  4. 验证 NetworkAttachmentDefinition CR 是否已创建:

    $ oc get net-attach-def -n openstack
    Copy to Clipboard Toggle word wrap

3.2.3. 为 baremetal 网络 VIP 准备 RHOCP

Red Hat OpenStack Services on OpenShift (RHOSO)服务作为 Red Hat OpenShift Container Platform (RHOCP)工作负载运行。您必须创建一个 L2Advertisement 资源,以定义如何宣布虚拟 IP (VIP)和 IPAddressPool 资源来配置哪些 IP 可用作 VIP。在第 2 层模式中,一个节点假定将服务公告给本地网络。

流程

  1. 在工作站上创建一个 IPAddressPool CR 文件,以配置哪些 IP 可以用作 VIP,例如 baremetal-ipaddresspools.yaml
  2. IPAddressPool CR 文件中,在 baremetal 网络中配置 IPAddressPool 资源,以指定 MetalLB 具有授权的 IP 地址范围:

    apiVersion: metallb.io/v1beta1
    kind: IPAddressPool
    metadata:
      name: baremetal
      namespace: metallb-system
    spec:
      addresses:
        - 172.17.0.80-172.17.0.90 
    1
    
      autoAssign: true
      avoidBuggyIPs: false
    Copy to Clipboard Toggle word wrap
    1
    IPAddressPool 范围不得与 whereabouts IPAM 范围和 NetConfig allocationRange 重叠。

    有关如何配置其他 IPAddressPool 资源参数的详情,请参考 RHOCP 网络指南中的 配置 MetalLB 地址池

  3. 在集群中创建 IPAddressPool CR:

    $ oc apply -f baremetal-ipaddresspools.yaml
    Copy to Clipboard Toggle word wrap
  4. 验证 IPAddressPool CR 是否已创建:

    $ oc describe -n metallb-system IPAddressPool
    Copy to Clipboard Toggle word wrap
  5. 在工作站上创建 L2Advertisement CR 文件,以定义如何宣布虚拟 IP (VIP),如 baremetal-l2advertisement.yaml
  6. L2Advertisement CR 文件中,配置 L2Advertisement CR 来定义哪个节点向本地网络公告 ironic 服务:

    apiVersion: metallb.io/v1beta1
    kind: L2Advertisement
    metadata:
      name: baremetal
      namespace: metallb-system
    spec:
      ipAddressPools:
      - baremetal
      interfaces:
      - baremetal 
    1
    Copy to Clipboard Toggle word wrap
    1
    声明从 VLAN 地址池请求的 VIP 的接口。

    有关如何配置其他 L2Advertisement 资源参数的详情,请参考 RHOCP 网络指南中的 使用 L2 公告和标签配置 MetalLB

  7. 在集群中创建 L2Advertisement CR:

    $ oc apply -f baremetal-l2advertisement.yaml
    Copy to Clipboard Toggle word wrap
  8. 验证 L2Advertisement CR 是否已创建:

    $ oc get -n metallb-system L2Advertisement
    NAME          IPADDRESSPOOLS    IPADDRESSPOOL SELECTORS   INTERFACES
    baremetal      ["baremetal"]                                ["enp6s0"]
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat