使用容器自動化調度管理工具安裝 AlloyDB Omni

選取文件版本:

本頁面將概略介紹 AlloyDB Omni Kubernetes 運算子,並說明如何使用該運算子將 AlloyDB Omni 部署至 Kubernetes 叢集。本頁面假設您已熟悉 Kubernetes 作業。

如需在標準 Linux 環境中安裝 AlloyDB Omni 的操作說明,請參閱「安裝 AlloyDB Omni」。

總覽

如要將 AlloyDB Omni 部署至 Kubernetes 叢集,請安裝 AlloyDB Omni Kubernetes 運算子,這是 Google 提供的 Kubernetes API 擴充功能。

您可將宣告式資訊清單檔案與 kubectl 公用程式配對,設定及控管以 Kubernetes 為基礎的 AlloyDB Omni 資料庫叢集,就像任何其他以 Kubernetes 為基礎的部署作業一樣。您不會使用 AlloyDB Omni CLI,因為這個 CLI 是用於部署至個別 Linux 機器,而非 Kubernetes 叢集。

基本映像檔

從 1.5.0 版開始,AlloyDB Omni 運算子 Kubernetes 映像檔會以 Red Hat 的通用基本映像檔 (UBI) 9 為基礎建構。這項轉換作業可提升部署作業的安全性、一致性和合規性。

SHA 摘要圖片參考資料

為防範供應鏈攻擊並符合 OpenShift 認證規定,AlloyDB Omni operator 會使用 SHA-256 摘要,而非版本標記,做為所有容器映像檔參照。

  • 自動升級:AlloyDB Omni operator 會使用內部 ImageCatalog 管理這些摘要,並確保升級失敗時,資料平面能可靠地復原。

  • 啟用:OpenShift Certified 套件預設會啟用這項功能,但使用 OLM 或 Helm 套件的使用者可以透過 OLM 的訂閱設定,或 Helm 圖表中的 enableDigestImageRefs 值,將 ENABLE_DIGEST_IMAGE_REFS 環境變數設為 true,手動啟用摘要參照。

事前準備

使用 AlloyDB Omni operator 在 Kubernetes 叢集上安裝 AlloyDB Omni 前,請確認您符合下列需求。

選擇下載或安裝選項

在一般 Kubernetes 叢集上管理工作負載時,您可以使用 Helm 或 OLM。Helm 是通用套件管理工具,可使用 Helm 資訊套件在所有 Kubernetes 變體中安裝任何工作負載,包括運算符。OLM 是 OpenShift 平台上的標準首選方案,可透過專用的 OLM 組合管理運算子生命週期。

請根據您的環境和工具,選擇下列其中一種部署方法:

媒體 下載位置和安裝指南 部署至
使用 Helm Chart 的 AlloyDB Omni operator 在 Kubernetes 上安裝 AlloyDB Omni 自備 Kubernetes 容器環境,例如地端部署、公有雲、GKE、Amazon EKS 和 Azure AKS。

提示:如果您的 CD (持續推送軟體更新) 工具與 Helm 整合,請使用這個選項。
AlloyDB Omni 運算子 (含 OLM 套件) OperatorHub.io 自備 Kubernetes 容器環境,例如地端部署、公有雲、Google Kubernetes Engine、Amazon EKS 和 Azure AKS。

如要使用 OLM 套件,請先在 Kubernetes 叢集上安裝 OLM,再安裝運算子。詳情請參閱 olm.operatorframework.io

提示:如果 CD (持續推送軟體更新) 工具已使用 OLM,請選擇這個選項。
OpenShift Operator with OLM Bundle Openshift Container Platform 網頁控制台 OpenShift 環境

OpenShift 是 Kubernetes 的變體,使用 OLM 做為標準內建方法,可封裝及部署運算子。

驗證存取權

確認您有權存取下列項目:

符合軟硬體需求

Kubernetes 叢集中的每個節點都必須具備下列條件:

  • 至少兩個 x86 或 AMD64 CPU。
  • 至少 8 GB 的 RAM。
  • Linux 核心版本 4.18 以上。
  • 已啟用控制群組 (cgroup) v2。

