第 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 环境:
- 为次要更新准备您的 RHOSP 环境。
-
可选:更新
ovn-controller容器。 - 更新包含 Pacemaker 服务的 Controller 节点和可组合节点。
- 更新 Compute 节点。
- 更新 Red Hat Ceph Storage 节点。
- 更新 Red Hat Ceph Storage 集群。
- 重新引导 overcloud 节点。
先决条件
- 您有 RHOSP 部署的备份。如需更多信息,请参阅 备份和恢复 director Operator 部署 overcloud。
11.1. 准备 director Operator 以进行次要更新 复制链接链接已复制到粘贴板!
要准备 Red Hat OpenStack Platform (RHOSP)环境以使用 director Operator (OSPdO)执行次要更新,请完成以下任务:
- 将 RHOSP 环境锁定到 Red Hat Enterprise Linux (RHEL)发行版本。
- 更新 RHOSP 软件仓库。
- 更新容器镜像准备文件。
- 在 overcloud 中禁用隔离。
11.1.1. 将 RHOSP 环境锁定到 RHEL 发行版本 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform (RHOSP) 17.1 支持 Red Hat Enterprise Linux (RHEL) 9.2。在执行更新前,将 overcloud 存储库锁定到 RHEL 9.2 版本,以避免将操作系统升级到较新的次版本。
流程
将 overcloud 订阅管理环境文件
rhsm.yaml复制到openstackclient:oc cp rhsm.yaml openstackclient:/home/cloud-admin/rhsm.yaml
$ oc cp rhsm.yaml openstackclient:/home/cloud-admin/rhsm.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 访问
openstackclientpod 的远程 shell:oc rsh openstackclient
$ oc rsh openstackclientCopy to Clipboard Copied! Toggle word wrap Toggle overflow 打开
rhsm.yaml文件,检查订阅管理配置是否包含rhsm_release参数。如果没有rhsm_release参数,请添加它并将其设置为9.2:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
rhsm.yaml文件。 创建名为
set_release.yaml的 playbook,其中包含将操作系统版本锁定到所有节点上的 RHEL 9.2 的任务:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
openstackclientpod 上运行set_release.yamlplaybook:ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/set_release.yaml --limit Controller,Compute
$ ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/set_release.yaml --limit Controller,ComputeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
--limit选项将内容应用到所有 RHOSP 节点。不要针对 Red Hat Ceph Storage 节点运行此 playbook,因为您可能具有这些节点的不同订阅。注意要手动将节点锁定到版本,请登录到节点并运行
subscription-manager release命令:sudo subscription-manager release --set=9.2
$ sudo subscription-manager release --set=9.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 退出
openstackclientpod 的远程 shell:exit
$ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.1.2. 更新 RHOSP 软件仓库 复制链接链接已复制到粘贴板!
更新您的软件仓库以使用 Red Hat OpenStack Platform (RHOSP) 17.1。
流程
打开
rhsm.yaml文件,并将rhsm_repos参数更新为正确的存储库版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
rhsm.yaml文件。 访问
openstackclientpod 的远程 shell:oc rsh openstackclient
$ oc rsh openstackclientCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
update_rhosp_repos.yaml的 playbook,其中包含将存储库在所有节点上设置为RHOSP 17.1的任务:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
openstackclientpod 上运行update_rhosp_repos.yamlplaybook:ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/update_rhosp_repos.yaml --limit Controller,Compute
$ ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/update_rhosp_repos.yaml --limit Controller,ComputeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
--limit选项将内容应用到所有 RHOSP 节点。不要针对 Red Hat Ceph Storage 节点运行此 playbook,因为它们使用不同的订阅。创建名为
update_ceph_repos.yaml的 playbook,其中包含在所有 Red Hat Ceph Storage 节点上将存储库设置为RHOSP 17.1的任务:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
openstackclientpod 上运行update_ceph_repos.yamlplaybook:ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/update_ceph_repos.yaml --limit CephStorage
$ ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory /home/cloud-admin/update_ceph_repos.yaml --limit CephStorageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
--limit选项将内容应用到 Red Hat Ceph Storage 节点。退出
openstackclientpod 的远程 shell:exit
$ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.1.3. 更新容器镜像准备文件 复制链接链接已复制到粘贴板!
容器准备文件是包含 ContainerImagePrepare 参数的文件。您可以使用此文件定义用于获取 overcloud 的容器镜像的规则。
在更新环境前,请检查该文件以确保获取正确的镜像版本。
流程
-
编辑容器准备文件。此文件的默认名称为
containers-prepare-parameter.yaml。 确保每个规则集的
tag参数设置为17.1:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您不想将特定的标签用于更新,如
17.1或17.1.1,请删除tag键-值对,并只指定tag_from_label。tag_from_label标签使用安装的 Red Hat OpenStack Platform (RHOSP)版本来确定标签的值,以作为更新过程的一部分。-
保存
containers-prepare-parameter.yaml文件。
11.1.4. 在 overcloud 中禁用隔离 复制链接链接已复制到粘贴板!
在更新 overcloud 之前,请确保禁用隔离。
如果在 Controller 节点更新过程中在您的环境中部署隔离,overcloud 可能会检测到某些节点被禁用并尝试隔离操作,这可能会导致意外的结果。
如果您在 overcloud 中启用了隔离功能,则必须在更新期间临时禁用隔离。
流程
访问
openstackclientpod 的远程 shell:oc rsh openstackclient
$ oc rsh openstackclientCopy to Clipboard Copied! Toggle word wrap Toggle overflow 登录到 Controller 节点并运行 Pacemaker 命令禁用隔离:
ssh <controller-0.ctlplane> "sudo pcs property set stonith-enabled=false"
$ ssh <controller-0.ctlplane> "sudo pcs property set stonith-enabled=false"Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<controller-0.ctlplane> 替换为 Controller 节点的名称。
-
将
退出
openstackclientpod 的远程 shell:exit
$ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow