第 3 章 使用 director Operator 创建网络
要在 OpenShift Virtualization worker 节点上创建网络和桥接,并将虚拟机(VM)连接到这些网络,您可以定义 OpenStackNetConfig 自定义资源(CR)并指定 overcloud 网络的所有子网。您必须为 overcloud 创建一个 control plane 网络。您还可以选择创建额外网络来为可组合网络实施网络隔离。
3.1. 使用 OpenStackNetConfig CRD 创建 overcloud 网络 复制链接链接已复制到粘贴板!
您必须使用 OpenStackNetConfig CRD 为 overcloud 定义至少一个 control plane 网络。您还可以选择定义 VLAN 网络,以便为可组合网络创建网络隔离,如 InternalAPI、Storage 和 External。每个网络定义都必须包含 IP 地址分配,以及 OpenStackNetAttachment CRD 的映射信息。OpenShift Virtualization 使用网络定义将任何虚拟机(VM)附加到 control plane 和 VLAN 网络。
使用以下命令查看 OpenStackNetConfig CRD 定义和规格模式:
$ oc describe crd openstacknetconfig
$ oc explain openstacknetconfig.spec
流程
-
在工作站上创建一个名为
openstacknetconfig.yaml的文件。 将以下配置添加到
openstacknetconfig.yaml以创建OpenStackNetConfig自定义资源(CR):apiVersion: osp-director.openstack.org/v1beta1 kind: OpenStackNetConfig metadata: name: openstacknetconfig为您的网络所需的网桥配置网络附加定义。例如,将以下配置添加到
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: enp6s02 description: Linux bridge with enp6s0 as a port name: br-osp3 state: up type: linux-bridge mtu: 15004 # 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可选: 要将 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: 90001 - name: enp6s02 description: Configuring enp6s0 on workers type: ethernet state: up mtu: 9000 ...定义每个 overcloud 网络。以下示例为
InternalAPI流量创建一个 control plane 网络和一个隔离的网络:spec: ... networks: - name: Control1 nameLower: ctlplane2 subnets:3 - name: ctlplane4 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-osp6 - name: InternalApi7 nameLower: internal_api mtu: 1350 subnets: - name: internal_api attachConfiguration: br-osp vlan: 208 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, 和带有destination和nexthop的路由列表的 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 网络。有关使用
OpenStackNetConfigCRD 的虚拟机桥接的更多信息,请参阅使用 OpenStackNetConfig CRD 了解虚拟机桥接。
可选:为特定节点上的网络保留静态 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 地址。
-
保存
openstacknetconfig.yaml定义文件。 创建 overcloud 网络:
$ oc create -f osnetconfig.yaml -n openstack要验证 overcloud 网络是否已创建,请查看 overcloud 网络的资源:
$ oc get openstacknetconfig/openstacknetconfig查看
OpenStackNetConfigAPI 和子资源:$ 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 网络 复制链接链接已复制到粘贴板!
| Network | VLAN | CIDR | 分配 |
|---|---|---|---|
| 外部 | 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 |