安裝 AlloyDB Omni 運算子

如要在正式環境中部署 AlloyDB Omni,請參閱「在正式環境中執行 AlloyDB Omni」。

您可以使用不同方法安裝 AlloyDB Omni operator,包括 Helm 和 Operator Lifecycle Manager (OLM)。

Helm

如要安裝 AlloyDB Omni 運算子,請按照下列步驟操作:

  1. 從 OCI 登錄檔安裝 AlloyDB Omni 運算子:
    helm install alloydbomni-operator oci://gcr.io/alloydb-omni/alloydbomni-operator \
    --version 1.8.0 \
    --create-namespace \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m
    

    安裝成功後,系統會顯示以下輸出內容:

    NAME: alloydbomni-operator
    LAST DEPLOYED: CURRENT_TIMESTAMP
    NAMESPACE: alloydb-omni-system
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    

OLM

如要使用 Operator Lifecycle Manager 安裝 AlloyDB Omni operator,請按照下列步驟操作:

  1. 前往 AlloyDB Omni Operator 頁面。

  2. 按一下「安裝」。如果尚未安裝,請按照操作說明僅安裝 OLM 運算子和 OperatorHub.io 目錄。

  3. 如果 alloydb-omni-system 命名空間不存在,請建立該命名空間。

    kubectl create ns alloydb-omni-system
    
  4. 設定 OLM OperatorGroup,確保運算子屬於叢集範圍。

    kubectl apply -f - <<EOF
    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: operator-sdk-og
      namespace: alloydb-omni-system
    spec:
      upgradeStrategy: Default
    EOF
    
  5. 使用 OLM 訂閱資源安裝運算子。

    kubectl apply -f - <<EOF
    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: my-alloydb-omni-operator
      namespace: alloydb-omni-system
    spec:
      channel: stable
      name: alloydb-omni-operator
      source: operatorhubio-catalog
      sourceNamespace: olm
    EOF
    
  6. 安裝預設憑證 ClusterIssuer。如果您使用自訂憑證簽發機構,則可略過這個步驟。

    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    EOF
    

OLM

如要使用 OLM 在 Red Hat OpenShift 環境中安裝 AlloyDB Omni 運算子,請按照下列步驟操作:

  1. 登入 Red Hat OpenShift 網頁控制台
  2. 如果使用者處於離線或未連線狀態,您必須使用可保留 SHA 摘要的工具 (例如 oc image mirror),手動將必要映像檔鏡像至私人登錄檔。您必須設定ImageDigestMirrorSet,將從公開gcr.io存放區提取的映像檔重新導向至私人登錄檔。確保 AlloyDB Omni operator 可以使用不可變動的 SHA256 摘要,提取所需映像檔。
  3. 在 OpenShift 網頁控制台中,依序前往「Operators」>「OperatorHub」AlloyDB Omni Operator 列於「已認證」和「社群」目錄中。

  4. 在 AlloyDB Omni operator 窗格中,按一下「安裝」

  5. 執行下列指令,安裝預設憑證 ClusterIssuer。如果您使用自訂憑證簽發機構,則可略過這個步驟。

    kubectl apply -f - <<EOF
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
      name: alloydbomni-selfsigned-cluster-issuer
    spec:
      selfSigned: {}
    EOF
    

設定 GDC connected 儲存空間

如要在 GDC 連線上安裝 AlloyDB Omni 運算子,您需要按照額外步驟設定儲存空間,因為 GDC 連線叢集不會設定預設儲存空間類別。建立 AlloyDB Omni 資料庫叢集前,請務必設定預設儲存空間級別。

如要瞭解如何將 Symcloud Storage 設為預設儲存空間級別,請參閱「將 Symcloud Storage 設為預設儲存空間級別」。

如要進一步瞭解如何變更所有其他儲存空間級別的預設值,請參閱「變更預設的 StorageClass」。

建立資料庫叢集

AlloyDB Omni 資料庫叢集包含執行 AlloyDB Omni 伺服器所需的所有儲存空間和運算資源,包括主要伺服器、所有副本和所有資料。

