Nesta página, descrevemos como conceder ao seu projeto do Google Kubernetes Engine (GKE) permissões de cluster para acessar o banco de dados do Spanner.
O GKE é um serviço gerenciado do Kubernetes que facilita a implantação e gerenciar aplicativos conteinerizados. Usando o GKE e usando o Spanner, é possível aproveitar a escalonabilidade, confiabilidade, segurança e alta disponibilidade na camada do aplicativo e na na camada do banco de dados.
Seu cluster do GKE pode acessar a API Spanner usando Federação de identidade da carga de trabalho para o GKE. A Federação de Identidade da Carga de Trabalho para GKE permite que uma conta de serviço do Kubernetes no cluster atue como uma conta de serviço do IAM. A conta de serviço do IAM fornece Application Default Credentials para seus pods, para que você não precise configurar cada pod para usar sua credencial de usuário pessoal.
Depois de configurar seus aplicativos para autenticação usando a federação de identidade da carga de trabalho para o GKE, use as bibliotecas de cliente do Spanner para consultar os bancos de dados do Spanner. Também é possível migrar seu aplicativos aos pools de nós do GKE.
Para criar uma conexão em um ambiente de amostra, tente o Codelab: Como conectar o Spanner com o Autopilot do GKE
Ativar a federação de identidade da carga de trabalho do GKE
Se ainda não fez isso, ative a federação de identidade da carga de trabalho do GKE no seu cluster do GKE. É possível ativar a federação de identidade da carga de trabalho para o GKE em uma nova cluster criando um novo pool de nós Também é possível ativar a federação de identidade da carga de trabalho para o GKE em um pool de nós atual. A federação de identidade da carga de trabalho do GKE está ativada por padrão nos clusters do Autopilot do GKE. Para mais informações, consulte Ative a federação de identidade da carga de trabalho para o GKE.
Autenticação da conexão com o Spanner usando a federação de identidade da carga de trabalho para o GKE
Configure seus aplicativos para se autenticarem no Google Cloud usando a federação de identidade da carga de trabalho para o GKE.
Verifique se o pod do GKE usa um objeto
ServiceAccount
do Kubernetes, conforme descrito em Configurar autorizações e principais.Crie uma política de permissão do IAM que conceda o acesso os papéis do IAM do Spanner para os papéis do IAM do
ServiceAccount
. O exemplo a seguir concede o papel de usuário do banco de dados do Spanner (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
Substitua:
PROJECT_ID
: o ID do projeto do cluster do GKE.PROJECT_NUMBER
: o valor numérico Número do projeto do Google Cloud.NAMESPACE
: o namespace do Kubernetes que contém a ServiceAccount.KSA_NAME
: o nome da conta de serviço.
Conectar bancos de dados do Spanner
Depois que o pod do aplicativo for autenticado, será possível usar um dos Bibliotecas de cliente do Spanner para consultar o banco de dados do Spanner.
A seguir
- Saiba como implantar seu aplicativo no cluster do GKE.
- Saiba como implantar seu aplicativo usando o Autopilot do GKE e o Spanner.
- Saiba mais sobre como migrar cargas de trabalho atuais para a federação de identidade da carga de trabalho para o GKE.
- Saiba mais sobre as práticas recomendadas de SQL.
- Integre o Spanner com outros ORMs, incluindo o Hibernate ORM, gorm e Django ORM.