在 Kubernetes 中创建异步读取池实例

如需提高数据库集群的读取吞吐量和可用性,您可以为数据库实例创建异步读取池实例。读取池实例提供数据库实例的只读克隆,可确保即使数据库实例不可用,也能访问数据。

您可以在数据库实例的清单文件中定义读取池实例配置。每个读取池实例都需要创建一个唯一的清单文件。您最多可以创建 20 个读取池实例。

每个读取池实例占用的存储空间与其复制的实例相同。

创建异步读取池实例

如需创建 AlloyDB Omni 异步读取池实例,请完成以下步骤:

  1. 创建数据库实例清单以定义读取池实例类型:

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

    替换以下内容:

    • READ_POOL_INSTANCE_NAME:此资源的名称,例如 read-pool-instance-1

    • NAMESPACE:数据库集群的命名空间。

    • DB_CLUSTER_NAME:实例所属的数据库集群的名称。

  2. 应用清单。

验证实例状态

如需验证读取池实例的可用性,请运行以下命令:

  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

设置读取池实例后,您实例中的所有行插入、更新和删除操作都会在读取池实例中变为可读。