20.8. Controller 节点替换后清理
完成节点替换后,您可以完成 Controller 集群。
流程
- 登录 Controller 节点。
启用 Galera 集群的 Pacemaker 管理,并在新节点上启动 Galera:
sudo pcs resource refresh galera-bundle sudo pcs resource manage galera-bundle
[tripleo-admin@overcloud-controller-0 ~]$ sudo pcs resource refresh galera-bundle [tripleo-admin@overcloud-controller-0 ~]$ sudo pcs resource manage galera-bundleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用隔离:
sudo pcs property set stonith-enabled=true
[tripleo-admin@overcloud-controller-0 ~]$ sudo pcs property set stonith-enabled=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 执行最后的状态检查来确保服务在正确运行:
sudo pcs status
[tripleo-admin@overcloud-controller-0 ~]$ sudo pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果有任何服务失败,请使用
pcs resource refresh命令来解决问题并重新启动失败的服务。退出 director:
exit
[tripleo-admin@overcloud-controller-0 ~]$ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查找
overcloudrc文件,以便您可以跟 overcloud 交互:source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 overcloud 环境中的网络代理:
(overcloud) $ openstack network agent list
(overcloud) $ openstack network agent listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果出现任何旧节点的代理,请删除它们:
(overcloud) $ for AGENT in $(openstack network agent list --host overcloud-controller-1.localdomain -c ID -f value) ; do openstack network agent delete $AGENT ; done
(overcloud) $ for AGENT in $(openstack network agent list --host overcloud-controller-1.localdomain -c ID -f value) ; do openstack network agent delete $AGENT ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如有必要,将您的路由器添加到新节点上的 3 层代理主机。使用以下示例命令,通过 UUID 2d1c1dc1-d9d4-4fa9-b2c8-f29cd1a649d4 将名为
r1的路由器添加到 L3 代理中:(overcloud) $ openstack network agent add router --l3 2d1c1dc1-d9d4-4fa9-b2c8-f29cd1a649d4 r1
(overcloud) $ openstack network agent add router --l3 2d1c1dc1-d9d4-4fa9-b2c8-f29cd1a649d4 r1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 清理 Cinder 服务。
列出 cinder 服务:
(overcloud) $ openstack volume service list
(overcloud) $ openstack volume service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 登录到控制器节点,连接到
cinder-api容器,并使用cinder-manage service remove命令删除 leftover 服务:sudo podman exec -it cinder_api cinder-manage service remove cinder-backup <host> sudo podman exec -it cinder_api cinder-manage service remove cinder-scheduler <host>
[tripleo-admin@overcloud-controller-0 ~]$ sudo podman exec -it cinder_api cinder-manage service remove cinder-backup <host> [tripleo-admin@overcloud-controller-0 ~]$ sudo podman exec -it cinder_api cinder-manage service remove cinder-scheduler <host>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
清理 RabbitMQ 集群。
- 登录 Controller 节点。
使用
podman exec命令启动 bash,并验证 RabbitMQ 集群的状态:podman exec -it rabbitmq-bundle-podman-0 bash rabbitmqctl cluster_status
[tripleo-admin@overcloud-controller-0 ~]$ podman exec -it rabbitmq-bundle-podman-0 bash [tripleo-admin@overcloud-controller-0 ~]$ rabbitmqctl cluster_statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
rabbitmqctl命令忘记替代的控制器节点:rabbitmqctl forget_cluster_node <node_name>
[tripleo-admin@overcloud-controller-0 ~]$ rabbitmqctl forget_cluster_node <node_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
如果替换了 bootstrap Controller 节点,则必须在替换过程后移除环境文件
~/templates/bootstrap-controller.yaml,或者从现有环境文件中移除pacemaker_short_bootstrap_node_name和mysql_short_bootstrap_node_name参数。此步骤可防止 director 在后续替换中尝试覆盖 Controller 节点名称。如需更多信息,请参阅 替换 bootstrap Controller 节点。 如果在 overcloud 上使用 Object Storage 服务(swift),则必须在更新 overcloud 节点后同步 swift 环。使用类似以下示例的脚本,将之前存在的 Controller 节点(本例中为 Controller 节点 0)中的 ring 文件分发到所有 Controller 节点,并重启这些节点上的 Object Storage 服务容器:
#!/bin/sh set -xe SRC="tripleo-admin@overcloud-controller-0.ctlplane" ALL="tripleo-admin@overcloud-controller-0.ctlplane tripleo-admin@overcloud-controller-1.ctlplane tripleo-admin@overcloud-controller-2.ctlplane"
#!/bin/sh set -xe SRC="tripleo-admin@overcloud-controller-0.ctlplane" ALL="tripleo-admin@overcloud-controller-0.ctlplane tripleo-admin@overcloud-controller-1.ctlplane tripleo-admin@overcloud-controller-2.ctlplane"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取当前的 ring 文件集合:
ssh "${SRC}" 'sudo tar -czvf - /var/lib/config-data/puppet-generated/swift_ringbuilder/etc/swift/{*.builder,*.ring.gz,backups/*.builder}' > swift-rings.tar.gzssh "${SRC}" 'sudo tar -czvf - /var/lib/config-data/puppet-generated/swift_ringbuilder/etc/swift/{*.builder,*.ring.gz,backups/*.builder}' > swift-rings.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将环上传到所有节点,将它们置于正确的位置,然后重新启动 swift 服务:
for DST in ${ALL}; do cat swift-rings.tar.gz | ssh "${DST}" 'sudo tar -C / -xvzf -' ssh "${DST}" 'sudo podman restart swift_copy_rings' ssh "${DST}" 'sudo systemctl restart tripleo_swift*' donefor DST in ${ALL}; do cat swift-rings.tar.gz | ssh "${DST}" 'sudo tar -C / -xvzf -' ssh "${DST}" 'sudo podman restart swift_copy_rings' ssh "${DST}" 'sudo systemctl restart tripleo_swift*' doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow