如需在標準 Linux 環境中安裝 AlloyDB Omni 的操作說明,請參閱「安裝 AlloyDB Omni」。
總覽
如要將 AlloyDB Omni 部署至 Kubernetes 叢集,請安裝 AlloyDB Omni 運算子,這是 Google 提供的 Kubernetes API 擴充功能。
您可將宣告式資訊清單檔案與 kubectl
公用程式配對,設定及控制 Kubernetes 型 AlloyDB Omni 資料庫叢集,就像任何其他 Kubernetes 型部署作業一樣。您不會使用 AlloyDB Omni CLI,因為這個 CLI 是用於部署至個別 Linux 機器,而非 Kubernetes 叢集。
基本映像檔
從 1.5.0 版開始,AlloyDB Omni 運算子 Kubernetes 映像檔會以 Red Hat 的通用基本映像檔 (UBI) 9 為基礎建構。這項轉換作業可提升部署作業的安全性、一致性和法規遵循程度。
AlloyDB Omni 運算子 1.1.0 版 (和後續版本) 相容性
AlloyDB Omni 運算子 1.1.0 版與 AlloyDB Omni 15.5.3 和 15.5.4 版不相容。如果您使用這些版本的 AlloyDB Omni,可能會收到類似下列內容的錯誤:
Error from server (Forbidden): error when creating "[...]/dbcluster.yaml": admission webhook "vdbcluster.alloydbomni.dbadmin.goog" denied the request: unsupported database version 15.5.3
事前準備
使用 AlloyDB Omni 運算子在 Kubernetes 叢集上安裝 AlloyDB Omni 前,請確認您符合下列需求。
選擇下載或安裝選項
選擇下列其中一個下載和安裝選項:
媒體 | 下載位置和安裝指南 | 部署至 |
---|---|---|
OpenShift Operator with OLM Bundle | Openshift Container Platform 網頁控制台 | OpenShift 環境 |
Kubernetes Operator with OLM bundle | Artifacthub.io | 自備 Kubernetes 容器環境,例如內部部署、公有雲、Google Kubernetes Engine、Amazon EKS 和 Azure AKS。 |
使用 Helm 資訊套件的 Kubernetes Operator | 在 Kubernetes 上安裝 AlloyDB Omni (本頁面) | 自備 Kubernetes 容器環境,例如地端、公有雲、GKE、Amazon EKS 和 Azure AKS。 |
驗證存取權
確認您有權存取下列項目:
Kubernetes 叢集,執行下列軟體:
- Kubernetes 1.21 以上版本。
cert-manager
服務。
Google Cloud CLI。安裝 gcloud CLI 後,您必須執行
gcloud auth login
驗證帳戶。 Google Cloud
符合軟硬體需求
請確認 Kubernetes 叢集中的每個節點都符合下列規定:
- 至少兩個 x86 或 AMD64 CPU
- 8 GB 以上 RAM
- Linux 核心 4.18 以上版本
- 已啟用控制群組 (cgroup v2)。如要驗證 cgroup 設定,請參閱「驗證 cgroup 設定」。
安裝 AlloyDB Omni 運算子
您可以透過不同方法安裝 AlloyDB Omni 運算子,包括 Helm 和 Operator Lifecycle Manager (OLM)。
Helm
如要安裝 AlloyDB Omni 運算子,請按照下列步驟操作:
- 定義下列環境變數:
export GCS_BUCKET=alloydb-omni-operator export HELM_PATH=$(gcloud storage cat gs://$GCS_BUCKET/latest) export OPERATOR_VERSION="${HELM_PATH%%/*}"
- 下載 AlloyDB Omni 運算子:
gcloud storage cp gs://$GCS_BUCKET/$HELM_PATH ./ --recursive
- 安裝 AlloyDB Omni 運算子:
helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \ --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
- 如要清除,請刪除下載的 AlloyDB Omni 運算子安裝檔案。檔案名稱為
alloydbomni-operator-VERSION_NUMBER.tgz
,位於目前的工作目錄中。
OLM
如要使用 Operator Lifecycle Manager 安裝 AlloyDB Omni 運算子,請按照下列步驟操作:
按一下「安裝」按鈕,即可查看操作說明。
完成所有安裝步驟。
安裝 AlloyDB Omni 運算子後,請在叢集中手動建立 cert-manager 資源。這是必要條件。請使用下列指令:
kubectl create ns ${NAMESPACE:?} kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: alloydbomni-selfsigned-cluster-issuer spec: selfSigned: {} --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: fleet-selfsigned-issuer namespace: ${NAMESPACE:?} spec: selfSigned: {} --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: fleet-serving-cert namespace: ${NAMESPACE:?} spec: dnsNames: - fleet-webhook-service.alloydb-omni-system.svc - fleet-webhook-service.alloydb-omni-system.svc.cluster.local issuerRef: kind: Issuer name: fleet-selfsigned-issuer secretName: fleet-webhook-server-cert --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: local-selfsigned-issuer namespace: ${NAMESPACE:?} spec: selfSigned: {} --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: local-serving-cert namespace: ${NAMESPACE:?} spec: dnsNames: - local-webhook-service.alloydb-omni-system.svc - local-webhook-service.alloydb-omni-system.svc.cluster.local issuerRef: kind: Issuer name: local-selfsigned-issuer secretName: local-webhook-server-cert EOF
將
NAMESPACE
替換為您擁有運算子的命名空間,例如alloydb-omni-system
。
OLM
如要使用 OLM 在 Red Hat OpenShift 環境中安裝 AlloyDB Omni 運算子,請登入 Red Hat OpenShift 網頁控制台。
依序選取「運算子」 >「OperatorHub」。
使用搜尋欄位尋找 AlloyDB Omni 運算子。
圖 1:OperatorHub 中的 AlloyDB Omni 運算子 在 AlloyDB Omni 運算子窗格中,按一下「安裝」。
圖 2:AlloyDB Omni 運算子窗格 安裝 AlloyDB Omni 運算子後,請在叢集中手動建立 cert-manager 資源。這是必要條件。請使用下列指令:
kubectl create ns ${NAMESPACE:?} kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: alloydbomni-selfsigned-cluster-issuer spec: selfSigned: {} --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: fleet-selfsigned-issuer namespace: ${NAMESPACE:?} spec: selfSigned: {} --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: fleet-serving-cert namespace: ${NAMESPACE:?} spec: dnsNames: - fleet-webhook-service.alloydb-omni-system.svc - fleet-webhook-service.alloydb-omni-system.svc.cluster.local issuerRef: kind: Issuer name: fleet-selfsigned-issuer secretName: fleet-webhook-server-cert --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: local-selfsigned-issuer namespace: ${NAMESPACE:?} spec: selfSigned: {} --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: local-serving-cert namespace: ${NAMESPACE:?} spec: dnsNames: - local-webhook-service.alloydb-omni-system.svc - local-webhook-service.alloydb-omni-system.svc.cluster.local issuerRef: kind: Issuer name: local-selfsigned-issuer secretName: local-webhook-server-cert EOF
將
NAMESPACE
替換為您擁有運算子的命名空間,例如alloydb-omni-system
。
設定 GDC connected 儲存空間
如要在 GDC 連線上安裝 AlloyDB Omni 運算子,您需要按照額外步驟設定儲存空間,因為 GDC 連線叢集不會設定預設儲存空間類別。您必須先設定預設儲存空間類別,才能建立 AlloyDB Omni 資料庫叢集。
如要瞭解如何將 Symcloud Storage 設為預設儲存空間級別,請參閱將 Symcloud Storage 設為預設儲存空間級別。
如要進一步瞭解如何變更所有其他儲存空間級別的預設值,請參閱「變更預設的 StorageClass」。
建立資料庫叢集
AlloyDB Omni 資料庫叢集包含執行 AlloyDB Omni 伺服器所需的所有儲存空間和運算資源,包括主要伺服器、所有副本和所有資料。
在 Kubernetes 叢集上安裝 AlloyDB Omni 運算子後,您就能套用類似下列的資訊清單,在 Kubernetes 叢集上建立 AlloyDB Omni 資料庫叢集:
apiVersion: v1
kind: Secret
metadata:
name: db-pw-DB_CLUSTER_NAME
namespace: DB_CLUSTER_NAMESPACE
type: Opaque
data:
DB_CLUSTER_NAME: "ENCODED_PASSWORD"
---
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: DB_CLUSTER_NAME
namespace: DB_CLUSTER_NAMESPACE
spec:
databaseVersion: "16.8.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
。DB_CLUSTER_NAMESPACE
(選用):您要建立資料庫叢集的命名空間,例如my-db-cluster-namespace
。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 資訊清單和套用方式,請參閱「管理資源」。