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 Einzelserver- oder einer regionalen Bereitstellung über mehrere Zonen hinweg 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 dem Deployment 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 Ihre Bereitstellung aus.
Helm-Konfiguration vorbereiten
Helm-Konfiguration erstellen 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-central1-docker.pkg.dev/spanner-omni/helm-charts/spanner-omni --version 0.1.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-central1-docker.pkg.dev/spanner-omni/helm-charts/spanner-omni --version 0.1.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 Stammserver pro Zone muss eine ungerade Zahl zwischen 1 und 9 sein, um das Quorum für die Konsistenz zu gewährleisten. Wenn die Anzahl der Server eine gerade Zahl ist, können Bereitstellungen fehlschlagen. Wenn Sie Ihre Zonen konfigurieren, weisen Sie Server als Stammserver zu. Wir empfehlen, einen 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 gespeichert, 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-central1-docker.pkg.dev/spanner-omni/helm-charts/spanner-omni --version 0.1.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
Sobald die Pods ausgeführt werden, können Sie eine Verbindung zu Ihrer Bereitstellung herstellen und über die Spanner Omni CLI mit ihr interagieren.
Führen Sie den folgenden Befehl aus, um die Dienstadresse abzurufen:
kubectl get service spanner -n spanner-nsDie
EXTERNAL-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 erfasst 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 Monitoring 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