17.7. Controller ノード置き換えのトリガー
古い Controller ノードを削除して新規 Controller ノードに置き換えるには、以下の手順を実施します。
手順
削除する Controller ノードの UUID を決定し、それを
<NODEID>
変数に格納します。<node_name>
を、削除するノードの名前に置き換えてください。(undercloud)[stack@director ~]$ NODEID=$(openstack server list -f value -c ID --name <node_name>)
Heat リソース ID を特定するには、以下のコマンドを入力します。
(undercloud)[stack@director ~]$ openstack stack resource show overcloud ControllerServers -f json -c attributes | jq --arg NODEID "$NODEID" -c '.attributes.value | keys[] as $k | if .[$k] == $NODEID then "Node index \($k) for \(.[$k])" else empty end'
以下の内容で環境ファイル
~/templates/remove-controller.yaml
を作成し、削除する Controller ノードのノードインデックスを含めます。parameters: ControllerRemovalPolicies: [{'resource_list': ['<node_index>']}]
お使いの環境に該当するその他の環境ファイルと共に
remove-controller.yaml
環境ファイルを指定して、オーバークラウドデプロイメントコマンドを入力します。(undercloud) $ openstack overcloud deploy --templates \ -e /home/stack/templates/remove-controller.yaml \ [OTHER OPTIONS]
注記-
-e ~/templates/remove-controller.yaml
は、デプロイメントコマンドのこのインスタンスに対してのみ指定します。これ以降のデプロイメント操作からは、この環境ファイルを削除してください。 -
ブートストラップ Controller ノードを置き換え、ノード名を維持する場合は
~/templates/bootstrap-controller.yaml
を追加します。詳細は、ブートストラップ Controller ノードの交換 を参照してください。
-
director は古いノードを削除して、新しいノードを作成してから、オーバークラウドスタックを更新します。以下のコマンドを使用すると、オーバークラウドスタックのステータスをチェックすることができます。
(undercloud)$ openstack stack list --nested
デプロイコマンドが完了したら、古いノードが新しいノードに置き換えられていることを確認します。
(undercloud) $ openstack server list -c Name -c Networks +------------------------+-----------------------+ | Name | Networks | +------------------------+-----------------------+ | overcloud-compute-0 | ctlplane=192.168.0.44 | | overcloud-controller-0 | ctlplane=192.168.0.47 | | overcloud-controller-2 | ctlplane=192.168.0.46 | | overcloud-controller-3 | ctlplane=192.168.0.48 | +------------------------+-----------------------+
これで、新規ノードが稼動状態のコントロールプレーンサービスをホストするようになります。