制限事項
次の制限が適用されます。
- エンドポイントは ReadWrite エンドポイントに限定されます。読み取り専用エンドポイントは今後サポートされる予定です。
始める前に
ロードバランサを構成する前に、次の要件を満たしていることを確認してください。
ロードバランサ ノードを定義するには、Deployment の仕様ファイルに、専用ロードバランサ VM のホスト名または IP アドレスを含む
load_balancer_nodesグループを含めます。alloydbomni: vars: ... children: load_balancer_nodes: hosts: lb-node-1: lb-node-2:ファイアウォールを構成するには、次の受信トラフィックを許可します。
専用ロードバランサ VM の場合:
ポート
5432(TCP): HAProxy データベース トラフィック用。ポート
6432(TCP): PgBouncer 接続プーリング トラフィック用(該当する場合)。VRRP プロトコル:
keepalivedリーダー選出とヘルスチェック用。
データベース ノードの場合:
- ポート
8086(HTTP): ロードバランサのヘルスチェック用。
- ポート
環境を使用している場合は、 Google Cloud を
ENVIRONMENT_TYPEに設定します。gcp次に、rootユーザーとしてgcloud auth loginを実行して、gcloud CLI アカウントを認証する必要があります。また、認証されたアカウントには次の権限が必要です。compute.instances.getcompute.instances.listcompute.instances.updateNetworkInterface
ロードバランサを構成する
RPM オーケストレーターは、HAProxy を使用してトラフィックを分散し、Keepalived を使用して仮想 IP(VIP)で高可用性を提供します。
リソース仕様を更新する
DBCluster 仕様ファイルに dbLoadBalancerOptions を追加します。これにより、クラスタ マネージャーとオーケストレーターがロードバランサ エンドポイントの管理方法を認識します。
DBCluster:
metadata:
name: DBCLUSTER_NAME
spec:
primarySpec:
# ... other primary settings ...
dbLoadBalancerOptions:
ENVIRONMENT_TYPE::
loadBalancerIP: "VIRTUAL_IP"
loadBalancerType: "internal"
loadBalancerInterface: "VIRTUAL_IP_INTERFACE"
次のように置き換えます。
ENVIRONMENT_TYPE: クラスタが設定される環境(onpremまたはgcp)を決定します。DBCLUSTER_NAME: AlloyDB Omni データベース クラスタの名前(my-db-clusterなど)。VIRTUAL_IP: フローティング仮想 IP に使用される静的 IP アドレス。データベース クライアント アプリケーションは、ここで定義された IP アドレスを使用します。Keepalived が Gratuitous Address Resolution Protocol(GARP)を正常にブロードキャストできるようにするには、この IP アドレスが次の条件を満たしている必要があります。使用可能であること、ループバックできないこと、オンプレミスの場合はプライマリ ノード インターフェースと同じサブネットに属していること。VIRTUAL_IP_INTERFACE: が構成されているネットワーク インターフェース。VIRTUAL_IPデフォルト値はeth0です。
構成を適用する
任意のオーケストレーター インターフェースを使用して構成変更を適用します。
Ansible
インベントリ ファイルとリソース仕様ファイルを使用して、ブートストラップ プレイブックを実行します。
ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPECIFICATION" \
-e resource_spec="DBCLUSTER_SPECIFICATION"次の変数を置き換えます。
DBCLUSTER_PLAYBOOK: クラスタを作成するでデータベース クラスタ用に作成したプレイブックのパス。DEPLOYMENT_SPECIFICATION: AlloyDB Omni コンポーネントをインストールする で作成したデプロイ仕様のパス。DBCLUSTER_SPECIFICATION: クラスタ仕様のパス。
alloydbctl
リソース仕様と Deployment の仕様を適用します。
alloydbctl apply -d "DEPLOYMENT_SPECIFICATION" -r "DBCLUSTER_SPECIFICATION"次の変数を置き換えます。
DEPLOYMENT_SPECIFICATION: AlloyDB Omni コンポーネントをインストールするで作成したデプロイ仕様のパス。DBCLUSTER_SPECIFICATION: クラスタ仕様のパス。
ロードバランサを確認する
RPM オーケストレーターが設定を完了したら、VIP を使用してデータベース クラスタに接続できることを確認します。
psql -h VIRTUAL_IP -U postgresVIRTUAL_IP を、loadBalancerIP フィールドで構成した IP アドレスに置き換えます。
ロードバランサは、接続を現在のプライマリ ノードに自動的にルーティングします。