AlloyDB Omni in Kubernetes installieren

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite finden Sie eine Übersicht über den AlloyDB Omni Kubernetes-Operator sowie eine Anleitung zur Verwendung des Operators zum Bereitstellen von AlloyDB Omni in einem Kubernetes-Cluster. Auf dieser Seite werden Grundkenntnisse im Umgang mit Kubernetes vorausgesetzt.

Eine Anleitung zum Installieren von AlloyDB Omni in einer Standard-Linux-Umgebung finden Sie unter AlloyDB Omni installieren.

Übersicht

Wenn Sie AlloyDB Omni in einem Kubernetes-Cluster bereitstellen möchten, installieren Sie den AlloyDB Omni-Operator, eine Erweiterung der Kubernetes API, die von Google bereitgestellt wird.

Sie konfigurieren und steuern einen Kubernetes-basierten AlloyDB Omni-Datenbankcluster, indem Sie deklarative Manifestdateien mit dem kubectl-Dienstprogramm kombinieren, genau wie bei jeder anderen Kubernetes-basierten Bereitstellung. Sie verwenden nicht die AlloyDB Omni-Befehlszeile, die für die Bereitstellung auf einzelnen Linux-Computern und nicht auf Kubernetes-Clustern vorgesehen ist.

Basis-Image

Ab Version 1.5.0 basieren die Kubernetes-Images des AlloyDB Omni-Operators auf dem Universal Base Image (UBI) 9 von Red Hat. Diese Umstellung verbessert die Sicherheit, Konsistenz und Compliance Ihrer Bereitstellungen.

Kompatibilität mit AlloyDB Omni Operator 1.1.0 (und höher)

Die AlloyDB Omni-Operatorversion 1.1.0 ist nicht mit den Versionen 15.5.3 und 15.5.4 von AlloyDB Omni kompatibel. Wenn Sie eine dieser Versionen von AlloyDB Omni verwenden, erhalten Sie möglicherweise einen Fehler wie den folgenden:

Error from server (Forbidden): error when creating "[...]/dbcluster.yaml": admission webhook "vdbcluster.alloydbomni.dbadmin.goog" denied the request: unsupported database version 15.5.3

Hinweise

Bevor Sie AlloyDB Omni in einem Kubernetes-Cluster mit dem AlloyDB Omni-Operator installieren, müssen Sie die folgenden Anforderungen erfüllen.

Download- oder Installationsoption auswählen

Wählen Sie eine der folgenden Download- und Installationsoptionen aus:

Medien Downloadorte und Installationsanleitungen Bereitstellung für
OpenShift-Operator mit OLM-Bundle Openshift Container Platform Web Console OpenShift-Umgebung
Kubernetes-Operator mit OLM-Bundle Artifacthub.io Sie können Ihre eigene Kubernetes-Containerumgebung verwenden, z. B. lokal, in öffentlichen Clouds, in Google Kubernetes Engine, Amazon EKS und Azure AKS.
Kubernetes-Operator mit Helm-Diagramm AlloyDB Omni in Kubernetes installieren (diese Seite) Sie können Ihre eigene Kubernetes-Containerumgebung verwenden, z. B. lokal, in öffentlichen Clouds, in GKE, Amazon EKS und Azure AKS.

Zugriff überprüfen

Prüfen Sie, ob Sie Zugriff auf Folgendes haben:

Hardware- und Softwareanforderungen erfüllen

Achten Sie darauf, dass jeder Knoten im Kubernetes-Cluster die folgenden Anforderungen erfüllt:

  • Mindestens zwei x86- oder AMD64-CPUs
  • Mindestens 8 GB RAM
  • Linux-Kernel-Version 4.18 oder höher
  • Die Kontrollgruppe (cgroup v2) ist aktiviert. Informationen zum Prüfen der cgroup-Konfiguration finden Sie unter Cgroup-Konfiguration prüfen.

AlloyDB Omni-Operator installieren

Sie können den AlloyDB Omni-Operator mit verschiedenen Methoden installieren, darunter Helm und Operator Lifecycle Manager (OLM).

Helm

