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-Vorgängen 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 von Google bereitgestellte Erweiterung der Kubernetes API.

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.

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 des AlloyDB Omni-Operators 1.1.0 (und höher)

Die AlloyDB Omni-Operator-Version 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, wird möglicherweise ein Fehler wie der folgende angezeigt:

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

Hinweis

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

Download- oder Installationsoption auswählen

Wenn Sie Arbeitslasten in einem generischen Kubernetes-Cluster verwalten, können Sie entweder Helm oder OLM verwenden. Helm ist ein universeller Paketmanager, der Helm-Diagramme verwendet, um beliebige Arbeitslasten, einschließlich Operatoren, in allen Kubernetes-Varianten zu installieren. Im Gegensatz dazu verwaltet OLM, die Standard- und bevorzugte Wahl auf OpenShift-Plattformen, Operator-Lebenszyklen mit speziellen OLM-Bundles.

Wählen Sie je nach Umgebung und Tools eine der folgenden Bereitstellungsmethoden aus:

Medien Downloadorte und Installationsanleitungen Bereitstellung für
AlloyDB Omni-Operator mit Helm-Diagramm AlloyDB Omni in Kubernetes installieren Sie können Ihre eigene Kubernetes-Containerumgebung verwenden, z. B. lokal, in öffentlichen Clouds, in GKE, Amazon EKS und Azure AKS.

Tipp: Wenn Ihre Continuous Delivery-Tools (CD) in Helm eingebunden sind, verwenden Sie diese Option.
AlloyDB Omni-Operator mit OLM-Bundle OperatorHub.io Sie können Ihre eigene Kubernetes-Containerumgebung verwenden, z. B. lokal, in öffentlichen Clouds, in Google Kubernetes Engine, Amazon EKS und Azure AKS.

Wenn Sie ein OLM-Bundle verwenden möchten, installieren Sie OLM auf dem Kubernetes-Cluster, bevor Sie den Operator installieren. Weitere Informationen zu OLM finden Sie unter olm.operatorframework.io.

Tipp: Wenn Ihre CD-Tools (Continuous Delivery) bereits OLM verwenden, wählen Sie diese Option aus.
OpenShift-Operator mit OLM-Bundle Openshift Container Platform Web Console OpenShift-Umgebung

OpenShift, eine Variante von Kubernetes, verwendet OLM als Standardmethode zum Verpacken und Bereitstellen von Operatoren.

Zugriff überprüfen

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

Hardware- und Softwareanforderungen erfüllen

Jeder Knoten im Kubernetes-Cluster muss Folgendes haben:

  • Mindestens zwei x86- oder AMD64-CPUs
  • Mindestens 8 GB RAM
  • Linux-Kernel-Version 4.18 oder höher
  • Kontrollgruppe (cgroup) v2 aktiviert.

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 HELM_PATH=$(curl https://storage.googleapis.com/alloydb-omni-operator/latest)
    export OPERATOR_VERSION="${HELM_PATH%%/*}"
    
  2. Laden Sie den AlloyDB Omni-Operator herunter:
    curl -X GET -o "./alloydbomni-operator-${OPERATOR_VERSION}.tgz" "https://storage.googleapis.com/storage/v1/b/alloydb-omni-operator/o/$(echo ${HELM_PATH} | sed 's/\//%2F/g')?alt=media"
    
  3. Installieren Sie den AlloyDB Omni-Operator:
    helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
    --create-namespace \
    --namespace alloydb-omni-system \
    $(helm install --help | grep -q -- '--rollback-on-failure' && echo '--rollback-on-failure' || echo '--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. Führen Sie eine Bereinigung durch, indem Sie die heruntergeladene Installationsdatei für den AlloyDB Omni-Operator löschen. 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 die Seite AlloyDB Omni-Operator auf.

  2. Klicken Sie auf Installieren. Falls noch nicht geschehen, folgen Sie der Anleitung, um nur den OLM-Operator und den OperatorHub.io-Katalog zu installieren.

  3. Erstellen Sie den Namespace alloydb-omni-system, falls er noch nicht vorhanden ist.

    kubectl create ns alloydb-omni-system
    
  4. Richten Sie den OLM OperatorGroup ein, um sicherzustellen, dass der Operator clusterbezogen ist.

    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. Installieren Sie den Operator mithilfe einer OLM-Abo-Ressource.

    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. Installieren Sie das Standardzertifikat ClusterIssuer. Dieser Schritt ist optional, wenn Sie benutzerdefinierte Zertifikatsaussteller verwenden.

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

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 Operatoren > OperatorHub aus.

  2. Suchen Sie über das Suchfeld nach dem AlloyDB Omni-Operator.

  3. Klicken Sie im Bereich „AlloyDB Omni-Operator“ auf Installieren.

  4. Installieren Sie das Standardzertifikat ClusterIssuer. Dieser Schritt ist optional, wenn Sie benutzerdefinierte Zertifikatsaussteller verwenden.

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

GDC Connected Storage konfigurieren

Wenn Sie den AlloyDB Omni-Operator auf einem GDC Connected-Cluster installieren möchten, müssen Sie zusätzliche Schritte ausführen, um den Speicher zu konfigurieren, da für GDC Connected-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-Speicherklasse ä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.

So erstellen Sie einen AlloyDB Omni-Datenbankcluster:

  1. Erstellen Sie einen dedizierten Namespace für Ihren Datenbankcluster. Dies verbessert die Isolation und Sicherheit.

    kubectl create namespace DB_CLUSTER_NAMESPACE
    

    Ersetzen Sie DB_CLUSTER_NAMESPACE durch den Namespace, in dem Sie den Datenbankcluster erstellen möchten, z. B. my-db-cluster-namespace.

  2. Erstellen Sie eine Manifestdatei mit dem Namen db-cluster.yaml und dem folgenden Inhalt. In diesem Manifest werden sowohl das Secret für das Datenbankpasswort als auch die DBCluster-Ressource selbst definiert.

    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: "15.12.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.

    • ENCODED_PASSWORD: Das Datenbank-Anmeldepasswort 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.

  3. Wenden Sie das Manifest auf Ihren Kubernetes-Cluster an:

    kubectl apply -f db-cluster.yaml
    

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 Beispielmanifeste finden Sie unter Beispiele für Kubernetes-Konfigurationen. Weitere Informationen zu Kubernetes-Manifesten und dazu, wie Sie sie anwenden, finden Sie unter Ressourcen verwalten.

Nächste Schritte