既存のクラスタにスタンバイ ノードを追加して、読み取りワークロードをスケーリングしたり、高可用性を向上させたりできます。また、特定のデータベース ノードを削除して、対象を絞ったメンテナンスや、永続的なデコミッションを行い、クラスタ容量を削減することもできます。
始める前に
- クラスタが正常な状態で、
status.phaseがReadyであることを確認します。 - 新しいノードを追加する場合は、システム要件を満たしていること、必要な AlloyDB Omni コンポーネントがインストールされていることを確認します。
データベース ノードを追加する
クラスタに新しいスタンバイ データベース ノードを追加するには、Deployment の仕様(インベントリとも呼ばれます)とデータベース クラスタ リソース仕様の両方を更新する必要があります。
Deployment の仕様を更新するには、
deployment_spec.yamlファイルを開き、primary_instance_nodesグループに新しいノードの IP アドレスまたはホスト名を追加します。alloydbomni: children: primary_instance_nodes: hosts: db-node-1: db-node-2: NEW_NODE:NEW_NODEは、追加する新しいスタンバイ ノードの IP アドレスまたはホスト名に置き換えます。リソース仕様を更新するには、
DBClusterリソース仕様ファイルを開き、追加するノードの数だけnumberOfStandbys値を増やします。DBCluster: metadata: name: DB_CLUSTER_NAME spec: # Other configurations omitted for brevity. # Modify the availability block in your existing DBCluster resource spec: availability: numberOfStandbys: NEW_STANDBY_COUNT # Remaining configurations omitted.次の変数を置き換えます。
DB_CLUSTER_NAME: データベース クラスタの名前。NEW_STANDBY_COUNT: クラスタ内のスタンバイ ノードの新しい合計数(増分)。
次のいずれかの方法で、更新されたリソース仕様を適用します。RPM オーケストレーターは、新しいノードを自動的にプロビジョニングします。
alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ansible
Ansible を使用して変更を適用する手順は次のとおりです。
次の内容の
add.ymlハンドブックを作成します。--- # Add AlloyDB Omni database nodes - name: Add AlloyDB Omni database nodes hosts: all become: true vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: PRIVATE_SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.add次の変数を置き換えます。
ANSIBLE_USER: すべてのノードへのパスワードレス アクセス権とsudo権限を持つユーザー。PRIVATE_SSH_KEY_PATH: パスワードなしの認証に使用する SSH 認証鍵のパス。
作成したハンドブックを実行します。
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" add.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"
次の変数を置き換えます。
DEPLOYMENT_SPEC_PATH: Deployment の仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
特定のデータベース ノードを削除する
クラスタから特定のスタンバイ ノードを削除するには、Deployment の仕様から削除し、スタンバイ数を減らす必要があります。
Deployment の仕様を更新するには、
deployment_spec.yamlファイルを開き、primary_instance_nodesグループからターゲット ノードの IP アドレスまたはホスト名を削除します。リソース仕様を更新するには、
DBClusterリソース仕様ファイルを開き、numberOfStandbys値を減らします。DBCluster: metadata: name: DB_CLUSTER_NAME spec: # Other configurations omitted for brevity. # Modify the availability block in your existing DBCluster resource spec: availability: numberOfStandbys: NEW_STANDBY_COUNT # Remaining configurations omitted.次の変数を置き換えます。
DB_CLUSTER_NAME: データベース クラスタの名前。NEW_STANDBY_COUNT: クラスタ内のスタンバイ ノードの新しい合計数(減少)。
次のいずれかの方法で、更新されたマニフェストを適用します。
alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ansible
Ansible を使用して変更を適用する手順は次のとおりです。
次の内容の
remove.ymlハンドブックを作成します。--- # Scale-in database nodes from AlloyDB Omni cluster - name: Scale-In AlloyDB Omni Cluster (Logical Discovery & De-registration) hosts: all become: true vars: ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: PRIVATE_SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.remove次の変数を置き換えます。
ANSIBLE_USER: すべてのノードへのパスワードレス アクセス権とsudo権限を持つユーザー。PRIVATE_SSH_KEY_PATH: パスワードなし認証用の SSH 認証鍵のパス。
ハンドブックを実行します。
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" remove.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"
次の変数を置き換えます。
DEPLOYMENT_SPEC_PATH: Deployment の仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
省略可: 削除されたノードのコンポーネントをクリーンアップします。
alloydbctlAlloyDB Omni コンポーネントを手動でアンインストールして、削除されたノードをクリーンアップします。
Ansible
Ansible オーケストレーターは、VM に次のコンポーネントが存在する場合、それらを自動的にクリーンアップします。
- AlloyDB Omni
- AlloyDB Omni モニター
- ノード マネージャー
pgBackRestPgBouncerKeepalived