Criar uma instância de pool de leitura assíncrona no Kubernetes

Para aumentar a taxa de transferência de leitura e a disponibilidade do cluster de banco de dados, crie uma instância de pool de leitura assíncrona da instância do banco de dados. Uma instância de pool de leitura fornece um clone de leitura somente da sua instância de banco de dados, garantindo o acesso aos dados mesmo que a instância de banco de dados fique indisponível.

É possível definir a configuração da instância do pool de leitura no arquivo de manifesto da instância do banco de dados. Cada instância de pool de leitura exige a criação de um arquivo de manifesto exclusivo. É possível criar até 20 instâncias do pool de leitura.

Cada instância do pool de leitura ocupa a mesma quantidade de armazenamento da instância replicada.

Criar uma instância do pool de leitura assíncrona

Para criar uma instância de pool de leitura assíncrona do AlloyDB Omni, siga estas etapas:

  1. Crie o manifesto da instância do banco de dados para definir o tipo de instância do pool de leitura:

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBInstance
    metadata:
      name: READ_POOL_INSTANCE_NAME
      namespace: NAMESPACE
    spec:
      instanceType: ReadPool
      dbcParent:
        name: DB_CLUSTER_NAME
    

    Substitua:

    • READ_POOL_INSTANCE_NAME: um nome para esse recurso, por exemplo, read-pool-instance-1.

    • NAMESPACE: o namespace do cluster do banco de dados.

    • DB_CLUSTER_NAME: o nome do cluster de banco de dados ao qual a instância pertence.

  2. Aplique o manifesto.

Verificar o status da instância

Para verificar a disponibilidade da instância do pool de leitura, execute o seguinte comando:

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

A resposta true indica que a instância do pool de leitura pode exibir consultas, mas talvez não esteja replicando dados da instância do banco de dados.

Para verificar o status de streaming da instância do pool de leitura, execute o seguinte comando:

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

A resposta true indica que a instância do pool de leitura está conectada à instância do banco de dados e transmite mudanças ativamente.

Quando a instância do banco de dados não pode ser alcançada, a instância do pool de leitura continua atendendo as consultas. Nesse caso, o status de disponibilidade será true, e o status de streaming será false.

Depois de configurar a instância do pool de leitura, todas as inserções, atualizações e exclusões de linhas na instância vão ficar legíveis na instância do pool de leitura.