AlloyDB Omni ausführen und eine Verbindung herstellen

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite wird beschrieben, wie Sie AlloyDB Omni ausführen und eine Verbindung dazu herstellen nachdem Sie es in Ihrem Kubernetes-Cluster bereitgestellt haben.

Hinweis

Sie müssen den AlloyDB Omni Kubernetes-Operator in Ihrem Kubernetes-Cluster installieren, um die auf dieser Seite beschriebenen Aufgaben auszuführen.

Die Kubernetes-spezifischen Anweisungen auf dieser Seite setzen Grundkenntnisse im Umgang mit Kubernetes voraus.

AlloyDB Omni ausführen

Die Verfahren zum Ausführen von AlloyDB Omni hängen davon ab, ob Sie AlloyDB Omni in einem Kubernetes-Cluster ausführen.

Wenn Sie AlloyDB Omni steuern und überwachen möchten, aktualisieren Sie die Manifeste Ihres Kubernetes-Clusters, wie in den folgenden Abschnitten beschrieben.

AlloyDB Omni starten

Starten Sie einen angehaltenen Datenbankcluster, indem Sie isStopped in der Manifestdefinition auf false setzen.

Sie können dies in der Befehlszeile mit kubectl ausführen:

  kubectl patch dbclusters.alloydbomni.dbadmin.goog dbcluster-sample \
  -p '{"spec":{"primarySpec":{"isStopped":false}}}' --type=merge

Status von AlloyDB Omni prüfen

kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME

Ersetzen Sie DB_CLUSTER_NAME durch den Namen Ihres Datenbank clusters.

AlloyDB Omni anhalten

Kubernetes

Wenn Sie einen Datenbankcluster anhalten möchten, setzen Sie isStopped in der Manifestdefinition auf true.

Sie können dies in der Befehlszeile mit kubectl ausführen:

  kubectl patch dbclusters.alloydbomni.dbadmin.goog dbcluster-sample -p '{"spec":{"primarySpec":{"isStopped":true}}}' --type=merge

Verbindung zu AlloyDB Omni herstellen, das in Kubernetes ausgeführt wird

Der AlloyDB Omni Kubernetes-Operator ermöglicht Verbindungen zum Datenbankcluster innerhalb desselben Kubernetes-Clusters, optional mit Zertifikaten zur Authentifizierung.

Verbindung mit dem vorinstallierten psql herstellen

Sie können eine Testverbindung mit einem psql-Client herstellen, der bereits auf dem Pod installiert ist, auf dem die Datenbank ausgeführt wird.

Führen Sie dazu die folgenden Befehle aus:

export DBPOD=`kubectl get pod --selector=alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`
kubectl exec -ti $DBPOD -c database -- /bin/psql -h localhost -U postgres

Ersetzen Sie DB_CLUSTER_NAME durch den Namen Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.

Nachdem Sie den Befehl eingegeben haben, werden Sie vom Datenbankserver aufgefordert, ein Passwort einzugeben. Geben Sie das Passwort ein, dessen base64-codierte Version Sie beim Erstellen des Datenbank clustersals Kubernetes-Secret angegeben haben. Wenn Sie den Datenbankcluster beispielsweise mit einem Secret von Q2hhbmdlTWUxMjM= erstellt haben, lautet das Anmeldepasswort ChangeMe123.

Der AlloyDB Omni-Operator stellt eine Verbindung zum Server als die postgres Nutzerrolle her und zeigt eine postgres=# Eingabeaufforderung an. Sie können jetzt run psql Befehle und SQL-Abfragen ausführen.

Führen Sie den Befehl \q aus, um psql zu beenden.

Verbindung von einem separaten Pod im selben Cluster herstellen

Der Pod, auf dem der AlloyDB Omni-Datenbankcluster ausgeführt wird, ermöglicht standardmäßig Verbindungen innerhalb desselben Kubernetes-Clusters. Als Best Practice empfehlen wir, alle Verbindungen zum Datenbankcluster mit TLS zu sichern.

