18.2. 升级 Controller 节点
要将所有 Controller 节点升级到 Red Hat OpenStack Platform (RHOSP) 16.2,您必须从 bootstrap Controller 节点开始升级每个 Controller 节点。
如果您的部署使用了使用 director 部署的 Red Hat Ceph Storage 集群,请按照使用 director 部署的 Ceph Storage 升级 Controller 节点 中的步骤。
在 bootstrap Controller 节点升级过程中,会创建一个新的 Pacemaker 集群,新的 RHOSP 16.2 容器会在节点上启动,而剩余的 Controller 节点仍然在 RHOSP 13 上运行。
升级 bootstrap 节点后,您必须使用 Pacemaker 服务升级每个额外节点,并确保每个节点加入使用 bootstrap 节点启动的新 Pacemaker 集群。有关更多信息,请参阅 Overcloud 节点升级工作流。
流程
Source
stackrc
文件:source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 undercloud 节点上,识别 bootstrap Controller 节点:
tripleo-ansible-inventory --list [--stack <stack_name>] |jq .overcloud_Controller.hosts[0]
$ tripleo-ansible-inventory --list [--stack <stack_name>] |jq .overcloud_Controller.hosts[0]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<stack_name
> 替换为堆栈的名称。
-
将
升级 bootstrap Controller 节点:
在 bootstrap Controller 节点上执行操作系统的 Leapp 升级:
openstack overcloud upgrade run [--stack <stack>] --tags system_upgrade --limit <bootstrap_controller_node>
$ openstack overcloud upgrade run [--stack <stack>] --tags system_upgrade --limit <bootstrap_controller_node>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<bootstrap_controller_node
> 替换为环境中 bootstrap Controller 节点的主机名,如overcloud-controller-0
。 如果您不使用默认的 overcloud 堆栈名称
overcloud
,请包含--stack
可选参数,并将 <stack&
gt; 替换为 overcloud 堆栈的名称。在 Leapp 升级过程中,bootstrap Controller 节点会被重启。
-
将
将数据库的最新版本从现有节点复制到 bootstrap 节点:
openstack overcloud external-upgrade run [--stack <stack>] --tags system_upgrade_transfer_data
$ openstack overcloud external-upgrade run [--stack <stack>] --tags system_upgrade_transfer_data
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要此命令会导致 control plane 上的中断。在 RHOSP 升级完成并且 control plane 再次激活前,您无法对 overcloud 执行任何标准操作。
在后续步骤中,在 Compute 节点上启动临时 16.2 容器,以帮助加快工作负载迁移。
openstack overcloud upgrade run --stack <stack> --playbook upgrade_steps_playbook.yaml --tags nova_hybrid_state --limit all
$ openstack overcloud upgrade run --stack <stack> --playbook upgrade_steps_playbook.yaml --tags nova_hybrid_state --limit all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在没有标签的情况下升级 overcloud:
openstack overcloud upgrade run --stack <stack> --limit <bootstrap_controller_node>
$ openstack overcloud upgrade run --stack <stack> --limit <bootstrap_controller_node>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 升级后,验证新 Pacemaker 集群是否已启动,并且 control plane 服务(如
galera
、rabbit
、haproxy
和redis
)正在运行:sudo pcs status
$ sudo pcs status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
升级下一个 Controller 节点:
验证旧集群不再运行:
sudo pcs status
$ sudo pcs status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当集群没有运行时,会显示类似如下的错误:
Error: cluster is not currently running on this node
Error: cluster is not currently running on this node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Controller 节点上执行操作系统的 Leapp 升级:
openstack overcloud upgrade run --stack <stack> --tags system_upgrade --limit <controller_node>
$ openstack overcloud upgrade run --stack <stack> --tags system_upgrade --limit <controller_node>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<controller_node
> 替换为要升级的 Controller 节点的主机名,如overcloud-controller-1
。Controller 节点作为 Leapp 升级的一部分重启。
升级 Controller 节点,将其添加到新 Pacemaker 集群中之前升级的节点:
openstack overcloud upgrade run --stack <stack> --limit <bootstrap_controller_node,controller_node_1,controller_node_n>
$ openstack overcloud upgrade run --stack <stack> --limit <bootstrap_controller_node,controller_node_1,controller_node_n>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 <
bootstrap_controller_node,controller_node_1,controller_node_n
> 替换为您目前升级的 Controller 节点列表,以及您要添加到 Pacemaker 集群的额外 Controller 节点,例如overcloud-controller-0、overcloud-controller-1、overcloud-controller-2
。
-
将 <