Spanner mit einem GKE-Cluster verbinden

Auf dieser Seite wird beschrieben, wie Sie Ihrem GKE-Cluster (Google Kubernetes Engine) Berechtigungen für den Zugriff auf Ihre Spanner-Datenbank gewähren.

GKE ist ein verwalteter Kubernetes-Dienst, mit dem sich Containeranwendungen ganz einfach bereitstellen und verwalten lassen. Wenn Sie GKE und Spanner zusammen verwenden, profitieren Sie von Skalierbarkeit, Zuverlässigkeit, Sicherheit und Hochverfügbarkeit auf Anwendungsebene und Datenbankebene.

Der GKE-Cluster kann über Workload Identity auf die Spanner API zugreifen. Mit Workload Identity kann ein Kubernetes-Dienstkonto in Ihrem Cluster als IAM-Dienstkonto fungieren. Das IAM-Dienstkonto stellt Standardanmeldedaten für Anwendungen für Ihre Pods bereit, sodass Sie nicht jeden Pod für die Verwendung Ihrer persönlichen Nutzeranmeldedaten konfigurieren müssen.

Nachdem Sie Ihre Anwendungen für die Authentifizierung mit Workload Identity konfiguriert haben, können Sie Spanner-Clientbibliotheken verwenden, um Ihre Spanner-Datenbanken abzufragen. Sie können auch Ihre Anwendungen in Ihre GKE-Knotenpools migrieren.

Im Codelab Spanner mit GKE Autopilot verbinden erfahren Sie, wie Sie eine Verbindung in einer Beispielumgebung erstellen.

Workload Identity aktivieren

Aktivieren Sie Workload Identity für Ihren GKE-Cluster, falls noch nicht geschehen. Sie können Workload Identity in einem neuen Cluster aktivieren, indem Sie einen neuen Knotenpool erstellen, oder Sie können Workload Identity in einem vorhandenen Knotenpool aktivieren. Für GKE Autopilot-Cluster ist Workload Identity standardmäßig aktiviert. Weitere Informationen finden Sie unter Workload Identity aktivieren.

Verbindung zu Spanner mit Workload Identity authentifizieren

Konfigurieren Sie Ihre Anwendungen mit Workload Identity für die Authentifizierung bei Google Cloud.

  1. Achten Sie darauf, dass Ihr GKE-Pod ein Kubernetes-ServiceAccount-Objekt verwendet, wie unter Autorisierung und Hauptkonten konfigurieren beschrieben.

  2. Erstellen Sie eine IAM-Zulassungsrichtlinie, die dem Kubernetes-Objekt ServiceAccount die erforderlichen Spanner-IAM-Rollen zuweist. Im folgenden Beispiel wird die Rolle des Spanner-Datenbanknutzers (roles/spanner.databaseUser) gewährt:

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME \
          --role=roles/spanner.databaseUser \
          --condition=None
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die Projekt-ID des GKE-Cluster.
    • PROJECT_NUMBER: Die numerische Google Cloud-Projektnummer.
    • NAMESPACE: Der Kubernetes-Namespace, der das Dienstkonto enthält.
    • KSA_NAME: Der Name des Dienstkontos.

Spanner-Datenbanken verbinden

Nach der Authentifizierung des Anwendungs-Pods können Sie eine der Spanner-Clientbibliotheken verwenden, um Ihre Spanner-Datenbank abzufragen.

Nächste Schritte