11.9. Controller ノード置き換え後のクリーンアップ
ノードの交換が完了したら、コントローラークラスターを完成させることができます。
手順
- Controller ノードにログインします。
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フェンシングの有効化:
[tripleo-admin@overcloud-controller-0 ~]$ sudo pcs property set stonith-enabled=true最終のステータスチェックを実行して、サービスが正しく実行されていることを確認します。
[tripleo-admin@overcloud-controller-0 ~]$ sudo pcs status注記エラーが発生したサービスがある場合には、
pcs resource refreshコマンドを使用して問題を解決し、そのサービスを再起動します。director を終了します。
[tripleo-admin@overcloud-controller-0 ~]$ exitオーバークラウドと対話できるようにするために、source コマンドで
overcloudrcファイルを読み込みます。$ source ~/overcloudrcオーバークラウド環境のネットワークエージェントを確認します。
(overcloud) $ openstack network agent list古いノードにエージェントが表示される場合には、そのエージェントを削除します。
(overcloud) $ for AGENT in $(openstack network agent list --host overcloud-controller-1.localdomain -c ID -f value) ; do openstack network agent delete $AGENT ; done必要に応じて、新規ノード上の L3 エージェントホストにルーターを追加します。以下のコマンド例では、UUID に 2d1c1dc1-d9d4-4fa9-b2c8-f29cd1a649d4 を使用して L3 エージェントに
r1という名称のルーターを追加しています。(overcloud) $ openstack network agent add router --l3 2d1c1dc1-d9d4-4fa9-b2c8-f29cd1a649d4 r1cinder サービスを掃除します。
cinder サービスをリスト表示します。
(overcloud) $ openstack volume service listController ノードにログインし、
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>
RabbitMQ クラスターをクリーンアップします。
- Controller ノードにログインします。
podman execコマンドを使用して bash を起動し、RabbitMQ クラスターのステータスを確認します。[tripleo-admin@overcloud-controller-0 ~]$ sudo podman exec -it rabbitmq-bundle-podman-0 bash [root@overcloud-controller-0 /]$ rabbitmqctl cluster_status置き換えられた Controller ノードをクリアするには、
rabbitmqctlコマンドを使用します。[root@controller-0 /]$ rabbitmqctl forget_cluster_node <node_name>
-
ブートストラップコントローラーノードを置き換えた場合は、置き換えプロセス後に環境ファイル
~/templates/bootstrap_controller.yamlを削除するか、既存の環境ファイルからpacemaker_short_bootstrap_node_nameおよびmysql_short_bootstrap_node_nameパラメーターを削除する必要があります。このステップにより、これ以降の置き換えで director が Controller ノード名をオーバーライドしようとするのを防ぎます。詳細は、ブートストラップコントローラーノードの交換 を参照してください。 オーバークラウドで Object Storage サービス (swift) を使用している場合は、オーバークラウドノードを更新した後、swift リングを同期する必要があります。次の例のようなスクリプトを使用して、リングファイルを既存のコントローラーノード (この例ではコントローラーノード 0) からすべてのコントローラーノードに配布し、それらのノードで 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