第 11 章 使用 director Operator 执行 RHOSP overcloud 的次要更新


更新 openstackclient pod 后,通过运行 overcloud 和容器镜像准备部署、更新节点并运行 overcloud 更新聚合部署来更新 overcloud。在次版本更新过程中,提供了 control plane API。

Red Hat OpenStack Platform (RHOSP)环境的次要更新涉及更新 overcloud 节点上的 RPM 软件包和容器。您可能还需要更新某些服务的配置。data plane 和 control plane 在次版本更新过程中被完全支持。您必须完成以下步骤来更新 RHOSP 环境:

  1. 为次要更新准备您的 RHOSP 环境。
  2. 可选:更新 ovn-controller 容器。
  3. 更新包含 Pacemaker 服务的 Controller 节点和可组合节点。
  4. 更新 Compute 节点。
  5. 更新 Red Hat Ceph Storage 节点。
  6. 更新 Red Hat Ceph Storage 集群。
  7. 重新引导 overcloud 节点。

先决条件

11.1. 准备 director Operator 以进行次要更新

要准备 Red Hat OpenStack Platform (RHOSP)环境以使用 director Operator (OSPdO)执行次要更新,请完成以下任务:

  1. 将 RHOSP 环境锁定到 Red Hat Enterprise Linux (RHEL)发行版本。
  2. 更新 RHOSP 软件仓库。
  3. 更新容器镜像准备文件。
  4. 在 overcloud 中禁用隔离。

11.1.1. 将 RHOSP 环境锁定到 RHEL 发行版本

Red Hat OpenStack Platform (RHOSP) 17.1 支持 Red Hat Enterprise Linux (RHEL) 9.2。在执行更新前,将 overcloud 存储库锁定到 RHEL 9.2 版本,以避免将操作系统升级到较新的次版本。

流程

  1. 将 overcloud 订阅管理环境文件 rhsm.yaml 复制到 openstackclient

    $ oc cp rhsm.yaml openstackclient:/home/cloud-admin/rhsm.yaml
    Copy to Clipboard Toggle word wrap
  2. 访问 openstackclient pod 的远程 shell:

    $ oc rsh openstackclient
    Copy to Clipboard Toggle word wrap
  3. 打开 rhsm.yaml 文件,检查订阅管理配置是否包含 rhsm_release 参数。如果没有 rhsm_release 参数,请添加它并将其设置为 9.2

    parameter_defaults:
      RhsmVars:
        …​
        rhsm_username: "myusername"
        rhsm_password: "p@55w0rd!"
        rhsm_org_id: "1234567"
        rhsm_pool_ids: "1a85f9223e3d5e43013e3d6e8ff506fd"
        rhsm_method: "portal"
        rhsm_release: "9.2"
    Copy to Clipboard Toggle word wrap
  4. 保存 rhsm.yaml 文件。
  5. 创建名为 set_release.yaml 的 playbook,其中包含将操作系统版本锁定到所有节点上的 RHEL 9.2 的任务:

    - hosts: all
      gather_facts: false
      tasks:
        - name: set release to 9.2
          command: subscription-manager release --set=9.2
          become: true
    Copy to Clipboard Toggle word wrap
  6. openstackclient pod 上运行 set_release.yaml playbook:

    $ ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/set_release.yaml --limit Controller,Compute
    Copy to Clipboard Toggle word wrap

    使用 --limit 选项将内容应用到所有 RHOSP 节点。不要针对 Red Hat Ceph Storage 节点运行此 playbook,因为您可能具有这些节点的不同订阅。

    注意

    要手动将节点锁定到版本,请登录到节点并运行 subscription-manager release 命令:

    $ sudo subscription-manager release --set=9.2
    Copy to Clipboard Toggle word wrap
  7. 退出 openstackclient pod 的远程 shell:

    $ exit
    Copy to Clipboard Toggle word wrap

11.1.2. 更新 RHOSP 软件仓库

更新您的软件仓库以使用 Red Hat OpenStack Platform (RHOSP) 17.1。

