20.8. Controller 节点替换后清理


完成节点替换后,您可以完成 Controller 集群。

流程

  1. 登录 Controller 节点。
  2. 启用 Galera 集群的 Pacemaker 管理,并在新节点上启动 Galera:

    [tripleo-admin@overcloud-controller-0 ~]$ sudo pcs resource refresh galera-bundle
    [tripleo-admin@overcloud-controller-0 ~]$ sudo pcs resource manage galera-bundle
  3. 启用隔离:

    [tripleo-admin@overcloud-controller-0 ~]$ sudo pcs property set stonith-enabled=true
  4. 执行最后的状态检查来确保服务在正确运行:

    [tripleo-admin@overcloud-controller-0 ~]$ sudo pcs status
    注意

    如果有任何服务失败,请使用 pcs resource refresh 命令来解决问题并重新启动失败的服务。

  5. 退出 director:

    [tripleo-admin@overcloud-controller-0 ~]$ exit
  6. 查找 overcloudrc 文件,以便您可以跟 overcloud 交互:

    $ source ~/overcloudrc
  7. 检查 overcloud 环境中的网络代理:

    (overcloud) $ openstack network agent list
  8. 如果出现任何旧节点的代理,请删除它们:

    (overcloud) $ for AGENT in $(openstack network agent list --host overcloud-controller-1.localdomain -c ID -f value) ; do openstack network agent delete $AGENT ; done
  9. 如有必要,将您的路由器添加到新节点上的 3 层代理主机。使用以下示例命令,通过 UUID 2d1c1dc1-d9d4-4fa9-b2c8-f29cd1a649d4 将名为 r1 的路由器添加到 L3 代理中:

    (overcloud) $ openstack network agent add router --l3 2d1c1dc1-d9d4-4fa9-b2c8-f29cd1a649d4 r1
  10. 清理 cinder 服务。

    1. 列出 cinder 服务:

      (overcloud) $ openstack volume service list
    2. 登录到控制器节点,连接到 cinder-api 容器,并使用 cinder-manage service remove 命令删除左侧服务:

      [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>
  11. 清理 RabbitMQ 集群。

    1. 登录 Controller 节点。
    2. 使用 podman exec 命令启动 bash,并验证 RabbitMQ 集群的状态:

      [tripleo-admin@overcloud-controller-0 ~]$ podman exec -it rabbitmq-bundle-podman-0 bash
      [tripleo-admin@overcloud-controller-0 ~]$ rabbitmqctl cluster_status
    3. 使用 rabbitmqctl 命令忘记替换的控制器节点:

      [tripleo-admin@overcloud-controller-0 ~]$ rabbitmqctl forget_cluster_node <node_name>
  12. 如果替换了 bootstrap Controller 节点,则必须在替换过程后移除环境文件 ~/templates/bootstrap-controller.yaml,或者从现有环境文件中移除 pacemaker_short_bootstrap_node_namemysql_short_bootstrap_node_name 参数。此步骤可防止 director 在后续替换中尝试覆盖 Controller 节点名称。如需更多信息,请参阅 替换 bootstrap Controller 节点
  13. 如果您在 overcloud 上使用 Object Storage 服务(swift),则必须在更新 overcloud 节点后同步 swift 环。使用类似以下示例的脚本,将之前存在的 Controller 节点(本例中为 Controller 节点 0)的环文件分发到所有 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"
    • 获取当前环文件集合:

      ssh "${SRC}" 'sudo tar -czvf - /var/lib/config-data/puppet-generated/swift_ringbuilder/etc/swift/{*.builder,*.ring.gz,backups/*.builder}' > swift-rings.tar.gz
    • 将环上传到所有节点,将它们放入正确的位置,然后重新启动 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*'
      done
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.