Conecta Spanner a un clúster de GKE

En esta página, se describe cómo otorgar a tu Google Kubernetes Engine (GKE) los permisos del clúster para acceder a la base de datos de Spanner.

GKE es un servicio administrado de Kubernetes que facilita la implementación y administrar aplicaciones alojadas en contenedores. Con GKE y Spanner en conjunto, pueden aprovechar la escalabilidad, confiabilidad, seguridad y alta disponibilidad en tu capa de aplicación y en la capa de la base de datos.

Tu clúster de GKE puede acceder a la API de Spanner a través de la federación de identidades para cargas de trabajo para GKE. La Federación de identidades para cargas de trabajo para GKE permite que una cuenta de servicio de Kubernetes en tu clúster actúe como una cuenta de servicio de IAM. La cuenta de servicio de IAM proporciona la información predeterminada de la aplicación, Credenciales para tus Pods, de modo que no necesites configurar cada Pod para que use tus Pods credencial de usuario.

Después de configurar tus aplicaciones para que se autentiquen con la Federación de identidades para cargas de trabajo para GKE, puedes usar bibliotecas cliente de Spanner para consultar tus bases de datos de Spanner. También puedes migrar tus aplicaciones a tus grupos de nodos de GKE.

Para crear una conexión en un entorno de muestra, prueba la Codelab Conecta Spanner con GKE Autopilot.

Habilita la federación de identidades para cargas de trabajo para GKE

Si aún no lo hiciste, habilita la federación de identidades para cargas de trabajo para GKE en tu clúster de GKE. Puedes habilitar la federación de identidades para cargas de trabajo para GKE en un clúster nuevo. Para ello, crea un grupo de nodos nuevo o habilita la federación de identidades para cargas de trabajo para GKE en un grupo de nodos existente. Los clústeres de Autopilot de GKE tienen habilitada la federación de identidades para cargas de trabajo para GKE de forma predeterminada. Para obtener más información, consulta Habilita la Federación de identidades para cargas de trabajo para GKE.

Autentica la conexión a Spanner con la federación de identidades para cargas de trabajo para GKE

Configura tus aplicaciones para que se autentiquen en Google Cloud mediante la federación de identidades para cargas de trabajo para GKE.

  1. Asegúrate de que tu Pod de GKE use un ServiceAccount de Kubernetes como se describe en Configura la autorización y las principales.

  2. Crea una política de permisos de IAM que otorgue los roles de IAM necesarios de Spanner al objeto ServiceAccount de Kubernetes. El siguiente ejemplo otorga a la base de datos de Spanner Rol del usuario (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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto del clúster de GKE.
    • PROJECT_NUMBER: Es el valor numérico. Número del proyecto de Google Cloud.
    • NAMESPACE: El espacio de nombres de Kubernetes que contiene la ServiceAccount.
    • KSA_NAME: Es el nombre de la ServiceAccount.

Conectar bases de datos de Spanner

Una vez autenticado el Pod de la aplicación, puedes usar uno de los Bibliotecas cliente de Spanner para consultar tu base de datos de Spanner.

¿Qué sigue?