流程

  1. 打开 rhsm.yaml 文件,并将 rhsm_repos 参数更新为正确的存储库版本:

    parameter_defaults:
      RhsmVars:
        rhsm_repos:
          - rhel-9-for-x86_64-baseos-eus-rpms
          - rhel-9-for-x86_64-appstream-eus-rpms
          - rhel-9-for-x86_64-highavailability-eus-rpms
          - openstack-17.1-for-rhel-9-x86_64-rpms
          - fast-datapath-for-rhel-9-x86_64-rpms
    Copy to Clipboard Toggle word wrap
  2. 保存 rhsm.yaml 文件。
  3. 访问 openstackclient pod 的远程 shell:

    $ oc rsh openstackclient
    Copy to Clipboard Toggle word wrap
  4. 创建名为 update_rhosp_repos.yaml 的 playbook,其中包含将存储库在所有节点上设置为 RHOSP 17.1 的任务:

    - hosts: all
      gather_facts: false
      tasks:
        - name: change osp repos
          command: subscription-manager repos --enable=openstack-17.1-for-rhel-9-x86_64-rpms
          become: true
    Copy to Clipboard Toggle word wrap
  5. openstackclient pod 上运行 update_rhosp_repos.yaml playbook:

    $ ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/update_rhosp_repos.yaml --limit Controller,Compute
    Copy to Clipboard Toggle word wrap

    使用 --limit 选项将内容应用到所有 RHOSP 节点。不要针对 Red Hat Ceph Storage 节点运行此 playbook,因为它们使用不同的订阅。

  6. 创建名为 update_ceph_repos.yaml 的 playbook,其中包含在所有 Red Hat Ceph Storage 节点上将存储库设置为 RHOSP 17.1 的任务:

    - hosts: all
      gather_facts: false
      tasks:
        - name: change ceph repos
          command: subscription-manager repos --enable=openstack-17.1-deployment-tools-for-rhel-9-x86_64-rpms
          become: true
    Copy to Clipboard Toggle word wrap
  7. openstackclient pod 上运行 update_ceph_repos.yaml playbook:

    $ ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/update_ceph_repos.yaml --limit CephStorage
    Copy to Clipboard Toggle word wrap

    使用 --limit 选项将内容应用到 Red Hat Ceph Storage 节点。

  8. 退出 openstackclient pod 的远程 shell:

    $ exit
    Copy to Clipboard Toggle word wrap

11.1.3. 更新容器镜像准备文件

容器准备文件是包含 ContainerImagePrepare 参数的文件。您可以使用此文件定义用于获取 overcloud 的容器镜像的规则。

在更新环境前,请检查该文件以确保获取正确的镜像版本。

流程

  1. 编辑容器准备文件。此文件的默认名称为 containers-prepare-parameter.yaml
  2. 确保每个规则集的 tag 参数设置为 17.1

    parameter_defaults:
      ContainerImagePrepare:
      - push_destination: false
        set:
          ...
          tag: '17.1'
        tag_from_label: '{version}-{release}'
    Copy to Clipboard Toggle word wrap
    注意

    如果您不想将特定的标签用于更新,如 17.117.1.1,请删除 tag 键-值对,并只指定 tag_from_labeltag_from_label 标签使用安装的 Red Hat OpenStack Platform (RHOSP)版本来确定标签的值,以作为更新过程的一部分。

  3. 保存 containers-prepare-parameter.yaml 文件。

11.1.4. 在 overcloud 中禁用隔离

在更新 overcloud 之前,请确保禁用隔离。

如果在 Controller 节点更新过程中在您的环境中部署隔离,overcloud 可能会检测到某些节点被禁用并尝试隔离操作,这可能会导致意外的结果。

如果您在 overcloud 中启用了隔离功能,则必须在更新期间临时禁用隔离。

流程

  1. 访问 openstackclient pod 的远程 shell:

    $ oc rsh openstackclient
    Copy to Clipboard Toggle word wrap
  2. 登录到 Controller 节点并运行 Pacemaker 命令禁用隔离:

    $ ssh <controller-0.ctlplane> "sudo pcs property set stonith-enabled=false"
    Copy to Clipboard Toggle word wrap
    • <controller-0.ctlplane > 替换为 Controller 节点的名称。
  3. 退出 openstackclient pod 的远程 shell:

    $ exit
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat