19.2. 使用外部 Ceph 部署升级 Controller 节点
如果要使用外部 Ceph 部署升级,则必须完成此步骤。
要将所有 Controller 节点升级到 OpenStack Platform 16.2,您必须升级从 bootstrap Controller 节点开始的每个 Controller 节点。
在 bootstrap Controller 节点升级过程中,会创建一个新的 Pacemaker 集群,并在该节点上启动新的 Red Hat OpenStack 16.2 容器,剩余的 Controller 节点仍然在 Red Hat OpenStack 13 上运行。
升级 bootstrap 节点后,您必须使用 Pacemaker 服务升级每个额外节点,并确保每个节点加入使用 bootstrap 节点启动的新 Pacemaker 集群。有关更多信息,请参阅 Overcloud 节点升级工作流。
在本例中,控制器节点使用默认的 overcloud-controller-NODEID
约定。这包括以下三个控制器节点:
-
overcloud-controller-0
-
overcloud-controller-1
-
overcloud-controller-2
在适用的情况下,用自己的节点名称替换这些值。
流程
Source
stackrc
文件:$ source ~/stackrc
通过在 undercloud 节点上运行以下命令来识别 bootstrap Controller 节点:
$ tripleo-ansible-inventory --list [--stack <stack_name>] |jq .overcloud_Controller.hosts[0]
-
可选:将
<stack_name
> 替换为堆栈的名称。如果未指定,则默认值为overcloud
。
-
可选:将
升级 bootstrap Controller 节点:
使用
system_upgrade
标签运行升级命令:$ openstack overcloud upgrade run [--stack <stack_name>] --tags system_upgrade --limit overcloud-controller-0
这个命令执行以下操作:
- 对操作系统执行 Leapp 升级。
作为 Leapp 升级的一部分执行重启。
重要下一个命令会导致 control plane 中断。在接下来的几个步骤中,您无法对 overcloud 执行任何标准操作。
使用
system_upgrade_transfer_data
标签运行外部升级命令:$ openstack overcloud external-upgrade run [--stack <stack_name>] --tags system_upgrade_transfer_data
此命令将现有节点中数据库的最新版本复制到 bootstrap 节点。
使用
nova_hybrid_state
标签运行升级命令,仅运行upgrade_steps_playbook.yaml
playbook:$ openstack overcloud upgrade run [--stack <stack_name>] --playbook upgrade_steps_playbook.yaml --tags nova_hybrid_state --limit all
此命令在 Compute 节点上启动临时 16.2 容器,以帮助在升级 Compute 节点时协助工作负载迁移。
在没有标签的情况下运行升级命令:
$ openstack overcloud upgrade run [--stack <stack_name>] --limit overcloud-controller-0
此命令执行 Red Hat OpenStack Platform 升级。
重要当此命令完成后,control plane 变为活跃的。您可以对 overcloud 执行标准操作。
在升级后,验证新 Pacemaker 集群是否启动,并且 control plane 服务(如 galera、rabbit、haproxy 和 redis)是否正在运行:
$ sudo pcs status
升级下一个 Controller 节点:
验证旧集群不再运行:
$ sudo pcs status
当集群没有运行时,会显示类似如下的错误:
Error: cluster is not currently running on this node
在下一个 Controller 节点上使用
system_upgrade
标签运行升级命令:$ openstack overcloud upgrade run [--stack <stack_name>] --tags system_upgrade --limit overcloud-controller-1
这个命令执行以下操作:
- 对操作系统执行 Leapp 升级。
- 作为 Leapp 升级的一部分执行重启。
在没有标签的情况下运行升级命令:
$ openstack overcloud upgrade run [--stack <stack_name>] --limit overcloud-controller-0,overcloud-controller-1
此命令执行 Red Hat OpenStack Platform 升级。除了此节点外,将之前升级的 bootstrap 节点包括在
--limit
选项中。
升级最终的 Controller 节点:
验证旧集群不再运行:
$ sudo pcs status
当集群没有运行时,会显示类似如下的错误:
Error: cluster is not currently running on this node
使用
system_upgrade
标签运行升级命令:$ openstack overcloud upgrade run [--stack <stack_name>] --tags system_upgrade --limit overcloud-controller-2
这个命令执行以下操作:
- 对操作系统执行 Leapp 升级。
- 作为 Leapp 升级的一部分执行重启。
在没有标签的情况下运行升级命令:
$ openstack overcloud upgrade run [--stack <stack_name>] --limit overcloud-controller-0,overcloud-controller-1,overcloud-controller-2
此命令执行 Red Hat OpenStack Platform 升级。在
--limit
选项中包含所有 Controller 节点。