Wenn Sie ein eigenes TLS-Serverzertifikat bereitstellen möchten, geben Sie beim Konfigurieren des Datenbankclusters ein Zertifikatssecret an. Wenn Sie kein Zertifikatssecret angeben, erstellt der AlloyDB Omni Kubernetes-Operator ein TLS-Zertifikatssecret für Sie, das auf einem Zertifikat basiert, das von einer selbst signierten Zertifizierungsstelle signiert wurde. In beiden Fällen können Sie festlegen, dass Ihr Datenbankclient-Pod bei jeder Verbindung eine Zertifikatsvalidierung erfordert, um die TLS-Sicherheit zu gewährleisten.

So stellen Sie sichere Datenbankverbindungen mit TLS her:

  • Geben Sie im Manifest, das den Pod definiert, der die Clientverbindungen herstellt, ein TLS-Zertifikatssecret an. Diese Rollen stehen zur Verfügung:

    • Ein TLS-Zertifikatssecret, das Sie bereits in Ihrem Kubernetes-Cluster erstellt haben. Weitere Informationen zum Arbeiten mit TLS Zertifikatssecrets in Kubernetes finden Sie unter TLS Secrets.

    • Das Standardzertifikatssecret, das der AlloyDB Omni Kubernetes-Operator erstellt für Sie, mit dem Namen DB_CLUSTER_NAME-ca-cert, wenn Sie im Manifest Ihres Datenbankclusters kein TLS-Secret angeben.

  • Wenn Ihr Client-Pod eine Verbindung zum Datenbankcluster herstellt, müssen die folgenden Umgebungsvariablen vor dem Herstellen der Verbindung definiert werden:

    • Setzen Sie PGSSLMODE auf "verify-ca".

    • Setzen Sie PGSSLROOTCERT auf den absoluten Pfad der entsprechenden ca.crt-Datei im Dateisystem des Client-Pods.

Das folgende Beispielmanifest zeigt, wie Sie einen Pod konfigurieren, der das offizielle PostgreSQL-Image installiert, das den psql-Befehlszeilenclient enthält. Im Beispiel wird davon ausgegangen, dass Sie im Manifest, das Ihren Datenbankcluster definiert, keine TLS-Secret-Konfiguration angeben. Daher verwendet der AlloyDB Omni Kubernetes-Operator das Standard-TLS-Secret mit dem Namen dbs-al-cert-DB_CLUSTER_NAME.

apiVersion: v1
kind: Pod
metadata:
  name: postgres
spec:
  containers:
  - image: "docker.io/library/postgres:latest"
    command:
      - "sleep"
      - "604800"
    imagePullPolicy: IfNotPresent
    name: db-client
    volumeMounts:
    - name: ca-cert
      mountPath: "/DB_CLUSTER_NAME-ca-cert"
      readOnly: true
  volumes:
  - name: ca-cert
    secret:
      secretName: dbs-al-cert-DB_CLUSTER_NAME
  restartPolicy: Always

Ersetzen Sie DB_CLUSTER_NAME durch den Namen Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.

Sie können jetzt mit dem Pod eine sichere Verbindung zu Ihrem Datenbankcluster herstellen. Gehen Sie dazu so vor:

  1. Bestimmen Sie die interne IP-Adresse Ihres Datenbankclusters:

    kubectl get dbclusters.alloydbomni.dbadmin.goog

    Die Ausgabe sollte so aussehen:

    NAME              PRIMARYENDPOINT   PRIMARYPHASE   DBCLUSTERPHASE
    DB_CLUSTER_NAME   IP_ADDRESS        Ready          DBClusterReady
    

    Notieren Sie sich IP_ADDRESS und verwenden Sie sie im nächsten Schritt.

  2. Verwenden Sie psql, um vom Client-Pod aus eine Verbindung zu Ihrem Cluster herzustellen. Legen Sie dazu die Umgebungsvariablen fest, die die TLS-Zertifikatsprüfung aktivieren und erfordern:

    kubectl exec -it postgres -- bash
    PGSSLMODE="verify-ca" PGSSLROOTCERT=/DB_CLUSTER_NAME-ca-cert/ca.crt psql -h IP_ADDRESS -p 5432 -U postgres -d postgres

    Ersetzen Sie IP_ADDRESS durch die interne IP-Adresse, die Sie im vorherigen Schritt ermittelt haben.

Nächste Schritte