So installieren Sie den AlloyDB Omni-Operator:

  1. Legen Sie die folgenden Umgebungsvariablen fest:
    export GCS_BUCKET=alloydb-omni-operator
    export HELM_PATH=$(gcloud storage cat gs://$GCS_BUCKET/latest)
    export OPERATOR_VERSION="${HELM_PATH%%/*}"
    
  2. Laden Sie den AlloyDB Omni-Operator herunter:
    gcloud storage cp gs://$GCS_BUCKET/$HELM_PATH ./ --recursive
    
  3. Installieren Sie den AlloyDB Omni-Operator:
    helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
    --create-namespace \
    --namespace alloydb-omni-system \
    --atomic \
    --timeout 5m
    

    Bei einer erfolgreichen Installation wird die folgende Ausgabe angezeigt:

    NAME: alloydbomni-operator
    LAST DEPLOYED: CURRENT_TIMESTAMP
    NAMESPACE: alloydb-omni-system
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    
  4. Löschen Sie zum Bereinigen die heruntergeladene Installationsdatei für den AlloyDB Omni-Operator. Die Datei hat den Namen alloydbomni-operator-VERSION_NUMBER.tgz und befindet sich in Ihrem aktuellen Arbeitsverzeichnis.

OLM

So installieren Sie den AlloyDB Omni-Operator mit dem Operator Lifecycle Manager:

  1. Rufen Sie https://operatorhub.io/operator/alloydb-omni-operator auf.

  2. Klicken Sie auf die Schaltfläche Installieren, um die Anleitung aufzurufen.

  3. Führen Sie alle Installationsschritte aus.

  4. Nachdem Sie den AlloyDB Omni-Operator installiert haben, erstellen Sie die cert-manager-Ressourcen manuell in Ihrem Cluster. Dies ist eine Anforderung. Verwenden Sie diese Befehle:

    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

    Ersetzen Sie NAMESPACE durch den Namespace, in dem sich Ihr Operator befindet, z. B. alloydb-omni-system.

OLM

Wenn Sie den AlloyDB Omni-Operator in Ihrer Red Hat OpenShift-Umgebung mit dem OLM installieren möchten, melden Sie sich in Ihrer Red Hat OpenShift-Webkonsole an.

  1. Wählen Sie Operators > OperatorHub aus.

  2. Suchen Sie im Suchfeld nach dem AlloyDB Omni-Operator.

    AlloyDB Omni Operator Hub
    Abbildung 1: Der AlloyDB Omni-Operator im OperatorHub
  3. Klicken Sie im Bereich des AlloyDB Omni-Operators auf Installieren.

    AlloyDB Omni-Operatorbereich
    Abbildung 2: Der AlloyDB Omni-Operatorbereich
  4. Nachdem Sie den AlloyDB Omni-Operator installiert haben, erstellen Sie die cert-manager-Ressourcen manuell in Ihrem Cluster. Dies ist eine Anforderung. Verwenden Sie diese Befehle:

    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

    Ersetzen Sie NAMESPACE durch den Namespace, in dem sich Ihr Operator befindet, z. B. alloydb-omni-system.

GDC Connected-Speicher konfigurieren

Wenn Sie den AlloyDB Omni-Operator auf einem GDC-verbundenen-Cluster installieren möchten, müssen Sie zusätzliche Schritte ausführen, um den Speicher zu konfigurieren, da für GDC-verbundene Cluster keine Standardspeicherklasse festgelegt ist. Sie müssen eine Standardspeicherklasse festlegen, bevor Sie einen AlloyDB Omni-Datenbankcluster erstellen.

Informationen zum Festlegen von Symcloud Storage als Standardspeicherklasse finden Sie unter Symcloud Storage als Standardspeicherklasse festlegen.

Weitere Informationen zum Ändern der Standardeinstellung für alle anderen Speicherklassen finden Sie unter Standard-StorageClass ändern.

Datenbankcluster erstellen

Ein AlloyDB Omni-Datenbankcluster enthält alle Speicher- und Rechenressourcen, die zum Ausführen eines AlloyDB Omni-Servers erforderlich sind, einschließlich des primären Servers, aller Replikate und aller Ihrer Daten.

Nachdem Sie den AlloyDB Omni-Operator in Ihrem Kubernetes-Cluster installiert haben, können Sie einen AlloyDB Omni-Datenbankcluster im Kubernetes-Cluster erstellen, indem Sie ein Manifest anwenden, das dem folgenden ähnelt:

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

Ersetzen Sie Folgendes:

  • DB_CLUSTER_NAME: Der Name dieses Datenbankclusters, z. B. my-db-cluster.

  • DB_CLUSTER_NAMESPACE (optional): Der Namespace, in dem Sie den Datenbankcluster erstellen möchten, z. B. my-db-cluster-namespace.

  • ENCODED_PASSWORD: Das Datenbankanmeldepasswort für die Standardnutzerrolle postgres, codiert als Base64-String, z. B. Q2hhbmdlTWUxMjM= für ChangeMe123.

  • CPU_COUNT: Die Anzahl der CPUs, die für jede Datenbankinstanz in diesem Datenbankcluster verfügbar sind.

  • MEMORY_SIZE: die Menge an Arbeitsspeicher pro Datenbankinstanz dieses Datenbankclusters. Wir empfehlen, diesen Wert auf 8 GB pro CPU festzulegen. Wenn Sie beispielsweise cpu weiter oben in diesem Manifest auf 2 gesetzt haben, empfehlen wir, memory auf 16Gi zu setzen.

  • DISK_SIZE: die Laufwerksgröße pro Datenbankinstanz, z. B. 10Gi.

Nachdem Sie dieses Manifest angewendet haben, enthält Ihr Kubernetes-Cluster einen AlloyDB Omni-Datenbankcluster mit der angegebenen Arbeitsspeicher-, CPU- und Speicherkonfiguration. Informationen zum Herstellen einer Testverbindung mit dem neuen Datenbankcluster finden Sie unter Mit dem vorinstallierten psql verbinden.

Weitere Informationen zu Kubernetes-Manifesten und dazu, wie Sie sie anwenden, finden Sie unter Ressourcen verwalten.

Nächste Schritte