在 Kubernetes 叢集上安裝 AlloyDB Omni operator後,您就能套用類似下列的資訊清單,在 Kubernetes 叢集上建立 AlloyDB Omni 資料庫叢集:

apiVersion: v1
kind: Secret
metadata:
  name: db-pw-DB_CLUSTER_NAME
type: Opaque
data:
  DB_CLUSTER_NAME: "ENCODED_PASSWORD"
---
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
  name: DB_CLUSTER_NAME
spec:
  databaseVersion: "18.3.0"
  primarySpec:
    adminUser:
      passwordRef:
        name: db-pw-DB_CLUSTER_NAME
    resources:
      cpu: CPU_COUNT
      memory: MEMORY_SIZE
      disks:
      - name: DataDisk
        size: DISK_SIZE

更改下列內容:

  • DB_CLUSTER_NAME:這個資料庫叢集的名稱,例如 my-db-cluster

  • ENCODED_PASSWORD:預設 postgres 使用者角色的資料庫登入密碼,以 Base64 字串編碼,例如 ChangeMe123Q2hhbmdlTWUxMjM=

  • CPU_COUNT:這個資料庫叢集中每個資料庫執行個體可用的 CPU 數量。

  • MEMORY_SIZE:這個資料庫叢集的每個資料庫執行個體記憶體量。建議您將此值設為每個 CPU 8 GB。舉例來說,如果您先前在資訊清單中將 cpu 設為 2,建議將 memory 設為 16Gi

  • DISK_SIZE:每個資料庫執行個體的磁碟大小,例如 10Gi

套用這個資訊清單後,Kubernetes 叢集就會包含 AlloyDB Omni 資料庫叢集,並採用指定的記憶體、CPU 和儲存空間設定。如要與新的資料庫叢集建立測試連線,請參閱「使用預先安裝的 psql 連線」。

如要進一步瞭解 Kubernetes 資訊清單及如何套用,請參閱「管理資源」。

調度資料庫叢集資源

如要調整資料庫叢集的運算資源,請更新 db-cluster.yaml 資訊清單中的 cpumemory 值,然後套用變更。擴展程序取決於您選擇一般擴展作業還是低停機時間擴展作業。

一般資源調度

更新擴縮規格並套用資訊清單後,資料庫 Pod 會立即重新啟動,不需進行任何其他設定。因此,在新的資源分配生效期間,主要和待命執行個體會短暫停機。

停機時間短的資源調度

對於至少有一個待機節點的高可用性 (HA) 叢集,您可以使用低停機時間維護 (LDTM) 準備和切換策略,在擴充期間將停機時間降到最低。這項策略會先將縮放變更套用至待命執行個體,然後快速切換,再將變更套用至原始主要執行個體。您可以運用 LDTM 策略擴充或縮減規模。

如要啟用及監控低停機時間的擴縮作業,請按照下列步驟操作:

  1. 啟用低停機時間調整功能。在資料庫叢集中新增 enableLDTM 註解:

    kubectl annotate dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME dbcluster.dbadmin.goog/enableLDTM=true
    

    DB_CLUSTER_NAME 替換為資料庫叢集名稱。

  2. 套用更新的縮放規格。更新資訊清單中 primarySpec.resources 下方的 cpumemory 值,然後套用變更:

    kubectl apply -f db-cluster.yaml
    
  3. 監控調度程序。檢查 LDTMScalingInProgress 狀態條件,監控作業:

    kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -o yaml | yq '.status.conditions[] | select(.type == "LDTMScalingInProgress")'
    

    DB_CLUSTER_NAME 替換為資料庫叢集名稱。

    程序進行期間,狀態會顯示為 true。擴縮作業完成後,條件的狀態會變更為 false

限制

  • LDTM 擴充功能僅支援至少有一個待命的 HA 叢集。
  • 你無法同時執行兩項 LDTM 作業。舉例來說,您可以使用 LDTM 擴充資料庫叢集或執行子版本升級,但無法同時執行這兩項作業。
  • 如果 LDTM 資源調度作業失敗,您必須手動復原。

後續步驟