搜索

第 3 章 使用 director Operator 创建网络

download PDF

要在 OpenShift Virtualization worker 节点上创建网络和桥接,并将虚拟机(VM)连接到这些网络,您可以定义 OpenStackNetConfig 自定义资源(CR)并指定 overcloud 网络的所有子网。您必须为 overcloud 创建一个 control plane 网络。您还可以选择创建额外网络来为可组合网络实施网络隔离。

3.1. 使用 OpenStackNetConfig CRD 创建 overcloud 网络

您必须使用 OpenStackNetConfig CRD 为 overcloud 定义至少一个 control plane 网络。您还可以选择定义 VLAN 网络,以便为可组合网络创建网络隔离,如 InternalAPIStorageExternal。每个网络定义都必须包含 IP 地址分配,以及 OpenStackNetAttachment CRD 的映射信息。OpenShift Virtualization 使用网络定义将任何虚拟机(VM)附加到 control plane 和 VLAN 网络。

提示

使用以下命令查看 OpenStackNetConfig CRD 定义和规格模式:

$ oc describe crd openstacknetconfig

$ oc explain openstacknetconfig.spec

流程

  1. 在工作站上创建一个名为 openstacknetconfig.yaml 的文件。
  2. 将以下配置添加到 openstacknetconfig.yaml 以创建 OpenStackNetConfig 自定义资源(CR):

    apiVersion: osp-director.openstack.org/v1beta1
    kind: OpenStackNetConfig
    metadata:
      name: openstacknetconfig
  3. 为您的网络所需的网桥配置网络附加定义。例如,将以下配置添加到 openstacknetconfig.yaml 中,以创建 RHOSP 网桥网络附加定义 br-osp,并将 nodeNetworkConfigurationPolicy 选项设置为创建 Linux 网桥:

    apiVersion: osp-director.openstack.org/v1beta1
    kind: OpenStackNetConfig
    metadata:
      name: openstacknetconfig
    spec:
      attachConfigurations:
        br-osp: 1
          nodeNetworkConfigurationPolicy:
            nodeSelector:
              node-role.kubernetes.io/worker: ""
            desiredState:
              interfaces:
              - bridge:
                  options:
                    stp:
                      enabled: false
                  port:
                  - name: enp6s0 2
                description: Linux bridge with enp6s0 as a port
                name: br-osp 3
                state: up
                type: linux-bridge
                mtu: 1500 4
      # optional DnsServers list
      dnsServers:
      - 192.168.25.1
      # optional DnsSearchDomains list
      dnsSearchDomains:
      - osptest.test.metalkube.org
      - some.other.domain
      # DomainName of the OSP environment
      domainName: osptest.test.metalkube.org
    1
    br-osp 的网络附加定义。
    2
    在每个主机上要附加到的 NIC / 以太网设备。
    3
    接口名称。
    4
    单个网络数据包中传输的最大数据量。
  4. 可选: 要将 Jumbo Frames 用于网桥,请将网桥接口配置为使用 Jumbo Frames 并更新网桥的 mtu 值:

    apiVersion: osp-director.openstack.org/v1beta1
    kind: OpenStackNetConfig
    metadata:
      name: openstacknetconfig
    spec:
      attachConfigurations:
        br-osp:
          nodeNetworkConfigurationPolicy:
            nodeSelector:
              node-role.kubernetes.io/worker: ""
            desiredState:
              interfaces:
              - bridge:
                  options:
                    stp:
                      enabled: false
                  port:
                  - name: enp6s0
                description: Linux bridge with enp6s0 as a port
                name: br-osp
                state: up
                type: linux-bridge
                mtu: 9000 1
              - name: enp6s0 2
                description: Configuring enp6s0 on workers
                type: ethernet
                state: up
                mtu: 9000
      ...
    1
    使用 Jumbo Frames 更新单个网络数据包中传输的最大数据量。
    2
    将网桥接口配置为使用 Jumbo Frames。
  5. 定义每个 overcloud 网络。以下示例为 InternalAPI 流量创建一个 control plane 网络和一个隔离的网络:

    spec:
      ...
      networks:
      - name: Control 1
        nameLower: ctlplane 2
        subnets: 3
        - name: ctlplane 4
          ipv4: 5
            allocationEnd: 172.22.0.250
            allocationStart: 172.22.0.100
            cidr: 172.22.0.0/24
            gateway: 172.22.0.1
          attachConfiguration: br-osp 6
      - name: InternalApi 7
        nameLower: internal_api
        mtu: 1350
        subnets:
        - name: internal_api
          attachConfiguration: br-osp
          vlan: 20 8
          ipv4:
            allocationEnd: 172.17.0.250
            allocationStart: 172.17.0.10
            cidr: 172.17.0.0/24
      ...
    1
    网络的名称,例如 Control
    2
    网络名称的小写版本,例如 ctlplane
    3
    子网规格。
    4
    子网的名称,如 ctlplane
    5
    带有 allocationStart,allocationEnd,cidr,gateway, 和带有 destinationnexthop 的路由列表的 IPv4 子网详情。
    6
    将网络连接到的网络附加定义。在本例中,RHOSP 网桥 br-osp 连接到每个 worker 上的 NIC。
    7
    可组合网络的网络定义。要使用默认的 RHOSP 网络,您必须为每个网络创建一个 OpenStackNetConfig 资源。有关默认 RHOSP 网络的信息,请参阅 默认 Red Hat OpenStack Platform 网络。要使用不同的网络,您必须创建一个自定义 network_data.yaml 文件。有关创建自定义 network_data.yaml 文件的详情,请参考 配置 overcloud 网络
    8
    网络 VLAN。有关默认 RHOSP 网络的信息,请参阅 默认 Red Hat OpenStack Platform 网络。有关使用 OpenStackNetConfig CRD 的虚拟机桥接的更多信息,请参阅使用 OpenStackNetConfig CRD 了解虚拟机桥接
  6. 可选:为特定节点上的网络保留静态 IP 地址:

    spec:
      ...
      reservations:
        controller-0:
          ipReservations:
            ctlplane: 172.22.0.120
        compute-0:
          ipReservations:
            ctlplane: 172.22.0.140
            internal_api: 172.17.0.40
            storage: 172.18.0.40
            tenant: 172.20.0.40
    注意

    保留优先于任何自动生成的 IP 地址。

  7. 保存 openstacknetconfig.yaml 定义文件。
  8. 创建 overcloud 网络:

    $ oc create -f osnetconfig.yaml -n openstack
  9. 要验证 overcloud 网络是否已创建,请查看 overcloud 网络的资源:

    $ oc get openstacknetconfig/openstacknetconfig
  10. 查看 OpenStackNetConfig API 和子资源:

    $ oc get openstacknetconfig/openstacknetconfig -n openstack
    $ oc get openstacknetattachment -n openstack
    $ oc get openstacknet -n openstack

    如果您看到错误,请检查底层 network-attach-definition 和节点网络配置策略:

    $ oc get network-attachment-definitions -n openstack
    $ oc get nncp

3.1.1. 默认 Red Hat OpenStack Platform 网络

NetworkVLANCIDR分配

外部

10

10.0.0.0/24

10.0.0.10 - 10.0.0.250

InternalApi

20

172.17.0.0/24

172.17.0.10 - 172.17.0.250

存储

30

172.18.0.0/24

172.18.0.10 - 172.18.0.250

StorageMgmt

40

172.19.0.0/24

172.19.0.10 - 172.19.250

租户

50

172.20.0.0/24

172.20.0.10 - 172.20.0.250

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.