使用容器自動化調度管理工具安裝 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 operator Kubernetes 映像檔是以 Red Hat 的 Universal Base Image (UBI) 9 建構。這項轉換可提升部署作業的安全性、一致性和法規遵循。

SHA 摘要圖像參考資料

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

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

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

事前準備

使用 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 operator 與 OLM 套件 OperatorHub.io 自備 Kubernetes 容器環境,例如地端部署、公有雲、Google Kubernetes Engine、Amazon EKS 和 Azure AKS。

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

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

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

驗證存取權

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

符合軟硬體需求

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

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

安裝 AlloyDB Omni operator

如要在正式環境中部署 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.2 \
    --create-namespace \
    --namespace alloydb-omni-system \
    $(helm install --help | grep -q -- '--rollback-on-failure' && echo '--rollback-on-failure' || echo '--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 operator,請按照下列步驟操作:

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

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

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

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

設定 GDC 連結網路方案儲存空間

如要在 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 字串,例如 ChangeMe123 的 Q2hhbmdlTWUxMjM=。

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

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

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

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

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

調度資料庫叢集資源

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

一般縮放

更新縮放規格並套用資訊清單後,資料庫 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 下方更新 cpu 和 memory 值,然後套用變更:

    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 資源調度功能僅適用於至少有一個待命節點的高可用性叢集。
  • 您無法同時執行兩項 LDTM 作業。舉例來說,您可以使用 LDTM 擴充資料庫叢集,或執行子版本升級,但不能同時執行這兩項操作。
  • 如果 LDTM 縮放作業失敗,您必須手動復原。

後續步驟