Hinweise
Einzelserver
Für die meisten Befehle auf dieser Seite wird die AlloyDB Omni-CLI verwendet.
Informationen zum Installieren dieses Befehlszeilentools auf Ihrem Computer finden Sie unter AlloyDB Omni-CLI installieren.
Kubernetes
Sie müssen den AlloyDB Omni Kubernetes Operator in Ihrem Kubernetes-Cluster installieren, um die auf dieser Seite beschriebenen Aufgaben auszuführen.
Für die Kubernetes-spezifischen Anleitungen auf dieser Seite werden Grundkenntnisse im Umgang mit Kubernetes vorausgesetzt.
AlloyDB Omni ausführen
Die Verfahren, die Sie zum Ausführen von AlloyDB Omni verwenden, hängen davon ab, ob Sie AlloyDB Omni in einem Container auf einem einzelnen Server oder in einem Kubernetes-Cluster ausführen. Die Anleitung in diesem Abschnitt ist nach diesen Bereitstellungsarten unterteilt.
Einzelserver
Bei der Installation von AlloyDB Omni wird ein Systemdienst namens alloydb-dataplane
eingerichtet, der so konfiguriert ist, dass er bei jedem Start Ihres Computers gestartet wird.
Verwenden Sie für die grundlegende Steuerung und Überwachung von AlloyDB Omni den Befehl sudo alloydb
, wie in den folgenden Abschnitten gezeigt.
Kubernetes
Um AlloyDB Omni zu steuern und zu überwachen, aktualisieren Sie die Manifeste Ihres Kubernetes-Clusters, wie in den folgenden Abschnitten beschrieben.
AlloyDB Omni starten
Einzelserver
sudo alloydb database-server start
Informationen zum Testen der Verbindung finden Sie unter Mit dem containerisierten psql
verbinden.
Kubernetes
Starten Sie einen beendeten Datenbankcluster, indem Sie isStopped
in der Manifestdefinition auf false
setzen.
Sie können dies über die 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
Einzelserver
sudo alloydb database-server status
Kubernetes
kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME
Ersetzen Sie DB_CLUSTER_NAME
durch den Namen Ihres Datenbankclusters.
AlloyDB Omni beenden
Einzelserver
sudo alloydb database-server stop
Kubernetes
Wenn Sie einen Datenbankcluster beenden möchten, legen Sie in der Manifestdefinition isStopped
auf true
fest.
Sie können dies über die Befehlszeile mit kubectl
ausführen:
kubectl patch dbclusters.alloydbomni.dbadmin.goog dbcluster-sample -p '{"spec":{"primarySpec":{"isStopped":true}}}' --type=merge
Start beim Start deaktivieren
Wenn Sie den folgenden Befehl ausführen, wird verhindert, dass AlloyDB Omni beim Starten Ihres Computers automatisch gestartet wird.
Einzelserver
sudo systemctl disable alloydb-dataplane
Kubernetes
Diese Aufgabe ist nicht erforderlich, wenn Sie den AlloyDB Omni Kubernetes-Operator verwenden.
Start beim Hochfahren wieder aktivieren
Einzelserver
sudo systemctl enable alloydb-dataplane
Kubernetes
Diese Aufgabe ist nicht erforderlich, wenn Sie den AlloyDB Omni Kubernetes-Operator verwenden.
Verbindung zu AlloyDB Omni auf einem einzelnen Server herstellen
Der AlloyDB Omni-Container enthält eine eigene Kopie von psql
, mit der Sie eine interaktive SQL-Shell-Sitzung mit dem Datenbankserver öffnen können.
Sie können auch von außerhalb des Containers eine Verbindung zu AlloyDB Omni herstellen und dazu die PostgreSQL-kompatible Software Ihrer Wahl verwenden.
Informationen zum Herstellen einer Verbindung zu einem AlloyDB Omni-Datenbankcluster, der in einem Kubernetes-Cluster ausgeführt wird, finden Sie unter Verbindung zu AlloyDB Omni herstellen, das in Kubernetes ausgeführt wird.
Verbindung über den containerisierten psql
herstellen
Führen Sie den folgenden Befehl aus, um über die eigene containerisierte Kopie von psql
eine Verbindung zum AlloyDB Omni-Datenbankserver herzustellen:
Einzelserver
docker exec -it pg-service psql -h localhost -U postgres
Mit diesem Befehl wird eine Verbindung zum Server als Nutzerrolle postgres
hergestellt und eine postgres=#
-Eingabeaufforderung angezeigt. Sie können jetzt psql
-Befehle und SQL-Abfragen ausführen.
Um psql
zu beenden, führen Sie den Befehl \q
aus.
Verbindung über eigene Anwendungen herstellen
Jede Anwendung, die mit PostgreSQL funktioniert, kann auch mit AlloyDB Omni verwendet werden. Es sind keine Änderungen erforderlich.
Wenn Sie eine Verbindung zum AlloyDB Omni-Datenbankserver herstellen möchten, verwenden Sie einen beliebigen PostgreSQL-kompatiblen Client oder eine beliebige PostgreSQL-kompatible Codebibliothek, um eine Verbindung zum Port 5432
herzustellen. Das ist der Standardport des PostgreSQL-Datenbankservers der Maschine, auf der AlloyDB Omni ausgeführt wird.
Das funktioniert, weil der AlloyDB Omni-Container seinen eigenen Port 5432
für denselben Port des Computers freigibt, auf dem er ausgeführt wird.
Nachdem Sie eine Verbindung zum Datenbankserver hergestellt haben, können Sie Ihre Datenbanken mit DML- und SQL-Abfragen definieren, abfragen und ändern. Dazu verwenden Sie die standardmäßigen PostgreSQL-Kommunikationsprotokolle.
Da AlloyDB Omni in Ihrer eigenen Umgebung ausgeführt wird, können Sie selbst festlegen, wie Sie eine Verbindung zu AlloyDB Omni herstellen. Dazu gehört, den Netzwerkzugriff auf diesen Dienst entsprechend den Anforderungen Ihrer Anwendung zuzulassen oder einzuschränken, genau wie bei einem normalen PostgreSQL-Server.
Verbindung zu AlloyDB Omni herstellen, das auf Kubernetes ausgeführt wird
Der AlloyDB Omni Kubernetes-Operator ermöglicht Verbindungen zum Datenbankcluster aus demselben Kubernetes-Cluster, optional mit Zertifikaten für die Authentifizierung.
Verbindung über das vorinstallierte 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 zur Eingabe eines Passworts aufgefordert.
Geben Sie das Passwort ein, dessen base64-codierte Version Sie beim Erstellen des Datenbankclusters als Kubernetes-Secret angegeben haben. Wenn Sie den Datenbankcluster beispielsweise mit einem Secret von Q2hhbmdlTWUxMjM=
erstellt haben, ist das hier zu verwendende Anmeldepasswort ChangeMe123
.
Der AlloyDB Omni-Operator stellt eine Verbindung zum Server als Nutzerrolle postgres
her und zeigt einen postgres=#
-Befehls-Prompt an. Sie können jetzt psql
-Befehle und SQL-Abfragen ausführen.
Um psql
zu beenden, führen Sie den Befehl \q
aus.
Verbindung von einem separaten Pod im selben Cluster herstellen
Der Pod, auf dem der AlloyDB Omni-Datenbankcluster ausgeführt wird, lässt standardmäßig Verbindungen innerhalb desselben Kubernetes-Clusters zu. Als Best Practice empfehlen wir, alle Verbindungen zum Datenbankcluster mit TLS zu sichern.
Wenn Sie Ihr eigenes TLS-Zertifikat für den Server bereitstellen möchten, geben Sie beim Konfigurieren Ihres Datenbankclusters ein Zertifikatgeheimnis 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 für den Datenbankclient-Pod bei jeder Verbindung eine Zertifikatsvalidierung erforderlich ist, um 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-Zertifikatgeheimnis an. Mögliche Werte:
Ein TLS-Zertifikatssecret, das Sie bereits in Ihrem Kubernetes-Cluster erstellt haben. Weitere Informationen zum Arbeiten mit TLS-Zertifikat-Secrets in Kubernetes finden Sie unter TLS-Secrets.
Das standardmäßige Zertifikatssecret, das der AlloyDB Omni Kubernetes Operator für Sie erstellt, heißt
DB_CLUSTER_NAME-ca-cert
, wenn Sie kein TLS-Secret als Teil des Manifests Ihres Datenbankclusters angeben.
Wenn Ihr Client-Pod eine Verbindung zum Datenbankcluster herstellt, müssen die folgenden Umgebungsvariablen definiert werden, bevor die Verbindung hergestellt wird:
Setzen Sie
PGSSLMODE
auf"verify-ca"
.Legen Sie
PGSSLROOTCERT
auf den absoluten Pfad der relevantenca.crt
-Datei im Dateisystem des Client-Pods fest.
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 keine TLS-Secret-Konfiguration im Manifest, das Ihren Datenbankcluster definiert, angeben. Daher verwendet der AlloyDB Omni Kubernetes Operator das standardmäßige 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 angegeben haben.
Sie können den Pod jetzt verwenden, um sicher eine Verbindung zu Ihrem Datenbankcluster herzustellen. Gehen Sie dazu so vor:
Ermitteln 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 es im nächsten Schritt.Verwenden Sie
psql
, um vom Client-Pod aus eine Verbindung zu Ihrem Cluster herzustellen. Legen Sie dabei 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.