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 einfach bereitstellen und verwalten lassen. Wenn Sie GKE und Spanner zusammen verwenden, profitieren Sie von Skalierbarkeit, Zuverlässigkeit, Sicherheit und Hochverfügbarkeit auf Ihrer Anwendungsebene und Ihrer Datenbankebene.

Ihr 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 Ihre Spanner-Datenbanken mithilfe von Spanner-Clientbibliotheken abfragen. Sie können auch Ihre Anwendungen zu Ihren GKE-Knotenpools migrieren.

Informationen zum Erstellen einer Verbindung in einer Beispielumgebung finden Sie im Codelab Spanner mit GKE Autopilot verbinden.

Workload Identity aktivieren

Aktivieren Sie Workload Identity für Ihren GKE-Cluster, falls noch nicht geschehen. Sie können Workload Identity für einen neuen Cluster aktivieren, indem Sie einen neuen Knotenpool erstellen, oder Workload Identity für einen 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 der GKE-Pod ein Kubernetes-Objekt vom Typ ServiceAccount 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) zugewiesen:

      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

Nachdem der Anwendungs-Pod authentifiziert wurde, können Sie eine der Spanner-Clientbibliotheken verwenden, um die Spanner-Datenbank abzufragen.

Nächste Schritte