In diesem Dokument wird beschrieben, wie Sie eine Spanner Omni-Bereitstellung in Kubernetes erstellen. Diese Bereitstellung ist nicht verschlüsselt. Wenn Sie schnell eine Test- oder Proof-of-Concept-Umgebung einrichten möchten, um Spanner Omni zu testen, ist das Erstellen einer Bereitstellung ohne Verschlüsselung der schnellste Weg, da Sie keine mTLS- oder andere Sicherheitsmaßnahmen konfigurieren müssen. Aufgrund von Sicherheitsrisiken wie unverschlüsseltem Netzwerkverkehr und offenem Zugriff wird diese Konfiguration jedoch nicht für Produktionsumgebungen empfohlen. Sie können zwischen einer Bereitstellung auf einem einzelnen Server oder einer regionalen Bereitstellung in mehreren Zonen wählen.
Die Vorschauversion von Spanner Omni unterstützt keine TLS-Verschlüsselung und schreibt 90 Tage nach der Erstellung einer Bereitstellung keine Daten mehr. Wenn Sie Vorabzugriff auf die Version mit allen Funktionen erhalten möchten, wenden Sie sich an Google.
Hinweis
Prüfen Sie vor der Bereitstellung von Spanner Omni, ob Ihre Umgebung die folgenden Anforderungen erfüllt:
Kubernetes-Cluster erstellen Die Konfiguration unterstützt Google Kubernetes Engine (GKE) und Amazon Elastic Kubernetes Service (Amazon EKS). Möglicherweise müssen Sie die Konfiguration anpassen, damit sie in anderen Umgebungen funktioniert.
Achten Sie darauf, dass der Kubernetes-Cluster auf das Artifact Registry-Artefakt zugreifen kann, in dem der Spanner Omni-Container gehostet wird.
Installieren und konfigurieren Sie das
kubectl-Befehlszeilentool und Helm.Wenn Sie die Kubernetes-Umgebung auf Maschinen der vSphere-Virtualisierungsplattform einrichten, deaktivieren Sie die TSC-Virtualisierung (Time Stamp Counter), indem Sie
monitor_control.virtual_rdtsc = FALSEin die Konfigurationsdatei.vmxder virtuellen Maschine einfügen. So kann TrueTime richtig funktionieren.Prüfen Sie, ob Ihre Umgebung die Systemanforderungen für Spanner Omni erfüllt.
Wählen Sie eine Topologie für die Bereitstellung aus.
Helm-Konfiguration vorbereiten
Erstellen Sie eine Helm-Konfiguration. Weitere Informationen finden Sie unter Helm-Konfiguration erstellen.
Bereitstellung erstellen
Installieren Sie das Helm-Diagramm mit den spezifischen Überschreibungen. Im Folgenden finden Sie Beispielbefehle für die häufigsten Bereitstellungen:
Beispiel 1: Spanner Omni auf einem einzelnen Server in GKE mit dem Monitoring-Stack ausführen
Führen Sie den folgenden Befehl aus, um Spanner Omni auf einem einzelnen Server in GKE mit dem Monitoring-Stack auszuführen:
kubectl create ns monitoring
helm upgrade --install spanner-omni oci://us-docker.pkg.dev/spanner-omni/charts/spanner-omni --version 0.4.0 \
--set global.platform=gke \
--set deployment.singleServer=true \
--set monitoring.enabled=true \
--namespace spanner-ns \
--create-namespace
Beispiel 2: Spanner Omni auf mehreren Servern in GKE ausführen
Führen Sie den folgenden Befehl aus, um Spanner Omni auf mehreren Servern in einer einzelnen Zone (us-central1-a) in GKE auszuführen:
kubectl create ns monitoring
helm upgrade --install spanner-omni oci://us-docker.pkg.dev/spanner-omni/charts/spanner-omni --version 0.4.0 \
--set global.platform=gke \
--set deployment.replicasPerZone=5 \
--set deployment.rootServersPerZone=3 \
--set-json 'locations=[{"name":"us-central1","zones":[{"name":"us-central1-a","shortName":"a"}]}]' \
--set monitoring.enabled=true \
--namespace spanner-ns \
--create-namespace
Die Anzahl der Root-Server pro Zone muss eine ungerade Zahl zwischen 1 und 9 (einschließlich) sein, um die Konsistenz zu gewährleisten. Wenn die Anzahl der Server eine gerade Zahl ist, können Bereitstellungen fehlschlagen. Weisen Sie beim Konfigurieren Ihrer Zonen Server als Stammserver zu. Wir empfehlen, eine für die Entwicklung oder das Testen und drei für hochverfügbare Produktionszonen zu verwenden.
Beispiel 3: Hochverfügbare regionale Bereitstellung
Bei dieser Bereitstellung werden drei Kopien der Daten erstellt, sodass Spanner Omni auch dann weiter funktioniert, wenn eine Zone ausfällt. Führen Sie den folgenden Befehl aus, um diese Bereitstellung zu erstellen:
kubectl create ns monitoring
helm upgrade --install spanner-omni oci://us-docker.pkg.dev/spanner-omni/charts/spanner-omni --version 0.4.0 \
--set global.platform=gke \
--set-json 'locations=[{"name":"us-central1","zones":[{"name":"us-central1-a","shortName":"a"},{"name":"us-central1-c","shortName":"b"},{"name":"us-central1-d","shortName":"c"}]}]' \
--set monitoring.enabled=true \
--namespace spanner-ns \
--create-namespace
Status der Pods prüfen
Führen Sie den folgenden Befehl aus, um den Status der Pods zu prüfen:
kubectl get pods --watch --namespace spanner-ns
Beispielausgabe:
NAME READY STATUS RESTARTS AGE
spanner-a-0 1/1 Running 0 4m
spanner-a-1 1/1 Running 0 4m
spanner-a-2 1/1 Running 0 4m
spanner-a-3 1/1 Running 0 4m
spanner-a-4 1/1 Running 0 4m
spanner-b-0 1/1 Running 0 4m
spanner-b-1 1/1 Running 0 4m
spanner-b-2 1/1 Running 0 4m
spanner-b-3 1/1 Running 0 4m
spanner-b-4 1/1 Running 0 4m
spanner-c-0 1/1 Running 0 4m
spanner-c-1 1/1 Running 0 4m
spanner-c-2 1/1 Running 0 4m
spanner-c-3 1/1 Running 0 4m
spanner-c-4 1/1 Running 0 4m
Mit Spanner Omni interagieren
Nachdem die Pods ausgeführt werden, können Sie mit der Spanner Omni CLI eine Verbindung zu Ihrer Bereitstellung herstellen und mit ihr interagieren.
Führen Sie den folgenden Befehl aus, um die Dienstadresse abzurufen:
kubectl get service spanner -n spanner-nsEXTERNAL-IP:PORTist die DEPLOYMENT_ENDPOINT für Ihr Deployment.Laden Sie die Spanner Omni CLI aus dem Cloud Storage-Bucket
spanner-omniherunter, falls noch nicht geschehen.Mit der Spanner Omni CLI können Sie eine GoogleSQL- oder PostgreSQL-Datenbank erstellen und mit ihr interagieren.
GoogleSQL
Führen Sie Folgendes aus, um eine GoogleSQL-Datenbank zu erstellen und mit ihr zu interagieren:
spanner databases create DATABASE_NAME --deployment-endpoint DEPLOYMENT_ENDPOINT spanner sql --database=DATABASE_NAME --deployment-endpoint DEPLOYMENT_ENDPOINTPostgreSQL
Führen Sie Folgendes aus, um eine PostgreSQL-Datenbank zu erstellen und mit ihr zu interagieren:
spanner databases create POSTGRESQL_DATABASE_NAME --database_dialect POSTGRESQL --deployment-endpoint DEPLOYMENT_ENDPOINT spanner sql --database=POSTGRESQL_DATABASE_NAME --deployment-endpoint DEPLOYMENT_ENDPOINT ``` You can also interact with a PostgreSQL database by following the instructions in [Connect using PGAdapter](/spanner-omni/pgadapter) to configure PGAdapter and use PostgreSQL tools, such as `psql`, with your PostgreSQL-dialect databases.
Bereitstellung beobachten (optional)
Sie können Spanner Omni mit monitoring.enabled=true einrichten, um Prometheus so zu konfigurieren, dass Messwerte aufgenommen werden, die von Spanner Omni exportiert werden.
So können Sie Probleme mit Ihrer Bereitstellung analysieren und beheben. Weitere Informationen finden Sie unter:
Prometheus-Benachrichtigungen zum Überwachen von Spanner Omni verwenden
Grafana-Dashboards zum Überwachen von Spanner Omni verwenden
Führen Sie die folgenden Befehle aus, um die Dienstdetails abzurufen:
# Prometheus service details. Default port is 9090.
kubectl get service prometheus-service -n monitoring
# Grafana service details. Default port is 3000.
kubectl get service grafana -n monitoring