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 任务。

流程

  1. 创建一个 Containerfile 来生成容器镜像。以下示例显示了用于生成 ansibleee-runner 容器镜像的示例 ContainerfileDockerfile,其中包含合作伙伴的 OpenStackDataPlaneService 所需的其他角色和 playbook。

    FROM quay.io/openstack-k8s-operators/openstack-ansibleee-runner:latest
    COPY neutron_agent_partner_role /usr/share/ansible/roles/neutron_agent_partner_role 
    1
    
    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
  2. 构建、标记和上传容器镜像。您可以使用 podman buildbuildah build 命令来构建容器镜像。有关如何选择注册表并为认证提供 registry 的访问令牌的更多信息,请参阅 Red Hat Software Certification Workflow Guide
  3. 标记镜像,使其与对应的 RHOSO 18 基础镜像匹配。例如,当基础镜像为 18.0 时,合作伙伴的镜像也会标记为版本 18.0。
  4. 认证并发布容器镜像 :有关如何认证容器镜像的信息,请参阅 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						
1

spec:
  label: dataplane-deployment-neutron-custom-partner-service
  playbook: osp.edpm.neutron_agent_partner  					
2

  openStackAnsibleEERunnerImage: openstack-ansibleee-partnerX-runner:latest	
3
1
自定义服务的名称,在 OpenStackDataPlaneNodeSet CR 中使用,将服务添加到服务列表中。
2
作为自定义服务部署一部分运行的 playbook。它必须在自定义 ansibleee 镜像中可用。
3
自定义容器镜像,ansible-runner 执行环境用来执行 Ansible。

有关如何定义自定义服务的更多信息,请参阅 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							
1

    - 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-oslibvirt 服务之前部署 neutron-custom-partner-service。这对依赖项非常重要,因为仅按列表中的顺序来执行服务。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部