5.4.4. 使用 OVS-DPDK 的未置备的 Networker 节点设置 CR 示例
OpenStackDataPlaneNodeSet CR 可以使用 OVS-DPDK 和特定于节点的配置参数从未置备的 Networker 节点创建节点。创建节点集时,会置备未置备的网络节点。
如果根据以下示例创建 CR,请将 OpenStackDataPlaneNodeSet CR 的名称更新为描述集合中节点的名称。
OpenStackDataPlaneNodeSet CR 名称必须是唯一的,仅包含小写字母数字字符和 - (hyphens)或 . (periods),以字母数字字符开头和结尾,且最大长度为 53 个字符。
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneNodeSet
metadata:
name: networker-nodes
namespace: openstack
services:
- redhat
- bootstrap
- download-cache
- reboot-os
- configure-ovs-dpdk
- configure-network
- validate-network
- install-os
- configure-os
- ssh-known-hosts
- run-os
- install-certs
- ovn
- neutron-metadata
nodeTemplate:
ansible:
ansibleVars:
edpm_enable_chassis_gw: true
edpm_kernel_args: default_hugepagesz=1GB hugepagesz=1G hugepages=64 iommu=pt
intel_iommu=on tsx=off isolcpus=2-47,50-95
edpm_network_config_nmstate: true
...
edpm_network_config_template: |
...
{% set mtu_list = [ctlplane_mtu] %}
{% for network in nodeset_networks %}
{{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
{%- endfor %}
{% set min_viable_mtu = mtu_list | max %}
network_config:
- type: interface
name: nic1
use_dhcp: false
- type: sriov_pf
name: nic6
mtu: 9000
numvfs: 2
use_dhcp: false
defroute: false
nm_controlled: true
hotplug: true
promisc: false
- type: ovs_user_bridge
name: {{ neutron_physical_bridge_name }}
mtu: {{ min_viable_mtu }}
use_dhcp: false
dns_servers: {{ ctlplane_dns_nameservers }}
domain: {{ dns_search_domains }}
addresses:
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
routes: {{ ctlplane_host_routes }}
members:
- type: ovs_dpdk_port
driver: mlx5_core
name: dpdk0
mtu: {{ min_viable_mtu }}
members:
- type: sriov_vf
device: nic6
vfid: 0
- type: linux_bond
name: bond_api
use_dhcp: false
bonding_options: "mode=active-backup"
dns_servers: {{ ctlplane_dns_nameservers }}
members:
- type: sriov_vf
device: nic6
driver: mlx5_core
mtu: {{ min_viable_mtu }}
spoofcheck: false
promisc: false
vfid: 1
primary: true
- type: vlan
vlan_id: {{ lookup('vars', networks_lower['internalapi'] ~ '_vlan_id') }}
device: bond_api
addresses:
- ip_netmask: {{ lookup('vars', networks_lower['internalapi'] ~ '_ip') }}/{{ lookup('vars', networks_lower['internalapi'] ~ '_cidr') }}
- type: ovs_user_bridge
name: br-link0
use_dhcp: false
ovs_extra: "set port br-link0 tag={{ lookup('vars', networks_lower['tenant'] ~ '_vlan_id') }}"
addresses:
- ip_netmask: {{ lookup('vars', networks_lower['tenant'] ~ '_ip') }}/{{ lookup('vars', networks_lower['tenant'] ~ '_cidr')}}
members:
- type: ovs_dpdk_bond
name: dpdkbond0
mtu: 9000
rx_queue: 1
ovs_extra: "set port dpdkbond0 bond_mode=balance-slb"
members:
- type: ovs_dpdk_port
name: dpdk1
members:
- type: interface
name: nic4
- type: ovs_dpdk_port
name: dpdk2
members:
- type: interface
name: nic5
- type: ovs_user_bridge
name: br-link1
use_dhcp: false
members:
- type: ovs_dpdk_bond
name: dpdkbond1
mtu: 9000
rx_queue: 1
ovs_extra: "set port dpdkbond1 bond_mode=balance-slb"
members:
- type: ovs_dpdk_port
name: dpdk3
members:
- type: interface
name: nic2
- type: ovs_dpdk_port
name: dpdk4
members:
- type: interface
name: nic3
edpm_ovn_bridge_mappings:
- access:br-ex
- dpdkmgmt:br-link0
- dpdkdata0:br-link1
edpm_ovs_dpdk_memory_channels: 4
edpm_ovs_dpdk_pmd_core_list: 2,3,50,51
edpm_ovs_dpdk_socket_memory: 4096,4096
edpm_tuned_isolated_cores: 2-47,50-95
edpm_tuned_profile: cpu-partitioning
neutron_physical_bridge_name: br-ex
neutron_public_interface_name: eth0