Creare un'istanza del pool di lettura asincrono in Kubernetes

Per aumentare la velocità effettiva di lettura e la disponibilità del cluster di database, puoi creare un'istanza del pool di lettura asincrona dell'istanza del database. Un'istanza del pool di lettura fornisce una copia di sola lettura dell'istanza del database garantendo l'accesso ai dati anche se l'istanza del database non è disponibile.

Puoi definire la configurazione dell'istanza del pool di lettura nel file manifest dell'istanza del database. Ogni istanza del pool di lettura richiede la creazione di un file manifest univoco. Puoi creare fino a 20 istanze del pool di lettura.

Ogni istanza del pool di lettura occupa la stessa quantità di spazio di archiviazione dell'istanza di cui esegue la replica.

Crea un'istanza del pool di lettura asincrono

Puoi creare un numero qualsiasi di istanze del pool di lettura nel cluster di database. Per creare un'istanza del pool di lettura asincrono di AlloyDB Omni, completa i seguenti passaggi:

  1. Crea il manifest dell'istanza del database per definire il tipo di istanza del pool di lettura:

    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
    

    Sostituisci quanto segue:

    • READ_POOL_INSTANCE_NAME: un nome per questa risorsa, ad esempio read-pool-instance-1.

    • NAMESPACE: lo spazio dei nomi del cluster di database.

    • DB_CLUSTER_NAME: il nome del cluster di database a cui appartiene l'istanza.

    • READ_POOL_INSTANCE_SIZE: il numero di nodi in un'istanza del pool di lettura. Questo determina la capacità di calcolo complessiva dell'istanza. Puoi avere un massimo di 20 nodi per istanza del pool di lettura.

  2. Applica il manifest.

Verificare lo stato dell'istanza

Per verificare la disponibilità dell'istanza del pool di lettura, esegui il seguente comando:

  kubectl get dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME -o jsonpath='{.status.conditions[?(@.type=="Available")].status}'

La risposta true indica che l'istanza del pool di lettura può gestire le query, ma potrebbe non replicare i dati dall'istanza del database.

Per verificare lo stato dello streaming dell'istanza del pool di lettura, esegui il seguente comando:

  kubectl get dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME -o jsonpath='{.status.conditions[?(@.type=="Streaming")].status}'

La risposta true indica che l'istanza del pool di lettura è collegata all'istanza del database e trasmette attivamente le modifiche.

Quando l'istanza del database non è raggiungibile, l'istanza del pool di lettura continua a gestire le query. In questo caso, lo stato di disponibilità sarà true, mentre lo stato dello streaming sarà false.

Dopo aver configurato l'istanza del pool di lettura, tutte le inserzioni, gli aggiornamenti e le eliminazioni delle righe nell'istanza diventano leggibili nell'istanza del pool di lettura.