7.4. 为分布式区创建 OpenStackDataPlaneNodeSet CR
为部署中的每个区定义预置备数据平面节点的 OpenStackDataPlaneNodeSet 自定义资源(CR)。您可以根据部署需要定义多个节点设置。每个节点只能包含在一个 OpenStackDataPlaneNodeSet CR 中。您可以使用 nodeTemplate 字段配置通用属性,以应用到 OpenStackDataPlaneNodeSet CR 中的所有节点,以及节点特定属性的 nodes 字段。特定于节点的配置覆盖来自 nodeTemplate 的继承值。以下流程为 Zone 1 创建节点集。重复上述步骤,为每个区创建 Compute 节点和 Networker 节点所需的节点集。
流程
在工作站上创建一个文件,为 Zone 1 设置的节点定义
OpenStackDataPlaneNodeSetCR,如compute_node_set_zone1.yaml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加要为此节点集合执行的服务列表:
为一组 Compute 节点指定以下服务,将
nova服务替换为您为节点集合创建的自定义服务:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为一组 Networker 节点指定以下服务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将数据平面连接到 control plane 网络:
spec: ... networkAttachments: - ctlplane
spec: ... networkAttachments: - ctlplaneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 指定此集合中的节点是预置备:
preProvisioned: true
preProvisioned: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加您创建的 SSH 密钥 secret,以便 Ansible 连接到 data plane 节点:
nodeTemplate: ansibleSSHPrivateKeySecret: <secret-key>nodeTemplate: ansibleSSHPrivateKeySecret: <secret-key>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<secret-key> 替换为您在创建 data plane secret 中设置的此节点的 SSH 密钥SecretCR 的名称,如dataplane-ansible-ssh-private-key-secret。
-
将
如果要创建一组 Compute 节点,请启用 Compute 服务对 Red Hat Ceph Storage secret 的访问:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意Networker 节点不需要访问 Red Hat Ceph Storage secret。
指定管理网络:
nodeTemplate: ... managementNetwork: ctlplanenodeTemplate: ... managementNetwork: ctlplaneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 指定用于提供用户名和密码的
SecretCR,以注册节点的操作系统并启用存储库。以下示例演示了如何将节点注册到 Red Hat Content Delivery Network (CDN)。有关如何在 Red Hat Satellite 6.13 中注册节点的详情,请参阅管理主机。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 2
- 自定义一组节点的 Ansible 变量。有关可以使用的 Ansible 变量的列表,请参阅 https://openstack-k8s-operators.github.io/edpm-ansible/。有关红帽客户门户网站注册命令的完整列表,请参阅 https://access.redhat.com/solutions/253273。有关如何登录到
registry.redhat.io的详情,请参考 https://access.redhat.com/RegistryAuthentication#creating-registry-service-accounts-6。
配置 OVN BGP 代理用来与数据平面上的 FRRounting (FRR)通信的网络,以及与 BGP peer 进行身份验证的密码:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您要创建一组 Networker 节点,请启用
edpm_enable_chassis_gw字段:ansible: ... ansibleVars: ... edpm_enable_chassis_gw: trueansible: ... ansibleVars: ... edpm_enable_chassis_gw: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加要应用到节点的网络配置模板:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用使用 BGP 时不需要的验证:
edpm_nodes_validation_validate_controllers_icmp: false edpm_nodes_validation_validate_gateway_icmp: falseedpm_nodes_validation_validate_controllers_icmp: false edpm_nodes_validation_validate_gateway_icmp: falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 OVN BGP 代理配置为不公开租户网络:
edpm_ovn_bgp_agent_expose_tenant_networks: false
edpm_ovn_bgp_agent_expose_tenant_networks: falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
bgpmainnet而不是本地租户网络将 OVN 配置为通过 BGP 建立隧道:edpm_ovn_encap_ip: '{{ lookup(''vars'', ''bgpmainnet_ip'') }}edpm_ovn_encap_ip: '{{ lookup(''vars'', ''bgpmainnet_ip'') }}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在此节点集中定义每个节点:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意-
在
nodes部分中定义的节点可以配置nodeTemplate部分中配置的同一 Ansible 变量。其中,为特定节点和nodeTemplate部分配置了 Ansible 变量,则特定于节点的值会覆盖nodeTemplate部分中的值。 -
您不需要为节点复制所有
nodeTemplateAnsible 变量,以覆盖默认值并设置一些特定于节点的值。您只需要配置您要为节点覆盖的 Ansible 变量。 -
许多
ansibleVars在名称中包含edpm,它代表 "External Data Plane Management"。
-
在
- 保存定义文件。
为 Zone 1 创建节点集:
oc create --save-config -f compute_node_set_zone1.yaml -n openstack
$ oc create --save-config -f compute_node_set_zone1.yaml -n openstackCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过确认状态为
SetupReady来验证资源是否已创建:oc wait openstackdataplanenodeset compute-node-set-zone1 --for condition=SetupReady --timeout=10m
$ oc wait openstackdataplanenodeset compute-node-set-zone1 --for condition=SetupReady --timeout=10mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当状态为
SetupReady时,命令会返回一个condition met信息,否则会返回超时错误。验证是否为节点集合创建了
Secret资源:oc get secret | grep openstack-data-plane
$ oc get secret | grep openstack-data-plane compute-node-set-zone1 Opaque 1 3m50sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证是否已创建服务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow