Connetti Spanner a un cluster GKE

In questa pagina viene descritto come concedere a Google Kubernetes Engine (GKE) le autorizzazioni del cluster per accedere al database Spanner.

GKE è un servizio Kubernetes gestito che semplifica il deployment e gestire le applicazioni containerizzate. Utilizzando GKE Con Spanner, puoi sfruttare la scalabilità, affidabilità, sicurezza e alta disponibilità a livello di applicazione e il livello del database.

Il tuo cluster GKE può accedere all'API Spanner tramite Identità carico di lavoro. Workload Identity consente a un account di servizio Kubernetes nel tuo cluster di agire come account di servizio IAM. L'account di servizio IAM fornisce il valore Application predefinito Credenziali per i tuoi pod, in modo che non sia necessario configurare ogni pod per l'utilizzo credenziale dell'utente.

Dopo aver configurato le applicazioni per l'autenticazione mediante Workload Identity, puoi utilizzare le librerie client di Spanner per eseguire query sui database Spanner. Puoi anche eseguire la migrazione dei tuoi ai pool di nodi GKE.

Per creare una connessione in un ambiente di esempio, prova la Connessione di Spanner con il codelab GKE Autopilot.

Abilita Workload Identity

Se non l'hai ancora fatto, abilita Workload Identity per il tuo cluster GKE. Puoi abilitare Workload Identity su un nuovo un cluster creando un nuovo pool di nodi oppure abilitare Workload Identity su un pool di nodi esistente. Cluster Autopilot di GKE con Workload Identity abilitato per impostazione predefinita. Per ulteriori informazioni, vedi Abilita Workload Identity.

Autentica la connessione a Spanner con Workload Identity

Configura le tue applicazioni per l'autenticazione in Google Cloud utilizzando Workload Identity.

  1. Assicurati che il pod GKE utilizzi un oggetto ServiceAccount di Kubernetes come descritto in Configurare autorizzazione e entità.

  2. Crea un criterio di autorizzazione IAM che conceda i necessari i ruoli IAM di Spanner per ServiceAccount oggetto. L'esempio seguente concede il database Spanner Ruolo utente (roles/spanner.databaseUser):

      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
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto del cluster GKE.
    • PROJECT_NUMBER: il valore numerico numero di progetto Google Cloud.
    • NAMESPACE: lo spazio dei nomi Kubernetes contiene l'account di servizio.
    • KSA_NAME: il nome dell'account di servizio.

Connetti database Spanner

Dopo aver autenticato il pod dell'applicazione, puoi utilizzare uno dei Librerie client di Spanner per eseguire una query sul database Spanner.

Passaggi successivi