在 Kubernetes 中建立非同步讀取集區執行個體

如要提高資料庫叢集的讀取處理量和可用性,您可以為資料庫執行個體建立非同步讀取集區執行個體。讀取集區執行個體會提供資料庫執行個體的唯讀複製版本,確保即使資料庫執行個體無法使用,仍可存取資料。

您可以在資料庫執行個體的資訊清單檔案中,定義讀取集區執行個體設定。每個讀取集區執行個體都需要建立專屬資訊清單檔案。您最多可以建立 20 個讀取集區執行個體。

每個讀取集區執行個體占用的儲存空間,與其複製的執行個體相同。

建立非同步讀取集區執行個體

您可以在資料庫叢集中建立任意數量的讀取集區執行個體。如要建立 AlloyDB Omni 非同步讀取集區執行個體,請完成下列步驟:

  1. 建立資料庫執行個體資訊清單,定義讀取集區執行個體類型:

    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-1。

    • NAMESPACE:資料庫叢集的命名空間。

    • DB_CLUSTER_NAME:執行個體所屬的資料庫叢集名稱。

    • READ_POOL_INSTANCE_SIZE:讀取集區執行個體中的節點數量。這會決定執行個體的整體運算能力。每個讀取集區執行個體最多可有 20 個節點。

  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。

設定讀取集區執行個體後,執行個體中所有插入、更新和刪除的資料列,都可以在讀取集區執行個體中讀取。