3.2. 部署负载均衡服务


要在 OpenShift (RHOSO)负载均衡服务(octavia)上部署 Red Hat OpenStack Services,您必须配置 OVN 控制器为提供商网络创建一个 NIC 映射,并将其添加到控制负载均衡器(amphorae)的每个负载均衡服务的 networkAttachments 属性中。

先决条件

  • 在工作站上安装了 oc 命令行工具。
  • 以具有 cluster-admin 权限的用户身份登录到可访问 RHOSO 控制平面的工作站。

流程

  1. 使用 Skopeo 工具,获取 amphora 镜像版本。在后续步骤中,您将需要 SHA 格式的镜像版本:

    $ podman login registry.redhat.io
    
    $ sudo dnf install -y skopeo
    
    $ skopeo inspect docker://registry.redhat.io/rhoso/\
    octavia-amphora-image-rhel9:$(oc get openstackversion \
    -o jsonpath='{.items[0].status.deployedVersion}' | \
    awk -F '-' '{print $1}') --format '{{.Name}}@{{.Digest}}'
  2. 打开 OpenStackControlPlane CR 文件,并通过添加以下服务配置来启用负载均衡服务(octavia):

    apiVersion: core.openstack.org/v1beta1
    kind: OpenStackControlPlane
    metadata:
      name: openstack-control-plane
      namespace: openstack
      spec:
    ...
        octavia:
          enabled: true
          template:
            octaviaHousekeeping:
              networkAttachments:
                - octavia
            octaviaHealthManager:
              networkAttachments:
                - octavia
            octaviaWorker:
              networkAttachments:
                - octavia
    ...
  3. 使用在上一步中获取的 amphora 镜像版本,使用 octavia.template.amphoraImageContainerImage 参数将 amphora 镜像添加到镜像服务(glance):

    Example
    ...
        octavia:
          enabled: true
          template:
            octaviaHousekeeping:
              networkAttachments:
                - octavia
            octaviaHealthManager:
              networkAttachments:
                - octavia
            octaviaWorker:
              networkAttachments:
                - octavia
            amphoraImageContainerImage: registry.redhat.io/rhoso/\
            octavia-amphora-image-rhel9@sha256:312cd5e8ea9fe261c1929aefececbeb22afe5e433ae76ef0860d98e561db21c9
    ...
  4. 可选: 要启用流恢复,请执行以下步骤。

    如需更多信息,请参阅使用 流恢复启用 TaskFlow 中断

    1. 通过添加 schema 名称、 octavia-redis: 和副本数,在 Redis 中创建 octavia-redis 数据库 :1:

      apiVersion: core.openstack.org/v1beta1
      kind: OpenStackControlPlane
      metadata:
        name: openstack-control-plane
        namespace: openstack
        spec:
      ...
          redis:
            enabled: true
            templates:
              octavia-redis:
                replicas: 1
      ...
    2. 通过添加行 redis ServiceName: octavia-redis 来启用 octavia-redis 数据库:

      apiVersion: core.openstack.org/v1beta1
      kind: OpenStackControlPlane
      metadata:
        name: openstack-control-plane
        namespace: openstack
        spec:
      ...
          octavia:
            enabled: true
            template:
              databaseInstance: <Galera_CR>
              redisServiceName: octavia-redis
              octaviaHousekeeping:
                networkAttachments:
                  - octavia
              octaviaHealthManager:
                networkAttachments:
                  - octavia
              octaviaWorker:
                networkAttachments:
                  - octavia
      ...
  5. 找到 ovn 的服务配置,并在 模板 下添加以下配置:

    ...
      ovn:
        template:
          ovnController:
            networkAttachment: tenant
            nicMappings:
              octavia: octbr
    • networkAttachment - 注意 OVN networkAttachment 属性和 octavia networkAttachments 属性之间的字符区别。name 租户 是一个示例值。
    • nicMappings - 该值必须是 octavia: octbr
  6. 使用负载均衡服务所需的值更新 OpenStackControlPlane 自定义资源。

    Example
    $ oc apply -f openstack_control_plane.yaml -n openstack

验证

  1. 等待 RHOCP 创建负载平衡服务资源。运行以下命令来检查状态:

    $ oc wait octavia octavia --for condition=Ready
    输出示例

    您应该看到类似如下的输出:

    octavia.octavia.openstack.org/octavia condition met
  2. 确认负载均衡服务 pod 正在运行:

    $ oc get pods | grep octavia
    输出示例

    您应该看到类似如下的输出:

    octavia-api-78b56bb844-ngjhc                  2/2     Running     0          12s
    octavia-healthmanager-f6hpx                   1/1     Running     0          14s
    octavia-housekeeping-knwpf                    1/1     Running     0          10s
    octavia-redis-redis-0                         2/2     Running     0          20s
    octavia-rsyslog-4nkv8                         1/1     Running     0          23s
    octavia-worker-l5hs4                          1/1     Running     0          26s
  3. 从您的工作站访问 OpenStackClient pod 的远程 shell:

    $ oc rsh -n openstack openstackclient
  4. 确认存在网络 octavia-provider-netlb-mgmt-net

    $ openstack network list -f yaml
    输出示例
    - ID: 2e4fc309-546b-4ac8-9eae-aa8d70a27a9b
      Name: octavia-provider-net
      Subnets:
      - eea45073-6e56-47fd-9153-12f7f49bc115
    - ID: 77881d3f-04b0-46cb-931f-d54003cce9f0
      Name: lb-mgmt-net
      Subnets:
      - e4ab96af-8077-4971-baa4-e0d40a16f55a

    网络 octavia-provider-net 是外部提供商网络,仅限于 RHOSO control plane。lb-mgmt-net 网络将负载均衡服务连接到 amphora 实例。

  5. 退出 openstackclient pod:

    $ exit
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部