読み取りプール インスタンスの構成は、データベース インスタンスのマニフェスト ファイルで定義できます。読み取りプール インスタンスごとに、一意のマニフェスト ファイルを作成する必要があります。読み取りプール インスタンスは最大 20 個作成できます。
各読み取りプール インスタンスは、複製するインスタンスと同じ量のストレージを占有します。
非同期読み取りプール インスタンスを作成する
データベース クラスタには、任意の数の読み取りプール インスタンスを作成できます。AlloyDB Omni 非同期読み取りプール インスタンスを作成する手順は次のとおりです。
データベース インスタンス マニフェストを作成して、読み取りプール インスタンスのタイプを定義します。
apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBInstance metadata: name: READ_POOL_INSTANCE_NAME namespace: NAMESPACE spec: instanceType: ReadPool nodeCount: READ_POOL_INSTANCE_SIZE dbcParent: name: DB_CLUSTER_NAME次のように置き換えます。
READ_POOL_INSTANCE_NAME: このリソースの名前。例:read-pool-instance-1NAMESPACE: データベース クラスタの Namespace。DB_CLUSTER_NAME: インスタンスが属するデータベース クラスタの名前。READ_POOL_INSTANCE_SIZE: 読み取りプール インスタンス内のノード数。これにより、インスタンスの全体的なコンピューティング容量が決まります。読み取りプール インスタンスごとに最大 20 個のノードを使用できます。
マニフェストを適用します。
インスタンスのステータスを確認する
読み取りプール インスタンスの可用性を確認するには、次のコマンドを実行します。
kubectl get dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME -o jsonpath='{.status.conditions[?(@.type=="Available")].status}'レスポンス true は、読み取りプール インスタンスがクエリを処理できるが、データベース インスタンスからデータを複製していないことを示します。
読み取りプール インスタンスのストリーミング ステータスを確認するには、次のコマンドを実行します。
kubectl get dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME -o jsonpath='{.status.conditions[?(@.type=="Streaming")].status}'レスポンス true は、読み取りプール インスタンスがデータベース インスタンスに接続され、変更をアクティブにストリーミングしていることを示します。
データベース インスタンスに到達できない場合、読み取りプール インスタンスはクエリの処理を継続します。この場合、アベイラビリティ ステータスは true で、ストリーミング ステータスは false になります。
読み取りプール インスタンスを設定すると、インスタンス内の行に対するすべての挿入、更新、削除が読み取りプール インスタンスで読み取り可能になります。
制限事項: スイッチオーバーとフェイルオーバーを処理する
プライマリ データベース インスタンスでスイッチオーバーまたはフェイルオーバーが発生した場合、リードプール インスタンスは新しいプライマリ インスタンスに自動的に同期されず、データのレプリケーションが停止します。データ レプリケーションを再開するには、読み取りプールをゼロにスケールダウンしてから、選択したノード数にスケールアップします。
読み取りプールの現在のノード数を記録します。
NODE_COUNT=$(kubectl get dbinstance -n NAMESPACE \ READ_POOL_INSTANCE_NAME -ojsonpath="{.spec.nodeCount}")次のように置き換えます。
NAMESPACE: データベース クラスタの Namespace。READ_POOL_INSTANCE_NAME: 読み取りプール インスタンスの名前。
読み取りプールをゼロにスケールダウンします。
kubectl patch dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME \ --type=merge -p '{"spec":{"nodeCount":0}}'読み取りプールを選択したノード数にスケールバックします。
kubectl patch dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME \ --type=merge -p "{\"spec\":{\"nodeCount\":NODE_COUNT}}"