3.4. 在 EDPM 节点上部署网络驱动程序代理
如果您的网络解决方案需要在 External DataPlane Nodes (EDPM)上运行,您可以使用自定义 OpenStackDataPlaneService 自定义资源(CR)将代理添加到 OpenStackDataPlaneNodeSet CR 上。如果您的网络解决方案需要使用 neutron-server 在 Red Hat OpenShift Container Platform (RHOCP)节点上运行的特定代理,您可以使用 operator-sdk 来添加自定义 Kubernetes operator。确保提供未与 OpenShift (RHOSO) openstack-operator 上 Red Hat OpenStack Services 集成的特定自定义资源定义(CRD)以用于新操作器。
3.4.1. 构建合作伙伴 ansible-runner 镜像 复制链接链接已复制到粘贴板!
您可以构建合作伙伴 ansible-runner 镜像,以便简化安装和配置网络代理所需的 Ansible 任务。
流程
创建一个
Containerfile来生成容器镜像。以下示例显示了用于生成ansibleee-runner容器镜像的示例Containerfile或Dockerfile,其中包含合作伙伴的OpenStackDataPlaneService所需的其他角色和 playbook。FROM quay.io/openstack-k8s-operators/openstack-ansibleee-runner:latest COPY neutron_agent_partner_role /usr/share/ansible/roles/neutron_agent_partner_role1 COPY playbooks/neutron_agent_partner.yaml /usr/share/ansible/collections/ansible_collections/osp/edpm/playbooks/2 - 1
- 将合作伙伴的角色添加到容器镜像。
- 2
- 添加 playbook,以运行合作伙伴的角色到容器镜像。此步骤是可选的。您可以将 playbook 内容直接传递给
OpenStackDataPlaneService文件中的服务。如需更多信息,请参阅 在 OpenShift 部署中自定义 Red Hat OpenStack Services 中的自定义数据平面。https://docs.redhat.com/en/documentation/red_hat_openstack_services_on_openshift/18.0/html/customizing_the_red_hat_openstack_services_on_openshift_deployment/assembly_customizing-the-data-plane
-
构建、标记和上传容器镜像。您可以使用
podman build或buildah build命令来构建容器镜像。有关如何选择注册表并为认证提供 registry 的访问令牌的更多信息,请参阅 Red Hat Software Certification Workflow Guide。 - 标记镜像,使其与对应的 RHOSO 18 基础镜像匹配。例如,当基础镜像为 18.0 时,合作伙伴的镜像也会标记为版本 18.0。
- 认证并发布容器镜像 :有关如何认证容器镜像的信息,请参阅 Red Hat Enterprise Linux 软件认证策略指南 和 Red Hat Software Certification Workflow Guide。您可以在 红帽生态系统目录 中发布容器镜像。
3.4.2. 在 EDPM 节点上部署合作伙伴解决方案 复制链接链接已复制到粘贴板!
以下示例显示了用于部署合作伙伴解决方案的自定义服务定义(CRD):
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneService
metadata:
name: neutron-custom-partner-service
spec:
label: dataplane-deployment-neutron-custom-partner-service
playbook: osp.edpm.neutron_agent_partner
openStackAnsibleEERunnerImage: openstack-ansibleee-partnerX-runner:latest
有关如何定义自定义服务的更多信息,请参阅 在 OpenShift 部署上自定义 Red Hat OpenStack Services 中的自定义 数据平面。
以下示例演示了如何在 EDPM NodeSet 中启用自定义服务。要在 EDPM 节点上部署自定义服务,您必须将其包含在 OpenStackDataPlaneNodeSet CR 中的服务列表中:
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneNodeSet
metadata:
name: openstack-edpm
spec:
services:
- download-cache
- bootstrap
- configure-network
- validate-network
- install-os
- configure-os
- run-os
- neutron-custom-partner-service
- libvirt
- nova
nodes:
edpm-compute:
ansible:
ansibleHost: 172.20.12.67
ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret
ansibleUser: cloud-admin
ansibleVars:
ansible_ssh_transfer_method: scp
ctlplane_ip: 172.20.12.67
external_ip: 172.20.12.76
fqdn_internalapi: edpm-compute-1.example.com
internalapi_ip: 172.17.0.101
storage_ip: 172.18.0.101
tenant_ip: 172.10.0.101
hostName: edpm-compute-0
networkConfig: {}
nova:
cellName: cell1
deploy: true
novaInstance: nova
- 1
- 服务的名称与之前创建的服务匹配。按照相对于其他服务的执行顺序添加服务名称。本例演示了在
run-os和libvirt服务之前部署neutron-custom-partner-service。这对依赖项非常重要,因为仅按列表中的顺序来执行服务。