升级 Red Hat OpenStack Platform
升级 Red Hat OpenStack Platform 环境
摘要
第 1 章 简介 复制链接链接已复制到粘贴板!
本文档提供了帮助将 Red Hat OpenStack Platform 环境升级到最新的主版本的工作流,并使用该版本的次版本进行更新。
本指南通过以下版本提供升级路径:
旧的 Overcloud 版本 | 新的 Overcloud 版本 |
---|---|
Red Hat OpenStack Platform 12 | Red Hat OpenStack Platform 13 |
1.1. 高级别工作流 复制链接链接已复制到粘贴板!
下表概述了升级过程所需的步骤:
Step | Description |
---|---|
准备您的环境 | 执行 undercloud 和 overcloud Controller 节点的数据库和配置。更新至最新的次版本。验证环境。 |
升级 undercloud | 将 undercloud 从 OpenStack Platform 12 升级到 OpenStack 平台 13。 |
获取容器镜像 | 创建一个环境文件,其中包含 OpenStack Platform 13 服务的容器镜像位置。 |
准备 overcloud | 执行相关步骤,将您的 overcloud 配置文件过渡到 OpenStack Platform 13。 |
升级 Controller 节点 | 将所有 Controller 节点同时升级到 OpenStack Platform 13。 |
升级 Compute 节点 | 测试所选 Compute 节点上的升级。如果测试成功,请升级所有 Compute 节点。 |
升级 Ceph Storage 节点 | 升级所有 Ceph Storage 节点。这包括升级到 Red Hat Ceph Storage 3 的容器化版本。 |
完成升级 | 运行 convergence 命令以刷新 overcloud 堆栈。 |
1.2. 软件仓库 复制链接链接已复制到粘贴板!
undercloud 和 overcloud 需要通过 Red Hat Content Delivery Network 或 Red Hat Satellite 6 访问红帽软件仓库。如果使用红帽卫星服务器,请将所需的存储库同步到 OpenStack Platform 环境。使用以下 CDN 频道名称列表作为指南:
名称 | 软件仓库 | 要求说明 |
---|---|---|
Red Hat Enterprise Linux 7 Server (RPMs) |
| x86_64 系统的基本操作系统仓库。 |
Red Hat Enterprise Linux 7 Server - Extras (RPMs) |
| 包括 Red Hat OpenStack Platform 的依赖软件包。 |
Red Hat Enterprise Linux 7 Server - RH Common (RPMs) |
| 包含部署和配置 Red Hat OpenStack Platform 的工具。 |
Red Hat Satellite Tools 6.3 (for RHEL 7 Server) (RPMs) x86_64 |
| 用于管理使用红帽卫星服务器 6 的主机的工具。请注意,使用较新版本的 Satellite 工具存储库可能会导致 undercloud 安装失败。 |
Red Hat Enterprise Linux High Availability (for RHEL 7 Server) (RPMs) |
| Red Hat Enterprise Linux 的高可用性工具。用于 Controller 节点的高可用性功能。 |
Red Hat OpenStack Platform 13 for RHEL 7 (RPMs) |
| Red Hat OpenStack Platform 核心软件仓库。Also contains packages for Red Hat OpenStack Platform director. |
Red Hat Ceph Storage OSD 3 for Red Hat Enterprise Linux 7 Server (RPMs) |
| (Ceph Storage 节点)Ceph Storage Object Storage 守护进程的软件仓库。在 Ceph Storage 节点上安装。 |
Red Hat Ceph Storage MON 3 for Red Hat Enterprise Linux 7 Server (RPMs) |
| (Ceph Storage 节点)Ceph Storage Monitor 守护进程的软件仓库。在使用 Ceph Storage 节点的 OpenStack 环境的 Controller 节点上安装。 |
Red Hat Ceph Storage Tools 3 for Red Hat Enterprise Linux 7 Server (RPMs) |
| 提供节点与 Ceph Storage 集群进行通信的工具。使用 Ceph Storage 集群部署 overcloud 时,或将 overcloud 与现有 Ceph Storage 集群集成时,为所有节点启用此软件仓库。 |
Red Hat OpenStack 13 Director Deployment Tools for RHEL 7 (RPMs) |
| (Ceph Storage 节点)提供一组与当前版本的 Red Hat OpenStack Platform director 兼容的部署工具。在没有有效 Red Hat OpenStack Platform 订阅的 Ceph 节点上安装。 |
Enterprise Linux for Real Time for NFV (RHEL 7 Server) (RPMs) |
|
适用于 NFV 的实时 KVM (RT-KVM) 的软件仓库。包含用于启用实时内核的软件包。应该为 RT-KVM 的所有目标 Compute 节点启用这个软件仓库。注意:您需要单独订阅 |
Red Hat OpenStack Platform 13 Extended Life Cycle Support for RHEL 7 (RPMs) |
| 包含从 2021 年 6 月 26 日开始的延长生命周期支持的更新。您需要提供此存储库的"扩展生命周期支持" (MCT3637) " (MCT3637)。 |
要在离线网络中为 Red Hat OpenStack Platform 环境配置软件仓库,请参阅红帽客户门户网站中的 "在离线环境中配置 Red Hat OpenStack Platform Director "。
1.3. 在开始升级前 复制链接链接已复制到粘贴板!
- 在执行升级前,为您的硬件应用任何固件更新。
在更新过程中,如果 Open vSwitch (OVS)主版本更改(如 2.9 到 2.11),director 会使用 .rpmsave 扩展重命名任何 user-customized 配置文件,并安装默认的 OVS 配置。
如果要保留早期的 OVS 自定义,您必须手动重新应用重命名的文件中包含的修改(例如: /etc/logrotate.d/openvswitch 中的 logrotate 配置)。这两步更新方法可避免数据平面中断,而这是由自动 RPM 软件包更新触发的。
第 2 章 准备 OpenStack Platform 升级 复制链接链接已复制到粘贴板!
此过程为您的 OpenStack Platform 环境做好全面更新准备。这涉及以下过程:
- 更新 undercloud 软件包并运行 upgrade 命令
- 如果安装了较新的内核或较新的系统软件包,请重新引导 undercloud
- 使用 overcloud upgrade 命令更新 overcloud
- 如果安装了新的内核或更新的系统软件包,重启 overcloud 节点
- 对 undercloud 和 overcloud 执行验证检查
在进行升级前,这些步骤可确保您的 OpenStack Platform 环境处于最佳状态。
2.1. 执行当前 undercloud 和 overcloud 的小更新 复制链接链接已复制到粘贴板!
升级到 OpenStack Platform 13 之前,您必须将现有环境更新至最新的次版本(本例中为版本 12)。要更新现有的 OpenStack Platform 12 环境,请参阅 "Keeping OpenStack Platform Updated"。
2.2. 重新引导控制器和可组合节点 复制链接链接已复制到粘贴板!
以下流程根据可组合角色重启控制器节点和独立节点。这会排除 Compute 节点和 Ceph Storage 节点。
流程
- 登录您要重新引导的节点。
可选:如果节点使用 Pacemaker 资源,请停止集群:
sudo pcs cluster stop
[heat-admin@overcloud-controller-0 ~]$ sudo pcs cluster stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新引导节点:
sudo reboot
[heat-admin@overcloud-controller-0 ~]$ sudo reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 稍等片刻,直到节点启动。
检查服务。例如:
如果该节点使用 Pacemaker 服务,请检查该节点是否已重新加入集群:
sudo pcs status
[heat-admin@overcloud-controller-0 ~]$ sudo pcs status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果该节点使用 Systemd 服务,请检查是否所有服务都已启用:
sudo systemctl status
[heat-admin@overcloud-controller-0 ~]$ sudo systemctl status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 对所有 Controller 和可组合节点重复这些步骤。
2.3. 重新引导 Ceph Storage (OSD) 集群 复制链接链接已复制到粘贴板!
以下流程重启 Ceph Storage (OSD)节点集群。
流程
登录 Ceph MON 或 Controller 节点,并暂时禁用 Ceph Storage 集群重新平衡:
sudo ceph osd set noout sudo ceph osd set norebalance
$ sudo ceph osd set noout $ sudo ceph osd set norebalance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 选择第一个 Ceph Storage 节点以重新引导并登录。
重新引导节点:
sudo reboot
$ sudo reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 稍等片刻,直到节点启动。
登录到 Ceph MON 或 Controller 节点并检查集群状态:
sudo ceph -s
$ sudo ceph -s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认
pgmap
报告的所有pgs
的状态是否都正常 (active+clean
)。- 从 Ceph MON 或 Controller 节点注销,重新引导下一个 Ceph Storage 节点,并检查其状态。重复此流程,直到您已重新引导所有 Ceph 存储节点。
完成之后,登录 Ceph MON 或 Controller 节点,然后重新启用集群重新平衡:
sudo ceph osd unset noout sudo ceph osd unset norebalance
$ sudo ceph osd unset noout $ sudo ceph osd unset norebalance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 执行最后的状态检查,确认集群报告
HEALTH_OK
:sudo ceph status
$ sudo ceph status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. 重新引导 Compute 节点 复制链接链接已复制到粘贴板!
重新引导 Compute 节点涉及以下工作流:
- 选择一个 Compute 节点来重新引导并禁用它,使其不置备新实例。
- 将实例迁移到另一个 Compute 节点,以最小化实例停机时间。
- 重新引导空的 Compute 节点并启用它。
流程
-
以
stack
用户的身份登录 undercloud。 要识别您要重新引导的 Compute 节点,请列出所有 Compute 节点:
source ~/stackrc
$ source ~/stackrc (undercloud) $ openstack server list --name compute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 overcloud 中,选择 Compute 节点并禁用它:
source ~/overcloudrc
$ source ~/overcloudrc (overcloud) $ openstack compute service list (overcloud) $ openstack compute service set <hostname> nova-compute --disable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出 Compute 节点上的所有实例:
(overcloud) $ openstack server list --host <hostname> --all-projects
(overcloud) $ openstack server list --host <hostname> --all-projects
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 迁移您的实例。有关迁移策略的更多信息,请参阅 Compute 节点之间迁移虚拟机。
登录到 Compute 节点并重新引导它:
sudo reboot
[heat-admin@overcloud-compute-0 ~]$ sudo reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 稍等片刻,直到节点启动。
启用 Compute 节点:
source ~/overcloudrc
$ source ~/overcloudrc (overcloud) $ openstack compute service set <hostname> nova-compute --enable
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Compute 节点是否已启用:
(overcloud) $ openstack compute service list
(overcloud) $ openstack compute service list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. 验证 undercloud 复制链接链接已复制到粘贴板!
以下是检查 undercloud 功能的一组步骤。
流程
查找 undercloud 访问详情:
source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查失败的 Systemd 服务:
(undercloud) $ sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker'
(undercloud) $ sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 undercloud 可用空间:
(undercloud) $ df -h
(undercloud) $ df -h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 "Undercloud 要求" 作为基础来确定您是否有足够的可用空间。
如果您在 undercloud 上安装了 NTP,请检查时钟是否已同步:
(undercloud) $ sudo ntpstat
(undercloud) $ sudo ntpstat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 undercloud 网络服务:
(undercloud) $ openstack network agent list
(undercloud) $ openstack network agent list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 所有代理都应
处于活动状态
,其状态应为UP
。检查 undercloud 计算服务:
(undercloud) $ openstack compute service list
(undercloud) $ openstack compute service list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 所有代理的状态都应
为启用状态
,其状态应为up
相关信息
- 以下解决方案文章演示了如何删除 OpenStack Orchestration (heat)数据库中删除的堆栈条目:https://access.redhat.com/solutions/2215131 https://access.redhat.com/solutions/2215131
2.6. 验证容器化 overcloud 复制链接链接已复制到粘贴板!
以下是检查容器化 overcloud 功能的一组步骤。
流程
查找 undercloud 访问详情:
source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查裸机节点的状态:
(undercloud) $ openstack baremetal node list
(undercloud) $ openstack baremetal node list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 所有节点均应具有有效的电源状态(
on
)和维护模式,应为false
。检查失败的 Systemd 服务:
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker' 'ceph*'" ; done
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo systemctl list-units --state=failed 'openstack*' 'neutron*' 'httpd' 'docker' 'ceph*'" ; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查失败的容器化服务:
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'exited=1' --all" ; done (undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'status=dead' -f 'status=restarting'" ; done
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'exited=1' --all" ; done (undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker ps -f 'status=dead' -f 'status=restarting'" ; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查与所有服务的 HAProxy 连接。获取
haproxy.stats
服务的 Control Plane VIP 地址和身份验证详情:(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE sudo 'grep "listen haproxy.stats" -A 6 /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg'
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE sudo 'grep "listen haproxy.stats" -A 6 /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在以下 cURL 请求中使用这些详情:
(undercloud) $ curl -s -u admin:<PASSWORD> "http://<IP ADDRESS>:1993/;csv" | egrep -vi "(frontend|backend)" | cut -d, -f 1,2,18,37,57 | column -s, -t
(undercloud) $ curl -s -u admin:<PASSWORD> "http://<IP ADDRESS>:1993/;csv" | egrep -vi "(frontend|backend)" | cut -d, -f 1,2,18,37,57 | column -s, -t
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<PASSWORD
> 和 <IP ADDRESS
> 详情替换为haproxy.stats
服务的实际详情。生成的列表显示每个节点上的 OpenStack Platform 服务及其连接状态。注意如果节点运行 Redis 服务,则只有一个节点为该服务显示
ON
状态。这是因为 Redis 是一个主动 - 被动服务,它一次仅在一个节点上运行。检查 overcloud 数据库复制健康状况:
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec clustercheck clustercheck" ; done
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec clustercheck clustercheck" ; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 RabbitMQ 集群健康状况:
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec $(ssh heat-admin@$NODE "sudo docker ps -f 'name=.*rabbitmq.*' -q") rabbitmqctl node_health_check" ; done
(undercloud) $ for NODE in $(openstack server list --name controller -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo docker exec $(ssh heat-admin@$NODE "sudo docker ps -f 'name=.*rabbitmq.*' -q") rabbitmqctl node_health_check" ; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 Pacemaker 资源健康状况:
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo pcs status"
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo pcs status"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查找:
-
所有集群节点
在线
。 -
任何集群节点上都没有
停止
资源。 -
没有
失败的
pacemaker 操作。
-
所有集群节点
检查每个 overcloud 节点上的磁盘空间:
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo df -h --output=source,fstype,avail -x overlay -x tmpfs -x devtmpfs" ; done
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo df -h --output=source,fstype,avail -x overlay -x tmpfs -x devtmpfs" ; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 overcloud Ceph Storage 集群健康状态。以下命令在 Controller 节点上运行
ceph
工具来检查集群:(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph -s"
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph -s"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 Ceph Storage OSD 是否有可用空间。以下命令在 Controller 节点上运行
ceph
工具来检查可用空间:(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph df"
(undercloud) $ NODE=$(openstack server list --name controller-0 -f value -c Networks | cut -d= -f2); ssh heat-admin@$NODE "sudo ceph df"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查时钟是否在 overcloud 节点上同步
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo ntpstat" ; done
(undercloud) $ for NODE in $(openstack server list -f value -c Networks | cut -d= -f2); do echo "=== $NODE ===" ; ssh heat-admin@$NODE "sudo ntpstat" ; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查找 overcloud 访问详情:
(undercloud) $ source ~/overcloudrc
(undercloud) $ source ~/overcloudrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 overcloud 网络服务:
(overcloud) $ openstack network agent list
(overcloud) $ openstack network agent list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 所有代理都应
处于活动状态
,其状态应为UP
。检查 overcloud 计算服务:
(overcloud) $ openstack compute service list
(overcloud) $ openstack compute service list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 所有代理的状态都应
为启用状态
,其状态应为up
检查 overcloud 卷服务:
(overcloud) $ openstack volume service list
(overcloud) $ openstack volume service list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 所有代理的状态都应
为启用状态
,其状态应为。
相关信息
- 请参阅文章 "我如何验证我的 OpenStack 环境是通过红帽推荐的配置进行部署?"。本文提供有关如何检查您的 Red Hat OpenStack Platform 环境并对红帽的建议调整配置的一些信息。
第 3 章 升级 Undercloud 复制链接链接已复制到粘贴板!
此过程将 undercloud 及其 overcloud 镜像升级到 Red Hat OpenStack Platform 13。
3.1. 将 undercloud 升级到 OpenStack Platform 13 复制链接链接已复制到粘贴板!
此流程将 undercloud 工具集和核心 Heat 模板集合升级到 OpenStack Platform 13 版本。
流程
-
以
stack
用户身份登录 director。 禁用当前的 OpenStack Platform 存储库:
sudo subscription-manager repos --disable=rhel-7-server-openstack-12-rpms
$ sudo subscription-manager repos --disable=rhel-7-server-openstack-12-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 RHEL 版本设置为 RHEL 7.9:
sudo subscription-manager release --set=7.9
$ sudo subscription-manager release --set=7.9
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用新的 OpenStack Platform 存储库:
sudo subscription-manager repos --enable=rhel-7-server-openstack-13-rpms
$ sudo subscription-manager repos --enable=rhel-7-server-openstack-13-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新启用 overcloud 基础镜像的更新:
sudo yum-config-manager --setopt=exclude= --save
$ sudo yum-config-manager --setopt=exclude= --save
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
yum
以升级 director 的主软件包:sudo yum update -y python-tripleoclient
$ sudo yum update -y python-tripleoclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来升级 undercloud:
openstack undercloud upgrade
$ openstack undercloud upgrade
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 等待 undercloud 升级过程完成。
重新引导 undercloud 以更新操作系统的内核和其他系统软件包:
sudo reboot
$ sudo reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 稍等片刻,直到节点启动。
您已将 undercloud 升级到 OpenStack Platform 13 版本。
3.2. 升级 overcloud 镜像 复制链接链接已复制到粘贴板!
您需要将当前的 overcloud 镜像替换为新版本。新镜像确保 director 可以使用最新版本的 OpenStack Platform 软件内省和置备节点。
前提条件
- 您已将 undercloud 升级到最新版本。
流程
查找 undercloud 访问详情:
source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从 stack 用户主目录(
/home/
)上的 images 目录中删除任何现有的镜像:stack
/images
rm -rf ~/images/*
$ rm -rf ~/images/*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 解压存档:
cd ~/images for i in /usr/share/rhosp-director-images/overcloud-full-latest-13.0.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-13.0.tar; do tar -xvf $i; done cd ~
$ cd ~/images $ for i in /usr/share/rhosp-director-images/overcloud-full-latest-13.0.tar /usr/share/rhosp-director-images/ironic-python-agent-latest-13.0.tar; do tar -xvf $i; done $ cd ~
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将最新的镜像导入到 director:
openstack overcloud image upload --update-existing --image-path /home/stack/images/
$ openstack overcloud image upload --update-existing --image-path /home/stack/images/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将节点配置为使用新镜像:
openstack overcloud node configure $(openstack baremetal node list -c UUID -f value)
$ openstack overcloud node configure $(openstack baremetal node list -c UUID -f value)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证新镜像是否存在:
openstack image list ls -l /httpboot
$ openstack image list $ ls -l /httpboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在部署 overcloud 节点时,确保 overcloud 镜像版本对应于对应的 heat 模板版本。例如,仅使用 OpenStack Platform 13 heat 模板的 OpenStack Platform 13 镜像。
新的 overcloud-full
镜像替换旧的 overcloud-full
镜像。如果对旧镜像进行了更改,您必须对新镜像重复更改,特别是未来要部署新节点时。
3.3. 比较上一个模板版本 复制链接链接已复制到粘贴板!
升级过程会安装与最新 overcloud 版本对应的新核心 Heat 模板。Red Hat OpenStack Platform 的存储库在 openstack-tripleo-heat-templates-compat
软件包中保留之前版本的核心模板集合。此流程演示了如何比较这些版本,以便您可以识别可能会影响 overcloud 升级的更改。
流程
安装
openstack-tripleo-heat-templates-compat
软件包:sudo yum install openstack-tripleo-heat-templates-compat
$ sudo yum install openstack-tripleo-heat-templates-compat
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会在 Heat 模板集合的
compat
/usr/share/openstack-tripleo-heat-templates/compat
)中安装前面的模板,并在上一版本后创建一个链接(pike
)。这些模板与升级的 director 向后兼容,这意味着您可以使用最新版本的 director 安装旧版本。创建核心 Heat 模板的临时副本:
cp -a /usr/share/openstack-tripleo-heat-templates /tmp/osp13
$ cp -a /usr/share/openstack-tripleo-heat-templates /tmp/osp13
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将上一个版本移到自己的目录中:
mv /tmp/osp13/compat /tmp/osp12
$ mv /tmp/osp13/compat /tmp/osp12
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对两个目录的内容执行
diff
:diff -urN /tmp/osp12 /tmp/osp13
$ diff -urN /tmp/osp12 /tmp/osp13
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这显示了核心模板从一个版本变为下一个版本。这些更改提供了 overcloud 升级过程中应该发生的情况。
3.4. undercloud Post-Upgrade Notes 复制链接链接已复制到粘贴板!
-
如果使用
堆栈
用户主目录中的本地核心模板,请确保使用 "Using Customized Core Heat Templates" 中的推荐工作流更新模板。在升级 overcloud 之前,您必须更新本地副本。
3.5. 后续步骤 复制链接链接已复制到粘贴板!
undercloud 升级已完成。现在,您可以为升级准备 overcloud。
第 4 章 配置容器镜像源 复制链接链接已复制到粘贴板!
容器化 overcloud 需要访问具有所需容器镜像的注册表。本章介绍了如何准备 registry 和 overcloud 配置以将容器镜像用于 Red Hat OpenStack Platform。
本指南提供了几个用例,用于将 overcloud 配置为使用 registry。在尝试这些用例之前,建议熟悉如何使用镜像准备命令。如需更多信息,请参阅 第 4.2 节 “容器镜像准备命令用法”。
4.1. registry 方法 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform 支持以下 registry 类型:
- 远程 Registry
-
overcloud 直接从
registry.redhat.io
中提取容器镜像。此方法是生成初始配置的最简单方法。但是,每个 overcloud 节点直接从 Red Hat Container Catalog 拉取每个镜像,这可能会导致网络拥塞和速度较慢的部署。另外,所有 overcloud 节点都需要访问互联网来访问 Red Hat Container Catalog。 - 本地 Registry
-
undercloud 使用
docker-distribution
服务作为 registry。这允许 director 同步registry.redhat.io
中的镜像,并将它们推送到docker-distribution
registry。在创建 overcloud 时,overcloud 从 undercloud 的docker-distribution
注册表中提取容器镜像。这个方法允许您在内部存储 registry,这可以加快部署并减少网络拥塞。但是,undercloud 只能充当基本 registry,为容器镜像提供有限的生命周期管理。
docker-distribution
服务与 docker
分开。Docker 用于提取并推送镜像到
注册表,不为 overcloud 提供镜像。overcloud 从 docker
-distributiondocker-distribution
注册表拉取镜像。
- Satellite Server
- 管理容器镜像的完整应用程序生命周期,并通过 Red Hat Satellite 6 服务器发布它们。overcloud 从 Satellite 服务器拉取镜像。此方法提供了用于存储、管理和部署 Red Hat OpenStack Platform 容器的企业级解决方案。
从列表中选择一个方法,再继续配置 registry 的详情。
在为多架构云构建时,不支持本地 registry 选项。
4.2. 容器镜像准备命令用法 复制链接链接已复制到粘贴板!
本节概述如何使用 openstack overcloud 容器镜像准备
命令,包括关于该命令的各种选项的概念信息。
为 Overcloud 生成容器镜像环境文件
openstack overcloud 容器镜像准备
命令的一个主要用途是创建含有 overcloud 使用的镜像列表的环境文件。您可以使用 overcloud 部署命令包括此文件,如 openstack overcloud deploy
。openstack overcloud
容器镜像准备命令将以下选项用于此功能:
--output-env-file
- 定义生成的环境文件名称。
以下片段是该文件的内容示例:
parameter_defaults: DockerAodhApiImage: registry.redhat.io/rhosp13/openstack-aodh-api:13.0-34 DockerAodhConfigImage: registry.redhat.io/rhosp13/openstack-aodh-api:13.0-34 ...
parameter_defaults:
DockerAodhApiImage: registry.redhat.io/rhosp13/openstack-aodh-api:13.0-34
DockerAodhConfigImage: registry.redhat.io/rhosp13/openstack-aodh-api:13.0-34
...
环境文件还包含设置为 undercloud registry 的 IP 地址和端口的 DockerInsecureRegistryAddress
参数。此参数将 overcloud 节点配置为在没有 SSL/TLS 认证的情况下从 undercloud registry 访问镜像。
为导入方法生成容器镜像列表
如果要将 OpenStack Platform 容器镜像导入到其他 registry 源,您可以生成镜像列表。列表语法主要用于将容器镜像导入到 undercloud 上的容器注册表,但您可以修改此列表的格式,以适应其他导入方法,如 Red Hat Satellite 6。
openstack overcloud
容器镜像准备命令将以下选项用于此功能:
--output-images-file
- 定义导入列表生成的文件名。
以下是此文件的内容示例:
container_images: - imagename: registry.redhat.io/rhosp13/openstack-aodh-api:13.0-34 - imagename: registry.redhat.io/rhosp13/openstack-aodh-evaluator:13.0-34 ...
container_images:
- imagename: registry.redhat.io/rhosp13/openstack-aodh-api:13.0-34
- imagename: registry.redhat.io/rhosp13/openstack-aodh-evaluator:13.0-34
...
为容器镜像设置命名空间
--output-env-file
和 --output-images-file
选项都需要一个命名空间来生成生成的镜像位置。openstack overcloud
容器镜像准备命令使用以下选项来设置容器镜像的源位置,以拉取:
--namespace
- 定义容器镜像的命名空间。这通常是包含目录的主机名或 IP 地址。
--prefix
- 定义在镜像名称前添加的前缀。
因此,director 使用以下格式生成镜像名称:
-
[NAMESPACE]/[PREFIX][IMAGE NAME]
设置容器镜像标签
使用 --tag
和 --tag-from-label
选项为每个容器镜像设置标签。
--tag
-
为来自源的所有镜像设置特定标签。如果您只使用这个选项,director 会使用该标签拉取所有容器镜像。但是,如果您将此选项与
--tag-from-label
结合使用,director 将--tag
用作源镜像来根据标签识别特定的版本标签。默认将--tag
选项设置为latest
。 --tag-from-label
-
使用指定容器镜像标签的值来发现并拉取每个镜像的 versioned 标签。director 会检查使用您为
--tag
设置的值标记的每个容器镜像,然后使用容器镜像标签 来构建新标签,director 从 registry 拉取。例如,如果您设置了--tag-from-label {version}-{release}
,director 会使用version
和release
标签来构造新标签。对于一个容器,版本
可能被设置为13.0
,release
可能会设置为34
,这会导致标签13.0-34
。
Red Hat Container Registry 使用特定的版本格式来标记所有 Red Hat OpenStack Platform 容器镜像。此版本格式为 {version}-{release}
,每个容器镜像都作为容器元数据中的标签存储。这个版本格式有助于从一个 {release}
更新至下一个版本。因此,在运行 openstack overcloud 容器镜像准备
命令时,必须始终使用 --tag-from-label {version}-{release}
。不要自行使用 --tag
来拉取容器镜像。例如,使用 --tag latest
本身会在执行更新时导致问题,因为 director 需要更改标签来更新容器镜像。
4.3. 用于其他服务的容器镜像 复制链接链接已复制到粘贴板!
director 仅为核心 OpenStack Platform 服务准备容器镜像。些额外的功能使用需要额外容器镜像的服务。您可以使用环境文件启用这些服务。openstack overcloud
容器镜像准备命令使用以下选项包含环境文件及其相应容器镜像:
-e
- 包括环境文件以启用额外容器镜像。
下表提供了使用容器镜像及其对应环境文件位于 /usr/share/openstack-tripleo-heat-templates
目录中的相应服务的示例列表。
Service | 环境文件 |
---|---|
Ceph Storage |
|
collectd |
|
Congress |
|
Fluentd |
|
OpenStack Bare Metal (ironic) |
|
OpenStack 数据处理(sahara) |
|
OpenStack EC2-API |
|
OpenStack Key Manager (barbican) |
|
OpenStack Load Balancing-as-a-Service (octavia) |
|
OpenStack Shared File System Storage (manila) |
注意:如需更多信息,请参阅 OpenStack 共享文件系统服务(manila)。 |
Open Virtual Network (OVN) |
|
Sensu |
|
下面几节提供了包括其他服务的示例。
Ceph Storage
如果使用 overcloud 部署 Red Hat Ceph Storage 集群,您需要包含 /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml
环境文件。此文件可以在 overcloud 中启用可组合容器化服务,而 director 需要知道这些服务需要被启用来准备其镜像。
除了此环境文件外,您还需要定义 Ceph Storage 容器位置,这与 OpenStack Platform 服务不同。使用 --set
选项设置特定于 Ceph Storage 的以下参数:
--set ceph_namespace
-
定义 Ceph Storage 容器镜像的命名空间。这个功能与
--namespace
选项类似。 --set ceph_image
-
定义 Ceph Storage 容器镜像的名称。通常,这是
rhceph-3-rhel7
。 --set ceph_tag
-
定义用于 Ceph Storage 容器镜像的标签。这个功能与
--tag
选项类似。当指定--tag-from-label
时,从该标签开始发现 versioned 标签。
以下片段是在容器镜像文件中包含 Ceph Storage 的示例:
OpenStack Bare Metal (ironic)
如果在 overcloud 中部署 OpenStack Bare Metal (ironic),您需要包含 /usr/share/openstack-tripleo-heat-templates/environments/services-docker/ironic.yaml
环境文件,以便 director 能够准备镜像。以下片段是一个如何包含此环境文件的示例:
openstack overcloud container image prepare \ ...
$ openstack overcloud container image prepare \
...
-e /usr/share/openstack-tripleo-heat-templates/environments/services-docker/ironic.yaml \
...
OpenStack 数据处理(sahara)
如果在 overcloud 中部署 OpenStack 数据处理(sahara),您需要包含 /usr/share/openstack-tripleo-heat-templates/environments/services-docker/sahara.yaml
环境文件,以便 director 能够准备镜像。以下片段是一个如何包含此环境文件的示例:
openstack overcloud container image prepare \ ...
$ openstack overcloud container image prepare \
...
-e /usr/share/openstack-tripleo-heat-templates/environments/services-docker/sahara.yaml \
...
OpenStack Neutron SR-IOV
如果在 overcloud 中部署 OpenStack Neutron SR-IOV,请包含 /usr/share/openstack-tripleo-heat-templates/environments/services-docker/neutron-sriov.yaml
环境文件,以便 director 能够准备镜像。默认 Controller 和 Compute 角色不支持 SR-IOV 服务,因此您必须使用 -r
选项包括包含 SR-IOV 服务的自定义角色文件。以下片段是一个如何包含此环境文件的示例:
openstack overcloud container image prepare \ ...
$ openstack overcloud container image prepare \
...
-r ~/custom_roles_data.yaml
-e /usr/share/openstack-tripleo-heat-templates/environments/services-docker/neutron-sriov.yaml \
...
OpenStack Load Balancing-as-a-Service (octavia)
如果在 overcloud 中部署 OpenStack Load Balancing-as-a-Service,请包含 /usr/share/openstack-tripleo-heat-templates/environments/services-docker/octavia.yaml
环境文件,以便 director 能够准备镜像。以下片段是一个如何包含此环境文件的示例:
openstack overcloud container image prepare \ ...
$ openstack overcloud container image prepare \
...
-e /usr/share/openstack-tripleo-heat-templates/environments/services-docker/octavia.yaml
\
...
有关自定义和部署环境文件的更多信息,请参阅以下资源:
- 通过 NFS 后端指南为共享文件系统服务部署更新的 环境
- 使用 NetApp Back Ends 在共享文件系统服务 的 NetApp 后端部署共享文件系统服务
- 使用共享文件系统服务的 CephFS后端部署共享文件系统服务
4.4. 使用 Red Hat registry 作为远程 registry 源 复制链接链接已复制到粘贴板!
红帽在 registry.redhat.io
上托管 overcloud 容器镜像。从远程 registry 中拉取镜像是最简单的方法,因为注册表已经配置,且所有需要是您要拉取的镜像的 URL 和命名空间。但是,在创建 overcloud 的过程中,overcloud 节点会从远程存储库拉取所有镜像,这样可将您的外部连接整合到一起。因此,不建议在生产环境中使用这个方法。对于生产环境,请改为使用以下方法之一:
- 设置本地 registry
- 在 Red Hat Satellite 6 上托管镜像
流程
要在 overcloud 部署中直接从
registry.redhat.io
拉取镜像,需要一个环境文件来指定镜像参数。运行以下命令以生成容器镜像环境文件:(undercloud) $ sudo openstack overcloud container image prepare \ --namespace=registry.redhat.io/rhosp13 \ --prefix=openstack- \ --tag-from-label {version}-{release} \ --output-env-file=/home/stack/templates/overcloud_images.yaml
(undercloud) $ sudo openstack overcloud container image prepare \ --namespace=registry.redhat.io/rhosp13 \ --prefix=openstack- \ --tag-from-label {version}-{release} \ --output-env-file=/home/stack/templates/overcloud_images.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
-e
选项包括可选服务的任何环境文件。 -
使用
-r
选项包括自定义角色文件。 -
如果使用 Ceph Storage,包括额外的参数来定义 Ceph Storage 容器镜像位置:--
set ceph_namespace ,
,--set ceph
_image--set ceph_tag
.
-
使用
修改
overcloud_images.yaml
文件,并包括下列参数以在部署期间与registry.redhat.io
进行身份验证:ContainerImageRegistryLogin: true ContainerImageRegistryCredentials: registry.redhat.io: <USERNAME>: <PASSWORD>
ContainerImageRegistryLogin: true ContainerImageRegistryCredentials: registry.redhat.io: <USERNAME>: <PASSWORD>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 &
lt;USERNAME&
gt; 和 <PASSWORD
> 替换为registry.redhat.io
的凭证。overcloud_images.yaml
文件包含 undercloud 上的镜像位置。在您的部署中包含此文件。注意在运行
openstack overcloud deploy
命令前,您必须登录远程 registry:(undercloud) $ sudo docker login registry.redhat.io
(undercloud) $ sudo docker login registry.redhat.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注册表配置已就绪。
4.5. 使用 undercloud 作为本地 registry 复制链接链接已复制到粘贴板!
您可以在 undercloud 上配置本地 registry,以存储 overcloud 容器镜像。
您可以使用 director 从 registry.redhat.io
拉取每个镜像,并将每个镜像推送到 undercloud 上运行的 docker-distribution
registry。当使用 director 创建 overcloud 时,在 overcloud 创建过程中,节点会从 undercloud docker-distribution
registry 中拉取相关镜像。
这会为您的内部网络保留容器镜像的网络流量,这并不会整合外部网络连接,并可加快部署过程。
流程
查找本地 undercloud registry 的地址。地址使用以下模式:
<REGISTRY_IP_ADDRESS>:8787
<REGISTRY_IP_ADDRESS>:8787
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 undercloud 的 IP 地址,之前使用
undercloud.conf
文件中的local_ip
参数进行设置。对于下列命令,该地址被假定为192.168.24.1:8787
。登录到
registry.redhat.io
:(undercloud) $ docker login registry.redhat.io --username $RH_USER --password $RH_PASSWD
(undercloud) $ docker login registry.redhat.io --username $RH_USER --password $RH_PASSWD
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建模板,将镜像上传到本地 registry,以及环境文件以引用这些镜像:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
-e
选项包括可选服务的任何环境文件。 -
使用
-r
选项包括自定义角色文件。 -
如果使用 Ceph Storage,包括额外的参数来定义 Ceph Storage 容器镜像位置:--
set ceph_namespace ,
,--set ceph
_image--set ceph_tag
.
-
使用
验证是否已创建以下两个文件:
-
local_registry_images.yaml
,其中包含来自远程源的容器镜像信息。使用此文件将 Red Hat Container Registry (registry.redhat.io
)中的镜像拉取到 undercloud。 -
overcloud_images.yaml
,其中包含 undercloud 上的最终镜像位置。您的部署会包含这个文件。
-
从远程 registry 拉取容器镜像并将其推送到 undercloud registry:
(undercloud) $ openstack overcloud container image upload \ --config-file /home/stack/local_registry_images.yaml \ --verbose
(undercloud) $ openstack overcloud container image upload \ --config-file /home/stack/local_registry_images.yaml \ --verbose
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 拉取所需的镜像可能需要一些时间,具体取决于您的网络和 undercloud 磁盘的速度。
注意容器镜像大约消耗 10 GB 磁盘空间。
该镜像现在存储在 undercloud 的
docker-distribution
注册表中。要查看 undercloud 的docker-distribution
registry 中的镜像列表,请运行以下命令:(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog | jq .repositories[]
(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog | jq .repositories[]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意本身中的
_catalog
资源仅显示 100 个镜像。要显示更多镜像,请使用?n=<interger&
gt; 查询字符串及_catalog
资源来显示更多镜像数量:(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog?n=150 | jq .repositories[]
(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog?n=150 | jq .repositories[]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看特定镜像的标签列表,请使用
skopeo
命令:(undercloud) $ curl -s http://192.168.24.1:8787/v2/rhosp13/openstack-keystone/tags/list | jq .tags
(undercloud) $ curl -s http://192.168.24.1:8787/v2/rhosp13/openstack-keystone/tags/list | jq .tags
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证标记的镜像,使用
skopeo
命令:(undercloud) $ skopeo inspect --tls-verify=false docker://192.168.24.1:8787/rhosp13/openstack-keystone:13.0-44
(undercloud) $ skopeo inspect --tls-verify=false docker://192.168.24.1:8787/rhosp13/openstack-keystone:13.0-44
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注册表配置已就绪。
4.6. 使用 Satellite 服务器作为 registry 复制链接链接已复制到粘贴板!
Red Hat Satellite 6 提供了注册表同步功能。通过该功能可将多个镜像提取到 Satellite 服务器中,作为应用程序生命周期的一部分加以管理。Satellite 也可以作为 registry 供其他启用容器功能的系统使用。有关管理容器镜像的更多信息,请参阅 Red Hat Satellite 6 内容管理指南中的“管理容器镜像”。
以下操作过程示例中使用了 Red Hat Satellite 6 的 hammer
命令行工具和一个名为 ACME
的示例组织。请将该组织替换为您自己 Satellite 6 中的组织。
流程
创建模板以将镜像拉取到本地 registry:
source ~/stackrc
$ source ~/stackrc (undercloud) $ openstack overcloud container image prepare \ --namespace=rhosp13 \ --prefix=openstack- \ --output-images-file /home/stack/satellite_images
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
-e
选项包括可选服务的任何环境文件。 -
使用
-r
选项包括自定义角色文件。 -
如果使用 Ceph Storage,包括额外的参数来定义 Ceph Storage 容器镜像位置:--
set ceph_namespace ,
,--set ceph
_image--set ceph_tag
.
注意此版本的
openstack overcloud 容器镜像准备命令以
registry.redhat.io
上的 registry 为目标,以生成镜像列表。它使用与openstack overcloud 容器镜像准备
命令不同的值。-
使用
-
这会利用容器镜像信息创建名为
satellite_images
的文件。您将使用此文件将容器镜像同步到卫星 6 服务器。 从
satellite_images
文件中删除特定于 YAML 的信息,并将其转换为仅包含镜像列表的平面文件。以下sed
命令完成此操作:(undercloud) $ awk -F ':' '{if (NR!=1) {gsub("[[:space:]]", ""); print $2}}' ~/satellite_images > ~/satellite_images_names
(undercloud) $ awk -F ':' '{if (NR!=1) {gsub("[[:space:]]", ""); print $2}}' ~/satellite_images > ~/satellite_images_names
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这为您提供了拉取到 Satellite 服务器的镜像列表。
-
将
satellite_images_names
文件复制到包含 Satellite 6hammer
工具的系统中。或者,根据 Hammer CLI 指南中的说明将hammer
工具安装到 undercloud 中。 运行以下
hammer
命令,在您的 Satellite 组织创建新产品(OSP13 容器
):hammer product create \ --organization "ACME" \ --name "OSP13 Containers"
$ hammer product create \ --organization "ACME" \ --name "OSP13 Containers"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该定制产品将会包含我们的镜像。
为产品添加基本容器镜像:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加
satellite_images
文件中的 overcloud 容器镜像。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 同步容器镜像:
hammer product synchronize \ --organization "ACME" \ --name "OSP13 Containers"
$ hammer product synchronize \ --organization "ACME" \ --name "OSP13 Containers"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待 Satellite 服务器完成同步。
注意根据具体配置情况,
hammer
可能会询问您的 Satellite 服务器用户名和密码。您可以使用配置文件将hammer
配置为自动登录。请参阅 Hammer CLI 指南中的 "身份验证 "部分。- 如果您的 Satellite 6 服务器使用内容视图,请创建新的内容视图版本来纳入镜像。
检查
base
镜像可用的标签:hammer docker tag list --repository "base" \ --organization "ACME" \ --product "OSP13 Containers"
$ hammer docker tag list --repository "base" \ --organization "ACME" \ --product "OSP13 Containers"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会显示 OpenStack Platform 容器镜像的标签。
返回到 undercloud,并为卫星服务器上的镜像生成环境文件。以下是生成环境文件的示例命令:
(undercloud) $ openstack overcloud container image prepare \ --namespace=satellite6.example.com:5000 \ --prefix=acme-osp13_containers- \ --tag-from-label {version}-{release} \ --output-env-file=/home/stack/templates/overcloud_images.yaml
(undercloud) $ openstack overcloud container image prepare \ --namespace=satellite6.example.com:5000 \ --prefix=acme-osp13_containers- \ --tag-from-label {version}-{release} \ --output-env-file=/home/stack/templates/overcloud_images.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此版本的
openstack overcloud 容器镜像准备命令以
Satellite 服务器为目标。它使用与上一步中使用的openstack overcloud
容器镜像准备命令不同的值。在运行这个命令时,包含以下数据:
--namespace
- Satellite 服务器上 registry 的 URL 和端口。Red Hat Satellite 上的 registry 端口是 5000。例如:--namespace=satellite6.example.com:5000
。注意如果您使用 Red Hat Satellite 版本 6.10,则不需要指定端口。使用
443
的默认端口。如需更多信息,请参阅 "如何把 RHOSP13 部署调整为 Red Hat Satellite 6.10?"。--prefix=
- 前缀基于标签的 Satellite 6 约定,它使用小写字符并用下划线替换空格。前缀根据您是否使用内容视图而不同:-
如果您使用了内容视图,则前缀的结构为
[组织]-[环境]-[内容视图]-[产品]-
。例如:acme-production-myosp13-osp13_containers-
。 -
如果不使用内容视图,则前缀的结构为
[组织]-[产品]-
。例如:acme-osp13_containers-
。
-
如果您使用了内容视图,则前缀的结构为
-
--tag-from-label {version}-{release}
- 识别每个镜像的最新标签。 -
-e
- 包含可选服务的任何环境文件。 -
-
R - 包含自定义角色文件。 --set ceph_namespace
,--set ceph_image
,--set ceph_tag
- If using Ceph Storage, 包括额外的参数来定义 Ceph Storage 容器镜像位置。请注意,ceph_image
现包含特定于 Satellite 的前缀。这个前缀与--prefix
选项的值相同。例如:--set ceph_image=acme-osp13_containers-rhceph-3-rhel7
--set ceph_image=acme-osp13_containers-rhceph-3-rhel7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这将确保 overcloud 使用 Ceph 容器镜像,它利用卫星命名约定。
-
overcloud_images.yaml
文件包含 Satellite 服务器上的镜像位置。在您的部署中包含此文件。
注册表配置已就绪。
4.7. 后续步骤 复制链接链接已复制到粘贴板!
现在,您有一个 overcloud_images.yaml
环境文件,其中包含容器镜像源列表。在将来的所有升级和部署操作中包括这个文件。
现在,您可以为升级准备 overcloud。
第 5 章 准备 Overcloud 升级 复制链接链接已复制到粘贴板!
此过程为升级过程准备 overcloud。
前提条件
- 您已将 undercloud 升级到最新版本。
5.1. 准备 Overcloud 注册详情 复制链接链接已复制到粘贴板!
您需要为 overcloud 提供最新的订阅详情,以确保 overcloud 在升级过程中使用最新的软件包。
前提条件
- 包含最新 OpenStack Platform 存储库的订阅。
- 如果使用激活密钥注册,请创建一个新的激活码,包括新的 OpenStack Platform 存储库。
流程
编辑包含注册详情的环境文件。例如:
vi ~/templates/rhel-registration/environment-rhel-registration.yaml
$ vi ~/templates/rhel-registration/environment-rhel-registration.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑以下参数值:
rhel_reg_repos
- 更新,使其包含 Red Hat OpenStack Platform 13 的新软件仓库。
rhel_reg_activation_key
- 更新激活码,以访问 Red Hat OpenStack Platform 13 软件仓库。
rhel_reg_sat_repo
- 如果使用较新的 Red Hat Satellite 6 版本,请更新包含 Satellite 6 管理工具的存储库。
- 保存环境文件。
相关信息
- 有关注册参数的更多信息,请参阅高级 Overcloud 自定义指南中的"使用 环境文件 更改 Overcloud "。
5.2. 弃用的参数 复制链接链接已复制到粘贴板!
请注意,以下参数已弃用并已被替换。
旧参数 | new Parameter |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意
如果您使用自定义 Compute 角色,若要使用特定于角色的 parameter_defaults: NovaComputeSchedulerHints: {}
在使用自定义角色时,您必须添加此配置来使用特定于角色的任何 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
对于新参数的值,请使用双引号(没有嵌套单引号),如下例所示:
带有值的旧参数 | new Parameter with Value |
---|---|
|
|
|
|
更新自定义环境文件中的这些参数。以下参数已弃用,没有等同的。
- NeutronL3HA
-
除了具有分布式虚拟路由(
NeutronEnableDVR
)的配置外,所有情况下都启用了 L3 高可用性。 - CeilometerWorkers
- Ceilometer 已被弃用,而是使用较新的组件(Gnocchi、Aod、Panko)。
- CinderNetappEseriesHostType
- 所有系列支持都已弃用。
- ControllerEnableSwiftStorage
-
应该改为使用
ControllerServices
参数。 - OpenDaylightPort
- 使用 EndpointMap 为 OpenDaylight 定义默认端口。
- OpenDaylightConnectionProtocol
- 此参数的值现在根据您是否要使用 TLS 部署 Overcloud 确定。
在 /home/stack
目录中运行以下 egrep
命令,以识别包含已弃用参数的任何环境文件:
egrep -r -w 'KeystoneNotificationDriver|controllerExtraConfig|OvercloudControlFlavor|controllerImage|NovaImage|NovaComputeExtraConfig|NovaComputeServerMetadata|NovaComputeSchedulerHints|NovaComputeIPs|SwiftStorageServerMetadata|SwiftStorageIPs|SwiftStorageImage|OvercloudSwiftStorageFlavor|NeutronDpdkCoreList|NeutronDpdkMemoryChannels|NeutronDpdkSocketMemory|NeutronDpdkDriverType|HostCpusList|NeutronDpdkCoreList|HostCpusList|NeutronL3HA|CeilometerWorkers|CinderNetappEseriesHostType|ControllerEnableSwiftStorage|OpenDaylightPort|OpenDaylightConnectionProtocol' *
$ egrep -r -w 'KeystoneNotificationDriver|controllerExtraConfig|OvercloudControlFlavor|controllerImage|NovaImage|NovaComputeExtraConfig|NovaComputeServerMetadata|NovaComputeSchedulerHints|NovaComputeIPs|SwiftStorageServerMetadata|SwiftStorageIPs|SwiftStorageImage|OvercloudSwiftStorageFlavor|NeutronDpdkCoreList|NeutronDpdkMemoryChannels|NeutronDpdkSocketMemory|NeutronDpdkDriverType|HostCpusList|NeutronDpdkCoreList|HostCpusList|NeutronL3HA|CeilometerWorkers|CinderNetappEseriesHostType|ControllerEnableSwiftStorage|OpenDaylightPort|OpenDaylightConnectionProtocol' *
如果您的 OpenStack Platform 环境仍然需要这些已弃用的参数,默认的 roles_data
文件允许使用它们。但是,如果您使用自定义 roles_data
文件,且 overcloud 仍然需要这些弃用的参数,您可以通过编辑 roles_data
文件并添加到每个角色来允许访问它们:
Controller 角色
Compute Role
对象存储角色
5.3. 弃用的 CLI 选项 复制链接链接已复制到粘贴板!
某些命令行选项已过时或已弃用,它们的功能可以通过环境文件的 parameter_defaults
部分中所包含的 Heat 模板参数实现。下表将已弃用的选项与 Heat 模板中的等效选项对应了起来。
Option | Description | Heat 模板参数 |
---|---|---|
| 扩展的 Controller 节点数量 |
|
| 扩展的 Compute 节点数量 |
|
| 扩展的 Ceph 节点数量 |
|
| 扩展的 Cinder 节点数量 |
|
| 扩展的 Swift 节点数量 |
|
| Controller 节点使用的 flavor |
|
| Compute 节点使用的 flavor |
|
| Ceph 节点使用的 flavor |
|
| Cinder 节点使用的 flavor |
|
| Swift 存储节点使用的 flavor |
|
| 定义要在 neutron 插件中配置的扁平网络。默认为 "datacentre" 以允许外部网络创建 |
|
| 每个虚拟机监控程序上创建的 Open vSwitch 网桥。默认为"br-ex"。通常,不应该更改 |
|
| 要使用的物理网桥映射逻辑。默认为将主机上的外部网桥(br-ex)映射到物理名称(datacentre)。您要将这个网络用于默认浮动网络 |
|
| 为网络节点定义网桥 br-ex 的接口 |
|
| Neutron 的租户网络类型 |
|
| Neutron 租户网络的隧道类型。要指定多个值,使用逗号分隔的字符串 |
|
| 用于租户网络分配的 GRE 隧道 ID 范围 |
|
| 用于租户网络分配的 VXLAN VNI ID 范围 |
|
| Neutron ML2 和 Open vSwitch VLAN 映射范围,以支持。默认为允许 'datacentre' 物理网络中的任何 VLAN |
|
| neutron 租户网络的机制驱动程序。默认为"openvswitch"。要指定多个值,使用逗号分隔的字符串 |
|
| 禁用隧道功能,以便利用 Neutron 使用 VLAN 网段网络或扁平网络 | 没有参数映射。 |
| overcloud 在创建过程中会执行一组部署前检查。在使用这个选项时,如果部署前检查出现任何严重错误,则会退出创建。我们推荐使用此选项,因为任何错误都有可能造成部署失败。 | 未进行参数映射 |
| 设置用于同步时间的 NTP 服务器 |
|
这些参数已从 Red Hat OpenStack Platform 中删除。建议您将 CLI 选项转换为 Heat 参数,并将其添加到环境文件中。
5.4. 可组合网络 复制链接链接已复制到粘贴板!
此版本的 Red Hat OpenStack Platform 为可组合网络引入了一项新功能。如果使用自定义 roles_data
文件,请编辑 文件,以将可组合网络添加到每个角色。例如,对于 Controller 节点:
检查默认 /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
文件,以获得更多语法示例。另外,也检查 /usr/share/openstack-tripleo-heat-templates/roles
中的示例角色片断。
下表提供了可组合网络到自定义独立角色的映射:
角色 | 需要的网络 |
---|---|
Ceph Storage Monitor |
|
Ceph Storage OSD |
|
Ceph Storage RadosGW |
|
Cinder API |
|
Compute |
|
Controller |
|
数据库 |
|
Glance |
|
Heat |
|
Horizon |
|
ironic | 无必需。将 Provisioning/Control Plane 网络用于 API。 |
Keystone |
|
Load Balancer |
|
Manila |
|
消息总线 |
|
Networker |
|
Neutron API |
|
Nova |
|
OpenDaylight |
|
Redis |
|
Sahara |
|
Swift API |
|
Swift Storage |
|
Telemetry |
|
在以前的版本中,*NetName
参数(如 InternalApiNetName
)更改了默认网络的名称。这不再被支持。使用可自定义可组合网络文件。有关更多信息,请参阅高级 Overcloud 自定义指南中的 "使用 Composable Networks "。
5.5. 为大型 Ceph 集群增加重启延迟 复制链接链接已复制到粘贴板!
在升级过程中,每个 Ceph 监控和 OSD 会按顺序停止。在成功重启同一服务前,迁移不会继续。Ansible 等待 15 秒(延迟),并检查服务启动(重试)的 5 次。如果服务没有重启,则迁移会停止,以便操作员可以干预。
根据 Ceph 集群的大小,您可能需要增加重试或延迟值。这些参数的确切名称及其默认值如下:
health_mon_check_retries: 5 health_mon_check_delay: 15 health_osd_check_retries: 5 health_osd_check_delay: 15
health_mon_check_retries: 5
health_mon_check_delay: 15
health_osd_check_retries: 5
health_osd_check_delay: 15
您可以更新这些参数的默认值。例如,要让集群检查 30 次,并在每个检查 Ceph OSD 的检查 20 秒之间等待 40 秒,并在每个检查 Ceph MON 的检查之间等待 10 秒,请使用 openstack overcloud deploy
命令传递以下参数:
5.6. 准备升级 Ceph 复制链接链接已复制到粘贴板!
OpenStack Platform 13 引入了 Red Hat Ceph Storage 3,它要求 CephMgr 服务。OpenStack Platform 13 中的默认模板提供包含 CephMgr 服务的角色。但是,如果您使用可组合角色功能来自定义角色,并且 overcloud 部署的 Ceph,您必须更新包含 CephMon 服务的角色,以包括 CephMgr 服务。
有关如何 比较模板 的示例,请参阅相关的模板版本。
如果通过自定义角色来部署超融合 overcloud,您必须完成这些说明。
流程
openstack overcloud deploy
命令可在 overcloud 部署中包含角色文件,如 roles_file.yaml
。
如果有任何 角色
文件中包含 OS::TripleO::Services::CephMon
,请将 CephMgr 服务添加到角色文件中:
OS::TripleO::Services::CephMon OS::TripleO::Services::CephMgr
OS::TripleO::Services::CephMon
OS::TripleO::Services::CephMgr
5.7. 创建节点特定的 Ceph 布局 复制链接链接已复制到粘贴板!
要使用 ceph-ansible
创建节点特定的 Ceph 布局,请执行以下操作:
5.8. 检查自定义 Puppet 参数 复制链接链接已复制到粘贴板!
如果您使用 ExtraConfig
接口自定义 Puppet 参数,Puppet 可能会在升级过程中报告重复的声明错误。这是因为 puppet 模块本身提供的接口更改。
此流程演示了如何检查环境文件中的任何自定义 ExtraConfig
hieradata 参数。
流程
选择一个环境文件,检查它是否具有
ExtraConfig
参数:grep ExtraConfig ~/templates/custom-config.yaml
$ grep ExtraConfig ~/templates/custom-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果结果在所选文件中显示任何角色(如
Controller
)的 ExtraConfig 参数,请检查该文件中的整个参数结构。ExtraConfig
如果参数包含任何具有
SECTION/parameter
语法加值
的任何 puppet Hierdata,则它可能已被一个参数替换为实际 Puppet 类的参数。例如:parameter_defaults: ExtraConfig: neutron::config::dhcp_agent_config: 'DEFAULT/dnsmasq_local_resolv': value: 'true'
parameter_defaults: ExtraConfig: neutron::config::dhcp_agent_config: 'DEFAULT/dnsmasq_local_resolv': value: 'true'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 director 的 Puppet 模块,以查看该参数现在是否存在于 Puppet 类中。例如:
grep dnsmasq_local_resolv
$ grep dnsmasq_local_resolv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果是,请更改到新接口。
以下是以语法演示更改的示例:
示例 1:
parameter_defaults: ExtraConfig: neutron::config::dhcp_agent_config: 'DEFAULT/dnsmasq_local_resolv': value: 'true'
parameter_defaults: ExtraConfig: neutron::config::dhcp_agent_config: 'DEFAULT/dnsmasq_local_resolv': value: 'true'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更改:
parameter_defaults: ExtraConfig: neutron::agents::dhcp::dnsmasq_local_resolv: true
parameter_defaults: ExtraConfig: neutron::agents::dhcp::dnsmasq_local_resolv: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 2:
parameter_defaults: ExtraConfig: ceilometer::config::ceilometer_config: 'oslo_messaging_rabbit/rabbit_qos_prefetch_count': value: '32'
parameter_defaults: ExtraConfig: ceilometer::config::ceilometer_config: 'oslo_messaging_rabbit/rabbit_qos_prefetch_count': value: '32'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更改:
parameter_defaults: ExtraConfig: oslo::messaging::rabbit::rabbit_qos_prefetch_count: '32'
parameter_defaults: ExtraConfig: oslo::messaging::rabbit::rabbit_qos_prefetch_count: '32'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9. 将网络接口模板转换为新结构 复制链接链接已复制到粘贴板!
在以前的版本中,网络接口结构使用 OS::Heat::StructuredConfig
资源来配置接口:
现在,模板使用 OS::Heat::SoftwareConfig
资源进行配置:
此配置获取存储在 $network_config
变量中的接口配置,并将它注入为 run-os-net-config.sh
脚本的一部分。
必须更新网络接口模板以使用这个新结构,并检查您的网络接口模板仍然符合 语法。不这样做可能会导致在快进升级过程中造成失败。
director 的 Heat 模板集合包含一个脚本,可帮助您将模板转换为这种新格式。此脚本位于 /usr/share/openstack-tripleo-heat-templates/tools/yaml-nic-config-2-script.py
中。例如:
/usr/share/openstack-tripleo-heat-templates/tools/yaml-nic-config-2-script.py \ --script-dir /usr/share/openstack-tripleo-heat-templates/network/scripts \ [NIC TEMPLATE] [NIC TEMPLATE] ...
$ /usr/share/openstack-tripleo-heat-templates/tools/yaml-nic-config-2-script.py \
--script-dir /usr/share/openstack-tripleo-heat-templates/network/scripts \
[NIC TEMPLATE] [NIC TEMPLATE] ...
在使用此脚本时,请确保您的模板不包含任何注释行。这在解析旧模板结构时可能会导致错误。
如需更多信息,请参阅 "网络隔离 "。
如果您在 Red Hat OpenStack Platform 12 或更早版本中为计算实例(Instance HA)启用了高可用性,并且希望执行升级到 13 或更高版本的版本,您必须首先手动禁用实例。具体步骤请参阅 禁用之前版本 中的 Instance HA。
5.10. 准备块存储服务以接收自定义配置文件 复制链接链接已复制到粘贴板!
当升级到容器化环境时,使用 CinderVolumeOptVolumes
参数添加 docker 卷挂载。这可让主机上的自定义配置文件在容器中运行的 cinder-volume 服务中可用。
例如:
parameter_defaults: CinderVolumeOptVolumes: /etc/cinder/nfs_shares1:/etc/cinder/nfs_shares1 /etc/cinder/nfs_shares2:/etc/cinder/nfs_shares2
parameter_defaults:
CinderVolumeOptVolumes:
/etc/cinder/nfs_shares1:/etc/cinder/nfs_shares1
/etc/cinder/nfs_shares2:/etc/cinder/nfs_shares2
5.11. 准备预置备节点升级 复制链接链接已复制到粘贴板!
预置备节点是在 director 管理之外创建的节点。使用预置备节点的 overcloud 需要升级前的一些额外步骤。
前提条件
- overcloud 使用预置备节点。
流程
运行以下命令,在
OVERCLOUD_HOSTS
环境变量中保存节点 IP 地址列表:source ~/stackrc export OVERCLOUD_HOSTS=$(openstack server list -f value -c Networks | cut -d "=" -f 2 | tr '\n' ' ')
$ source ~/stackrc $ export OVERCLOUD_HOSTS=$(openstack server list -f value -c Networks | cut -d "=" -f 2 | tr '\n' ' ')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下脚本:
/usr/share/openstack-tripleo-heat-templates/deployed-server/scripts/enable-ssh-admin.sh
$ /usr/share/openstack-tripleo-heat-templates/deployed-server/scripts/enable-ssh-admin.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 继续升级。
-
在将
openstack overcloud upgrade run
命令与预置备节点搭配使用时,请包含--ssh-user tripleo-admin
参数。 升级 Compute 或 Object Storage 节点时,使用以下方法:
-
将
-U
选项与upgrade-non-controller.sh
脚本一起使用,并指定stack
用户。这是因为预置备节点的默认用户是stack
,而不是heat-admin
。 使用带
--upgrade
选项的节点 IP 地址。这是因为节点没有使用 director 的 Compute (nova)和 Bare Metal (ironic)服务来管理,且没有节点名称。例如:
upgrade-non-controller.sh -U stack --upgrade 192.168.24.100
$ upgrade-non-controller.sh -U stack --upgrade 192.168.24.100
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
将
-
在将
相关信息
- 有关预置备节点的更多信息,请参阅 Director 安装和使用 指南中的 "使用预置备节点配置基本 Overcloud "。
5.12. 后续步骤 复制链接链接已复制到粘贴板!
overcloud 准备阶段已完成。现在,您可以使用 第 6 章 升级 Overcloud 中的步骤将 overcloud 升级到 13。
第 6 章 升级 Overcloud 复制链接链接已复制到粘贴板!
此过程升级 overcloud。
前提条件
- 您已将 undercloud 升级到最新版本。
- 您已准备好了自定义环境文件,以适应升级中的更改。
6.1. 运行 overcloud 升级准备 复制链接链接已复制到粘贴板!
升级需要运行 openstack overcloud upgrade prepare
命令,该命令执行以下任务:
- 将 overcloud 计划更新为 OpenStack Platform 13
- 为升级准备节点
流程
Source
stackrc
文件:source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行升级准备命令:
openstack overcloud upgrade prepare \ --templates \ -e /home/stack/templates/overcloud_images.yaml \ -e <ENVIRONMENT FILE>
$ openstack overcloud upgrade prepare \ --templates \ -e /home/stack/templates/overcloud_images.yaml \ -e <ENVIRONMENT FILE>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 包含以下与您的环境相关的选项:
-
自定义配置环境文件(
-e
) -
带有新容器镜像位置的环境文件(
-e
)。请注意,升级命令可能会显示有关使用--container-registry-file
的警告。您可以忽略这个警告,因为这个选项已弃用,而是使用-e
作为容器镜像环境文件。 -
如果适用,您的自定义角色(
roles_data
)文件使用--roles-file
。 -
如果适用,可使用
--networks-file
的可组合网络(network_data
)文件。
-
自定义配置环境文件(
- 等待升级准备完成。
6.2. 升级 Controller 和自定义角色节点 复制链接链接已复制到粘贴板!
使用以下步骤将所有 Controller 节点、分割 Controller 服务和其他自定义节点升级到 OpenStack Platform 13。此过程涉及运行 openstack overcloud upgrade run
命令,并包括 --nodes
选项,将操作限制为仅所选节点:
openstack overcloud upgrade run --nodes [ROLE]
$ openstack overcloud upgrade run --nodes [ROLE]
将 [ROLE]
替换为角色的名称或以逗号分隔的角色列表。
如果您的 overcloud 使用单体 Controller 节点,请针对 Controller
角色运行此命令。
如果您的 overcloud 使用分割 Controller 服务,请按照以下顺序升级节点角色:
-
所有使用 Pacemaker 的角色。例如:
控制器OpenStack
、数据库
、消息传递
和遥测
。 -
Networker
节点 - 任何其他自定义角色
不要 升级以下节点:
- 基于 DPDK 或 Hyper-Converged Infratructure (HCI) Compute 节点的 Compute 节点
-
CephStorage
节点
您将在以后的阶段升级这些节点。
流程
Source
stackrc
文件:source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用单体 Controller 节点,请针对
Controller
角色运行 upgrade 命令:openstack overcloud upgrade run --nodes Controller
$ openstack overcloud upgrade run --nodes Controller
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果您使用自定义堆栈名称,请使用
--stack
选项传递名称。
-
如果您使用自定义堆栈名称,请使用
如果使用 Controller 服务在多个角色间分割:
使用 Pacemaker 服务为角色运行 upgrade 命令:
openstack overcloud upgrade run --nodes ControllerOpenStack openstack overcloud upgrade run --nodes Database openstack overcloud upgrade run --nodes Messaging openstack overcloud upgrade run --nodes Telemetry
$ openstack overcloud upgrade run --nodes ControllerOpenStack $ openstack overcloud upgrade run --nodes Database $ openstack overcloud upgrade run --nodes Messaging $ openstack overcloud upgrade run --nodes Telemetry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果您使用自定义堆栈名称,请使用
--stack
选项传递名称。
-
如果您使用自定义堆栈名称,请使用
对
Networker
角色运行 upgrade 命令:openstack overcloud upgrade run --nodes Networker
$ openstack overcloud upgrade run --nodes Networker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果您使用自定义堆栈名称,请使用
--stack
选项传递名称。
-
如果您使用自定义堆栈名称,请使用
对剩余的自定义角色运行 upgrade 命令,但
Compute
或CephStorage
角色除外:openstack overcloud upgrade run --nodes ObjectStorage
$ openstack overcloud upgrade run --nodes ObjectStorage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果您使用自定义堆栈名称,请使用
--stack
选项传递名称。
-
如果您使用自定义堆栈名称,请使用
6.3. 升级所有 Compute 节点 复制链接链接已复制到粘贴板!
- 重要的
- 如果您使用超融合部署,请参阅 第 6.5 节 “升级超融合节点” 进行升级。
- 如果您使用混合超融合部署,请参阅 第 6.6 节 “升级混合超融合节点” 进行升级。
此过程会将所有剩余的 Compute 节点升级到 OpenStack Platform 13。此过程涉及运行 openstack overcloud upgrade run
命令,并包括 --nodes Compute
选项,以限制仅向 Compute 节点限制操作。
流程
Source
stackrc
文件:source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 upgrade 命令:
openstack overcloud upgrade run --nodes Compute
$ openstack overcloud upgrade run --nodes Compute
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果您使用的是自定义堆栈名称,请使用
--stack
选项传递名称。 -
如果您使用的是自定义 Compute 角色,请确保使用
--nodes
选项包含角色名称。
-
如果您使用的是自定义堆栈名称,请使用
- 等待 Compute 节点升级完成。
6.4. 升级所有 Ceph Storage 节点 复制链接链接已复制到粘贴板!
- 重要的
- 如果您使用超融合部署,请参阅 第 6.5 节 “升级超融合节点” 进行升级。
- 如果您使用混合超融合部署,请参阅 第 6.6 节 “升级混合超融合节点” 进行升级。
此过程升级 Ceph Storage 节点。进程涉及:
-
运行
openstack overcloud upgrade run
命令并包括--nodes CephStorage
选项,以限制仅对 Ceph Storage 节点的操作。 -
运行
openstack overcloud ceph-upgrade run
命令以对容器化 Red Hat Ceph Storage 3 集群执行升级。
流程
Source
stackrc
文件:source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 upgrade 命令:
openstack overcloud upgrade run --nodes CephStorage
$ openstack overcloud upgrade run --nodes CephStorage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
如果使用自定义堆栈名称,请使用
--stack
选项传递名称。
-
如果使用自定义堆栈名称,请使用
- 等待节点升级完成。
运行 Ceph Storage upgrade 命令。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 包含以下与您的环境相关的选项:
自定义配置环境文件(
-e
)。例如:-
容器镜像位置(
overcloud_images.yaml
)的环境文件。请注意,升级命令可能会显示有关使用--container-registry-file
的警告。您可以忽略这个警告,因为这个选项已弃用,而是使用-e
作为容器镜像环境文件。 - Ceph Storage 节点的相关环境文件。
- 任何与您环境相关的额外环境文件。
-
容器镜像位置(
-
如果使用自定义堆栈名称,请使用
--stack
选项传递名称。 -
如果适用,您的自定义角色(
roles_data
)文件使用--roles-file
。 -
如果适用,可使用
--networks-file
的可组合网络(network_data
)文件。
- 等待 Ceph Storage 节点升级完成。
6.5. 升级超融合节点 复制链接链接已复制到粘贴板!
如果您只使用来自 ComputeHCI 角色的超融合节点,且没有使用专用计算节点或专用 Ceph 节点,请完成以下步骤来升级节点:
流程
查找 stackrc 文件:
source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 upgrade 命令:
openstack overcloud upgrade run --roles ComputeHCI
$ openstack overcloud upgrade run --roles ComputeHCI
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您使用自定义堆栈名称,请使用
--stack
选项将名称传递给 upgrade 命令。运行 Ceph Storage upgrade 命令。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 包含以下与您的环境相关的选项:
自定义配置环境文件(
-e
)。例如:-
容器镜像位置(
overcloud_images.yaml
)的环境文件。请注意,升级命令可能会显示有关使用--container-registry-file
的警告。您可以忽略这个警告,因为这个选项已弃用,而是使用-e
作为容器镜像环境文件。 - Ceph Storage 节点的相关环境文件。
-
容器镜像位置(
-
如果使用自定义堆栈名称,请使用
--stack
选项传递名称。 -
如果适用,您的自定义角色(
roles_data
)文件使用--roles-file
。 -
如果适用,可使用
--networks-file
的可组合网络(network_data
)文件。
- 等待 Ceph Storage 节点升级完成。
6.6. 升级混合超融合节点 复制链接链接已复制到粘贴板!
如果您在 ComputeHCI 角色等超融合节点外还使用专用计算节点或专用 ceph 节点,请完成以下步骤来升级节点:
流程
查找 stackrc 文件:
source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Compute 节点运行 upgrade 命令:
openstack overcloud upgrade run --roles Compute
$ openstack overcloud upgrade run --roles Compute If using a custom stack name, pass the name with the --stack option.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 等待节点升级完成。
为 ComputeHCI 节点运行 upgrade 命令:
openstack overcloud upgrade run --roles ComputeHCI
$ openstack overcloud upgrade run --roles ComputeHCI If using a custom stack name, pass the name with the --stack option.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 等待节点升级完成。
为 Ceph Storage 节点运行 upgrade 命令:
openstack overcloud upgrade run --roles CephStorage
$ openstack overcloud upgrade run --roles CephStorage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 等待 Ceph Storage 节点升级完成。
运行 Ceph Storage upgrade 命令。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 包含以下与您的环境相关的选项:
自定义配置环境文件(
-e
)。例如:-
容器镜像位置(
overcloud_images.yaml
)的环境文件。请注意,升级命令可能会显示有关使用--container-registry-file
的警告。您可以忽略这个警告,因为这个选项已弃用,而是使用-e
作为容器镜像环境文件。 - Ceph Storage 节点的相关环境文件。
- 任何与您环境相关的额外环境文件。
-
容器镜像位置(
-
如果使用自定义堆栈名称,请使用
--stack
选项传递名称。 -
如果适用,您的自定义角色(
roles_data
)文件使用--roles-file
。 -
如果适用,可使用
--networks-file
的可组合网络(network_data
)文件。
- 等待 Ceph Storage 节点升级完成。
6.7. 模拟升级 复制链接链接已复制到粘贴板!
升级需要最后一步来更新 overcloud 堆栈。这可确保堆栈的资源结构与 OpenStack Platform 13 的常规部署保持一致,并允许您在以后执行标准 openstack overcloud deploy
功能。
流程
Source
stackrc
文件:source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行升级最终化命令:
openstack overcloud upgrade converge \ --templates \ -e <ENVIRONMENT FILE>
$ openstack overcloud upgrade converge \ --templates \ -e <ENVIRONMENT FILE>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 包含以下与您的环境相关的选项:
-
自定义配置环境文件(
-e
)。 -
如果使用自定义堆栈名称,请使用
--stack
选项传递名称。 -
如果适用,您的自定义角色(
roles_data
)文件使用--roles-file
。 -
如果适用,可使用
--networks-file
的可组合网络(network_data
)文件。
-
自定义配置环境文件(
- 等待升级最终完成。
第 7 章 执行 Post Upgrade steps 复制链接链接已复制到粘贴板!
这个过程会在完成主升级过程后执行最后的步骤。
前提条件
- 您已完成了 overcloud 升级到最新的主版本。
7.1. Overcloud 升级后的一般注意事项 复制链接链接已复制到粘贴板!
以下几项是 overcloud 升级后的一般注意事项:
-
如有必要,检查 overcloud 节点上生成的配置文件。升级的软件包可能已安装了
.rpmnew
文件,对应于每个服务的升级版本。 Compute 节点可能会报告使用
neutron-openvswitch-agent
失败。如果发生了这种情况,登录到每个 Compute 节点并重启该服务。例如:sudo docker restart neutron_ovs_agent
$ sudo docker restart neutron_ovs_agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在某些情况下,在重新引导 Controller 节点后
corosync
服务可能无法在 IPv6 环境中启动。这是因为在 Controller 节点配置静态 IPv6 地址之前启动 Corosync。在这些情况下,在 Controller 节点上手动重启 Corosync:sudo systemctl restart corosync
$ sudo systemctl restart corosync
Copy to Clipboard Copied! Toggle word wrap Toggle overflow