A.5. Overcloud 采用和准备 DCN 环境
您必须执行以下任务才能采用 overcloud:
- 每个站点都单独升级,一个站点从中央位置开始。
- 采用网络和主机调配配置将导出到 overcloud,用于中央位置堆栈。
- 定义新容器和其他兼容性配置。
采用后,您必须运行执行以下任务的升级准备脚本:
- 将 overcloud 计划更新至 OpenStack Platform 17.1
- 为升级准备节点
有关此升级过程的持续时间和影响的详情,请参阅升级 持续时间和影响。
先决条件
所有节点都处于
ACTIVE状态:openstack baremetal node list
$ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果有任何节点处于
MAINTENANCE状态,请将它们设置为ACTIVE:openstack baremetal node maintenance unset <node_uuid>
$ openstack baremetal node maintenance unset <node_uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node_uuid> 替换为节点的 UUID。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 undercloud 升级过程中导出的以下文件是否包含 overcloud 升级的预期配置。您可以在
~/overcloud-deploy目录中找到以下文件:-
tripleo-<stack>-passwords.yaml -
tripleo-<stack>-network-data.yaml -
tripleo-<stack>-virtual-ips.yaml tripleo-<stack>-baremetal-deployment.yaml注意如果在 undercloud 升级后没有生成这些文件,请联系红帽支持。
重要如果您有多单元环境,请参阅 Overcloud 采用多单元环境,例如将文件复制到每个单元堆栈的示例。
-
在主堆栈上,将 password
.yaml文件复制到~/overcloud-deploy/$(<stack>)目录。在环境中的每个堆栈中重复此步骤:cp ~/overcloud-deploy/<stack>/tripleo-<stack>-passwords.yaml ~/overcloud-deploy/<stack>/<stack>-passwords.yaml
$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-passwords.yaml ~/overcloud-deploy/<stack>/<stack>-passwords.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<stack>替换为您的堆栈的名称。
-
将
如果您要在中央位置执行准备和采用,请将
network-data.yaml文件复制到 stack 用户的主目录并部署网络。这只适用于中央位置:cp /home/stack/overcloud-deploy/central/tripleo-central-network-data.yaml ~/ openstack overcloud network provision --debug \ --output /home/stack/templates/generated-networks-deployed.yaml tripleo-central-network-data.yaml
$ cp /home/stack/overcloud-deploy/central/tripleo-central-network-data.yaml ~/ $ openstack overcloud network provision --debug \ --output /home/stack/templates/generated-networks-deployed.yaml tripleo-central-network-data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 有关更多信息,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的置备和部署 overcloud。
如果您要在中央位置执行准备和采用,请将
virtual-ips.yaml文件复制到 stack 用户的主目录,并置备网络 VIP。这只适用于中央位置:cp /home/stack/overcloud-deploy/central/tripleo-central-virtual-ips.yaml ~/ openstack overcloud network vip provision --debug \ --stack <stack> --output \ /home/stack/templates/generated-vip-deployed.yaml tripleo-central-virtual-ips.yaml
$ cp /home/stack/overcloud-deploy/central/tripleo-central-virtual-ips.yaml ~/ $ openstack overcloud network vip provision --debug \ --stack <stack> --output \ /home/stack/templates/generated-vip-deployed.yaml tripleo-central-virtual-ips.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在主堆栈上,将
baremetal-deployment.yaml文件复制到 stack 用户的主目录,并置备 overcloud 节点。在环境中的每个堆栈中重复此步骤:cp ~/overcloud-deploy/<stack>/tripleo-<stack>-baremetal-deployment.yaml ~/ openstack overcloud node provision --debug --stack <stack> \ --output /home/stack/templates/baremetal-central-deployment.yaml \ tripleo-<stack>-baremetal-deployment.yaml
$ cp ~/overcloud-deploy/<stack>/tripleo-<stack>-baremetal-deployment.yaml ~/ $ openstack overcloud node provision --debug --stack <stack> \ --output /home/stack/templates/baremetal-central-deployment.yaml \ tripleo-<stack>-baremetal-deployment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意这是 overcloud 采用的最后一步。如果您的 overcloud 采用用 10 分钟的时间完成,请联系红帽支持。
完成以下步骤以准备容器:
备份用于 undercloud 升级的
containers-prepare-parameter.yaml文件:cp containers-prepare-parameter.yaml \ containers-prepare-parameter.yaml.orig
$ cp containers-prepare-parameter.yaml \ containers-prepare-parameter.yaml.origCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在运行脚本以更新
containers-prepare-parameter.yaml文件前,定义以下环境变量:-
NAMESPACE: UBI9 镜像的命名空间。例如,NAMESPACE='"namespace":"example.redhat.com:5002",' -
EL8_NAMESPACE:UBI8 镜像的命名空间。 -
NEUTRON_DRIVER:要使用的驱动程序,并确定要使用的 OpenStack Networking (neutron)容器。设置为用于部署原始堆栈的容器类型。例如,设置为NEUTRON_DRIVER='"neutron_driver":"ovn",'以使用基于 OVN 的容器。 EL8_TAGS:UBI8 镜像的标签,如EL8_TAGS='"tag":"17.1",'。-
将
"17.1" 替换为您在内容视图中使用的标签。
-
将
EL9_TAGS:UBI9 镜像的标签,如EL9_TAGS='"tag":"17.1",'。将
"17.1" 替换为您在内容视图中使用的标签。如需有关
tag参数的更多信息,请参阅自定义 Red Hat OpenStack Platform 部署中的 容器镜像准备参数。
CONTROL_PLANE_ROLES:使用--role选项的 control plane 角色列表,如--role ControllerOpenstack, --role Database, --role Messaging, --role Networker, --role CephStorage。要查看环境中的 control plane 角色列表,请运行以下命令:export STACK=<stack> \ $ sudo awk '/tripleo_role_name/ {print "--role " $2}' \ sudo awk '/tripleo_role_name/ {print "--role " $2}' \ /var/lib/mistral/${STACK}/tripleo-ansible-inventory.yaml \ | grep -vi compute$ export STACK=<stack> \ $ sudo awk '/tripleo_role_name/ {print "--role " $2}' \ /var/lib/mistral/${STACK}/tripleo-ansible-inventory.yaml \ | grep -vi computeCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<stack>替换为您的堆栈的名称。
-
将
COMPUTE_ROLES:使用--role选项的 Compute 角色列表,如--Compute-1。要查看环境中的 Compute 角色列表,请运行以下命令:sudo awk '/tripleo_role_name/ {print "--role " $2}' \ /var/lib/mistral/${STACK}/tripleo-ansible-inventory.yaml \ | grep -i compute$ sudo awk '/tripleo_role_name/ {print "--role " $2}' \ /var/lib/mistral/${STACK}/tripleo-ansible-inventory.yaml \ | grep -i computeCopy to Clipboard Copied! Toggle word wrap Toggle overflow CEPH_OVERRIDE:如果您部署 Red Hat Ceph Storage,请指定 Red Hat Ceph Storage 5 容器镜像。例如:CEPH_OVERRIDE='"ceph_image":"rhceph-5-rhel8","ceph_tag":"<latest>",'将
<latest> 替换为最新的ceph_tag版本,如5-499。以下是
containers-prepare-parameter.yaml文件配置示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
运行以下脚本以更新
containers-prepare-parameter.yaml文件:警告如果您部署了 Red Hat Ceph Storage,请确保在执行以下命令前将
CEPH_OVERRIDE环境变量设置为正确的值。如果不这样做,会导致升级 Red Hat Ceph Storage 时出现问题。Copy to Clipboard Copied! Toggle word wrap Toggle overflow multi-rhel-container-image-prepare.py脚本支持以下参数:--output-env-file-
编写包含默认
ContainerImagePrepare值的环境文件。 --local-push-destination- 触发上传到本地 registry 的上传。
--enable-registry-login-
启用允许系统在拉取容器前尝试登录到远程 registry 的标记。当没有使用
--local-push-destination且目标系统有到远程 registry 的网络连接时,请使用此标志。不要将这个标志用于可能没有到远程 registry 的网络连接的 overcloud。 --enable-multi-rhel- 启用多rhel。
--excludes- 列出要排除的服务。
--major-override- 列出主发行版本的覆盖参数。
--minor-override- 列出次发行版本的覆盖参数。
--role- 角色列表。
--role-file-
role_data.yaml文件。
-
如果您部署了 Red Hat Ceph Storage,请打开
containers-prepare-parameter.yaml文件,以确认指定了 Red Hat Ceph Storage 5 容器镜像,且没有引用 Red Hat Ceph Storage 6 容器镜像。
如果您有 director 部署的 Red Hat Ceph Storage 部署,请创建一个名为
ceph_params.yaml的文件,并包含以下内容:parameter_defaults: CephSpecFqdn: true CephConfigPath: "/etc/ceph" CephAnsibleRepo: "rhceph-5-tools-for-rhel-8-x86_64-rpms" DeployedCeph: true
parameter_defaults: CephSpecFqdn: true CephConfigPath: "/etc/ceph" CephAnsibleRepo: "rhceph-5-tools-for-rhel-8-x86_64-rpms" DeployedCeph: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要在 RHOSP 升级完成后不要删除
ceph_params.yaml文件。此文件必须存在于 director 部署的 Red Hat Ceph Storage 环境中。此外,每次运行openstack overcloud deploy时,都必须包含ceph_params.yaml文件,例如-e ceph_params.yaml。注意如果您的 Red Hat Ceph Storage 部署包含短名称,您必须将
CephSpecFqdn参数设置为false。如果设置为true,则清单会生成一个短名称和域名,从而导致 Red Hat Ceph Storage 升级失败。在 templates 目录中创建一个名为
upgrade-environment.yaml的环境文件,并包含以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<dns_servers>替换为 DNS 服务器 IP 地址的逗号分隔列表,例如["10.0.0.36", "10.0.0.37"]。 将
<undercloud_FQDN> 替换为 undercloud 主机的完全限定域名(FQDN),例如"undercloud-0.ctlplane.redhat.local:8787"。有关您可以在环境文件中配置的升级参数的更多信息,请参阅升级 参数。
-
将
如果要在边缘位置执行准备和采用,请将
AuthCloudName参数设置为中央位置的名称:parameter_defaults: AuthCloudName: central
parameter_defaults: AuthCloudName: centralCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果部署了多个镜像服务(glance)存储,请将 copy-image 的镜像服务 API 策略设置为允许所有规则:
parameter_defaults: GlanceApiPolicies: {glance-copy_image: {key 'copy-image', value: ""}}parameter_defaults: GlanceApiPolicies: {glance-copy_image: {key 'copy-image', value: ""}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 undercloud 上,在 templates 目录中创建一个名为
overcloud_upgrade_prepare.sh的文件。- 您必须为环境中的每个堆栈创建此文件。此文件包含 overcloud 部署文件的原始内容,以及与您的环境相关的环境文件。
如果您要为 DCN 边缘位置创建
overcloud_upgrade_prepare.sh,您必须包含以下模板:包含导出的中央站点参数的环境模板。您可以在
/home/stack/overcloud-deploy/central/central-export.yaml中找到此文件。重要-
如果您将
central-export.yaml文件复制到其他目录中,如/home/stack/templates,在运行升级准备脚本时,central-export.yaml文件会在/home/stack/overcloud-deploy目录中生成。要确保central-export.yaml文件中的更新传递给其他站点,您必须将生成的central-export.yaml文件复制到您使用的目录中。 在对中央堆栈运行
overcloud 升级后,central-export.yaml文件没有正确导出。要修复该文件,您必须强制生成到中央堆栈overcloud-deploy目录中所需的数据,并导出中央堆栈:source ~/stackrc openstack overcloud upgrade run --yes --limit allovercloud,undercloud --stack openstack overcloud export --stack overcloud -f
$ source ~/stackrc $ openstack overcloud upgrade run --yes --limit allovercloud,undercloud --stack $ openstack overcloud export --stack overcloud -fCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
如果您将
-
generated-networks-deployed.yaml,生成的文件来自在中央位置运行openstack overcloud network provision命令。 generated-vip-deployed.yaml,从在中央位置运行openstack overcloud network vip provision命令的结果文件。+ 例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您有多单元环境,请参阅 Overcloud 采用多单元环境,例如,为每个单元堆栈创建
overcloud_upgrade_prepare.sh文件。-
在原始
network-environment.yaml文件中(/home/stack/templates/network/network-environment.yaml),删除所有指向OS::TripleO::*::Net::SoftwareConfig的 resource_registry 资源。 -
在
overcloud_upgrade_prepare.sh文件中,包含与您的环境相关的以下选项:
-
在原始
-
环境文件 (
upgrades-environment.yaml) 带有特定于升级的参数 (-e)。 -
包含新容器镜像位置(
-e)的环境文件(containers-prepare-parameter.yaml)。在大多数情况下,这是 undercloud 使用的环境文件。 -
环境文件(
skip_rhel_release.yaml),带有发行版本参数(-e)。 -
与您的部署相关的任何自定义配置文件(
-e)。 -
如果适用,使用
--roles-file的自定义角色(roles_data)文件。 -
对于 Ceph 部署,环境文件(
ceph_params.yaml)以及 Ceph 参数(-e)。 -
在 overcloud 采用过程中生成的文件(network
-deployed.yaml,vip-deployed.yaml,baremetal-deployment.yaml) (-e)。 -
如果适用,带有您的 IPA 服务(-e)的环境文件(
ipa-environment.yaml)。 如果您使用可组合网络,则使用
--network-file的(network_data)文件。注意不要在 overcloud 部署文件或
overcloud_upgrade_prepare.sh文件中包括network-isolation.yaml文件。网络隔离在network_data.yaml文件中定义。如果使用自定义堆栈名称,请使用
--stack选项传递名称。注意您必须在模板中包含
nova-hw-machine-type-upgrade.yaml文件,直到所有 RHEL 8 Compute 节点都升级到环境中的 RHEL 9。如果排除了此文件,则/var/log/containers/nova目录中的nova_compute.log中会出现一个错误。将所有 RHEL 8 Compute 节点升级到 RHEL 9 后,您可以从配置中删除此文件并更新堆栈。在 director 部署的 Red Hat Ceph Storage 用例中,如果您在您要升级的部署中通过 NFS 启用共享文件系统服务(manila),您必须在
overcloud_upgrade_prepare.sh脚本文件末尾指定额外的环境文件。您必须在脚本末尾添加环境文件,因为它会覆盖之前在脚本中指定的另一个环境文件:-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yaml
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在外部 Red Hat Ceph Storage 用例中,如果您在您要升级的部署中通过 NFS 启用共享文件系统服务(manila),您必须检查
overcloud_upgrade_prepare.sh脚本中的关联环境文件是否指向 tripleo-basedceph-nfs角色。如果存在,请删除以下环境文件:-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yaml
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/manila-cephfsganesha-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 并添加以下环境文件:
-e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
-e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
为环境中的每个堆栈运行升级准备脚本:
source stackrc chmod 755 /home/stack/overcloud_upgrade_prepare.sh sh /home/stack/overcloud_upgrade_prepare.sh
$ source stackrc $ chmod 755 /home/stack/overcloud_upgrade_prepare.sh $ sh /home/stack/overcloud_upgrade_prepare.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您有多单元环境,您必须为每个为每个单元堆栈创建的
overcloud_upgrade_prepare.sh文件运行脚本。例如,请参阅 Overcloud 对多单元环境采用。- 等待升级准备完成。
下载容器镜像:
openstack overcloud external-upgrade run --stack <stack> --tags container_image_prepare
$ openstack overcloud external-upgrade run --stack <stack> --tags container_image_prepareCopy to Clipboard Copied! Toggle word wrap Toggle overflow