You can define the read pool instance configuration in the database instance's manifest file. Each read pool instance requires creating a unique manifest file. You can create up to 20 read pool instances.
Each read pool instance occupies the same amount of storage as the instance it replicates.
Create an asynchronous read pool instance
You can create any number of read pool instances in your database cluster. To create an AlloyDB Omni asynchronous read pool instance, complete
the following steps:
Create the database instance manifest to define the read pool instance type:
READ_POOL_INSTANCE_NAME: a name for this resource—for
example,read-pool-instance-1.
NAMESPACE: the namespace of the database cluster.
DB_CLUSTER_NAME: the name of the database cluster to which the instance belongs.
READ_POOL_INSTANCE_SIZE: the number of nodes in a read
pool instance. This determines the instance's overall computing capacity. You can
have a maximum of 20 nodes per read pool instance.
Apply the manifest.
Verify instance status
To verify the availability of the read pool instance, run the following command:
The responsetrueindicates that the read pool instance is connected to your
database instance and actively streaming changes.
When your database instance is unreachable, the read pool instance continues to
serve the queries. In this case, the availability status will betruewhile
the streaming status will befalse.
After you set up the read pool instance, all inserts, updates, and deletions to rows in
your instance become readable on your read pool instance.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eAsynchronous read pool instances enhance database cluster read throughput and availability by providing read-only clones.\u003c/p\u003e\n"],["\u003cp\u003eEach read pool instance is configured via a unique manifest file, allowing for up to 20 instances per cluster.\u003c/p\u003e\n"],["\u003cp\u003eRead pool instances consume the same storage space as the primary database instance they replicate.\u003c/p\u003e\n"],["\u003cp\u003eThe status and streaming of read pool instances can be confirmed through kubectl commands.\u003c/p\u003e\n"],["\u003cp\u003eWhile serving queries, read pool instances may still maintain availability if the database instance becomes unreachable, but they will not be actively streaming changes in that case.\u003c/p\u003e\n"]]],[],null,["# Create an asynchronous read pool instance in Kubernetes\n\nSelect a documentation version: 15.7.0keyboard_arrow_down\n\n- [Current (16.8.0)](/alloydb/omni/current/docs/kubernetes-read-pool)\n- [16.8.0](/alloydb/omni/16.8.0/docs/kubernetes-read-pool)\n- [16.3.0](/alloydb/omni/16.3.0/docs/kubernetes-read-pool)\n- [15.12.0](/alloydb/omni/15.12.0/docs/kubernetes-read-pool)\n- [15.7.1](/alloydb/omni/15.7.1/docs/kubernetes-read-pool)\n- [15.7.0](/alloydb/omni/15.7.0/docs/kubernetes-read-pool)\n- [15.5.5](/alloydb/omni/15.5.5/docs/kubernetes-read-pool)\n- [15.5.4](/alloydb/omni/15.5.4/docs/kubernetes-read-pool)\n- [15.5.2](/alloydb/omni/15.5.2/docs/kubernetes-read-pool)\n\n\u003cbr /\u003e\n\nTo increase read throughput and availability of your database cluster, you can create an asynchronous read pool instance of your database instance. A read pool instance provides a read-only clone of your database instance ensuring data access even if your database instance becomes unavailable.\n\n\u003cbr /\u003e\n\nYou can define the read pool instance configuration in the database instance's manifest file. Each read pool instance requires creating a unique manifest file. You can create up to 20 read pool instances.\n\nEach read pool instance occupies the same amount of storage as the instance it replicates.\n| **Note:** You can configure your instance's standby replica to be used as a synchronous read-only instance. For more information, see [Use the standby as a read-only instance](/alloydb/omni/15.7.0/docs/kubernetes-ha#create-read-only-instance).\n\nCreate an asynchronous read pool instance\n-----------------------------------------\n\nYou can create any number of read pool instances in your database cluster. To create an AlloyDB Omni asynchronous read pool instance, complete\nthe following steps:\n\n1. Create the database instance manifest to define the read pool instance type:\n\n apiVersion: alloydbomni.dbadmin.goog/v1\n kind: DBInstance\n metadata:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eREAD_POOL_INSTANCE_NAME\u003c/span\u003e\u003c/var\u003e\n namespace: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eNAMESPACE\u003c/span\u003e\u003c/var\u003e\n spec:\n instanceType: ReadPool\n nodeCount: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eREAD_POOL_INSTANCE_SIZE\u003c/span\u003e\u003c/var\u003e\n dbcParent:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eDB_CLUSTER_NAME\u003c/span\u003e\u003c/var\u003e\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eREAD_POOL_INSTANCE_NAME\u003c/var\u003e: a name for this resource---for\n example, `read-pool-instance-1`.\n\n - \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e: the namespace of the database cluster.\n\n - \u003cvar translate=\"no\"\u003eDB_CLUSTER_NAME\u003c/var\u003e: the name of the database cluster to which the instance belongs.\n\n - \u003cvar translate=\"no\"\u003eREAD_POOL_INSTANCE_SIZE\u003c/var\u003e: the number of nodes in a read\n pool instance. This determines the instance's overall computing capacity. You can\n have a maximum of 20 nodes per read pool instance.\n\n | **Caution:** Creating too many read pool instances in your database cluster might reduce the primary instance's performance.\n2. Apply the manifest.\n\nVerify instance status\n----------------------\n\nTo verify the availability of the read pool instance, run the following command: \n\n kubectl get dbinstance -n \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e \u003cvar translate=\"no\"\u003eREAD_POOL_INSTANCE_NAME\u003c/var\u003e -o jsonpath='{.status.conditions[?(@.type==\"Available\")].status}'\n\nThe response `true` indicates that the read pool instance can serve queries,\nbut might not be replicating data from your database instance.\n\nTo verify the streaming status of the read pool instance, run the following command: \n\n kubectl get dbinstance -n \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e \u003cvar translate=\"no\"\u003eREAD_POOL_INSTANCE_NAME\u003c/var\u003e -o jsonpath='{.status.conditions[?(@.type==\"Streaming\")].status}'\n\nThe response `true` indicates that the read pool instance is connected to your\ndatabase instance and actively streaming changes.\n\nWhen your database instance is unreachable, the read pool instance continues to\nserve the queries. In this case, the availability status will be `true` while\nthe streaming status will be `false`.\n\nAfter you set up the read pool instance, all inserts, updates, and deletions to rows in\nyour instance become readable on your read pool instance."]]