Conectar-se ao Cloud SQL para PostgreSQL pelo Google Kubernetes Engine
Nesta página, mostramos como implantar um aplicativo de amostra no Google Kubernetes Engine (GKE) conectado a uma instância do PostgreSQL usando o Console do Google Cloud e um aplicativo cliente. Os recursos criados neste guia de início rápido normalmente custam menos de um dólar, supondo que você conclua as etapas, incluindo a limpeza, em tempo hábil.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Ative as APIs do Google Cloud necessárias para executar um app de amostra do Cloud SQL no GKE.
Console
Clique em Ativar APIs para ativar as APIs necessárias para este guia de início rápido.
Isso permite as seguintes APIs:
- API Compute Engine
- API Cloud SQL Admin
- API Google Kubernetes Engine
- API Artifact Registry
- API Cloud Build
gcloud
Clique no botão a seguir para abrir o Cloud Shell, que fornece acesso de linha de comando aos recursos do Google Cloud diretamente no navegador. O Cloud Shell pode ser usado para executar os comandos
gcloud
apresentados neste guia de início rápido.Execute o comando
gcloud services enable
da seguinte maneira usando o Cloud Shell para ativar as APIs necessárias para este guia de início rápido:gcloud services enable compute.googleapis.com sqladmin.googleapis.com \ container.googleapis.com artifactregistry.googleapis.com cloudbuild.googleapis.com
Esse comando ativa as seguintes APIs:
- API Compute Engine
- API Cloud SQL Admin
- API GKE
- API Artifact Registry
- API Cloud Build
Configurar o Cloud SQL
crie uma instância do Cloud SQL
Crie um banco de dados
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Selecione
quickstart-instance
. - No menu de navegação SQL, selecione Bancos de dados.
- Clique em Criar banco de dados.
- No campo Nome do banco de dados da caixa de diálogo
Novo banco de dados, insira
quickstart-db
. - Clique em Criar.
gcloud
Execute o comando gcloud
sql databases create
para criar um banco de dados.
gcloud sql databases create quickstart-db --instance=quickstart-instance
Criar um usuário
Console
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- Selecione Usuários no menu de navegação do SQL.
- Clique em Adicionar conta de usuário.
- Na página Adicionar uma conta de usuário à instância instance_name,
adicione as seguintes informações:
- Nome de usuário: defina como
quickstart-user
; - Senha: especifique uma senha para o usuário do banco de dados; Anote-a para usá-la em uma etapa posterior deste guia de início rápido.
- Nome de usuário: defina como
- Clique em Add.
gcloud
Antes de executar o comando da seguinte maneira, substitua DB_PASS por uma senha para o usuário do banco de dados. Anote-a para usá-la em uma etapa posterior deste guia de início rápido.
Execute o comando gcloud sql users create
para criar o usuário.
gcloud sql users create quickstart-user \ --instance=quickstart-instance \ --password=DB_PASS
Os limites de tamanho de nome de usuário são os mesmos no Cloud SQL e no PostgreSQL no local.
Crie um cluster do GKE
Console
-
No Console do Google Cloud, acesse a página do Google Kubernetes Engine.
- Clique em Criar.
- Clique em Configurar para o GKE Autopilot.
- Em Nome, especifique o nome do cluster como
gke-cloud-sql-quickstart
. - Clique em Criar.
gcloud
Execute o comando gcloud container clusters create-auto
para criar o cluster.
gcloud container clusters create-auto gke-cloud-sql-quickstart \ --region us-central1
Clonar um aplicativo de amostra do Cloud SQL no editor do Cloud Shell
Com uma instância do Cloud SQL, um banco de dados e um cluster do GKE,
é possível clonar e configurar um aplicativo de amostra para se conectar à
instância do Cloud SQL. As etapas restantes neste guia de início rápido exigem o uso das ferramentas de linha de comando gcloud
e kubectl
. As duas ferramentas vêm pré-instaladas no Cloud Shell.
Go
-
No editor do Cloud Shell, abra o código-fonte do app de amostra.
Abra o editor do Cloud Shell -
Na caixa de diálogo
Open in Cloud Shell
, clique em Confirmar para fazer o download do código do app de amostra e abrir o diretório do app de amostra no editor do Cloud Shell.
Java
-
No editor do Cloud Shell, abra o código-fonte do app de amostra.
Abra o editor do Cloud Shell -
Na caixa de diálogo
Open in Cloud Shell
, clique em Confirmar para fazer o download do código do app de amostra e abrir o diretório do app de amostra no editor do Cloud Shell.
Node.js
-
No editor do Cloud Shell, abra o código-fonte do app de amostra.
Abra o editor do Cloud Shell -
Na caixa de diálogo
Open in Cloud Shell
, clique em Confirmar para fazer o download do código do app de amostra e abrir o diretório do app de amostra no editor do Cloud Shell.
Python
-
No editor do Cloud Shell, abra o código-fonte do aplicativo de amostra.
Abra o editor do Cloud Shell -
Na caixa de diálogo
Open in Cloud Shell
, clique em Confirmar para fazer o download do código do app de amostra e abrir o diretório do app de amostra no editor do Cloud Shell.
Ativar o cluster do GKE
Ative o cluster do GKE que você acabou de criar como o cluster padrão para ser usado nos comandos restantes neste guia de início rápido.
gcloud container clusters get-credentials
da seguinte maneira para ativar o cluster do GKE.
gcloud container clusters get-credentials gke-cloud-sql-quickstart \ --region us-central1
Configurar uma conta de serviço
-
Execute o comando
gcloud iam service-accounts create
da seguinte maneira para criar uma nova conta de serviço:gcloud iam service-accounts create gke-quickstart-service-account \ --display-name="GKE Quickstart Service Account"
- Execute o comando
gcloud projects add-iam-policy-binding
da seguinte maneira para adicionar o papel Cliente do Cloud SQL à conta de serviço do Google Cloud que você acabou de criar. Substitua YOUR_PROJECT_ID pelo ID do projeto.gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/cloudsql.client"
- O app de exemplo usa a geração de registros. Portanto, execute o comando
gcloud projects add-iam-policy-binding
conforme mostrado a seguir para adicionar o papel de Gravador de registros à conta de serviço do Google Cloud que você acabou de criar. Substitua YOUR_PROJECT_ID pelo ID do projeto.gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
- A conta de serviço precisa ser capaz de extrair imagens do repositório de artefatos. Portanto, execute o comando
gcloud projects add-iam-policy-binding
conforme a seguir para adicionar o papel de Leitor do Artifact Registry à conta de serviço. Substitua YOUR_PROJECT_ID pelo ID do projeto.gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/artifactregistry.reader"
- Crie uma conta de serviço do Kubernetes:
- Atualize o
arquivo
service-account.yaml
no editor do Cloud Shell. Substitua<YOUR-KSA-NAME>
porksa-cloud-sql
. - Execute o comando
kubectl apply
da seguinte maneira no Cloud Shell:kubectl apply -f service-account.yaml
- Atualize o
arquivo
- Execute o comando
gcloud iam service-accounts add-iam-policy-binding
da seguinte maneira para ativar a vinculação do IAM da conta de serviço do Google Cloud e da conta de serviço do Kubernetes. Faça as seguintes substituições:- YOUR_PROJECT_ID pelo ID do projeto.
- YOUR_K8S_NAMESPACE por
default
, que é o namespace padrão para clusters criados no GKE; - YOUR_KSA_NAME com
ksa-cloud-sql
.
gcloud iam service-accounts add-iam-policy-binding \ --role="roles/iam.workloadIdentityUser" \ --member="serviceAccount:YOUR_PROJECT_ID.svc.id.goog[YOUR_K8S_NAMESPACE/YOUR_KSA_NAME]" \ gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com
- Execute o
comando
kubectl annotate
da seguinte maneira para anotar a conta de serviço do Kubernetes com vinculação do IAM. Faça as seguintes substituições:- YOUR_KSA_NAME com
ksa-cloud-sql
. - YOUR_PROJECT_ID pelo ID do projeto.
kubectl annotate serviceaccount \ YOUR_KSA_NAME \ iam.gke.io/gcp-service-account=gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com
- YOUR_KSA_NAME com
Configurar secrets
Execute o comando
kubectl create secret generic
da seguinte maneira para criar secrets do Kubernetes para o banco de dados, o usuário
e a senha do usuário serem usados pelo app de amostra. Os valores de cada secret
são baseados nos valores especificados nas etapas anteriores deste guia de início rápido.
Substitua DB_PASS pela senha do quickstart-user
que você criou na etapa anterior do guia de início rápido Criar um usuário.
kubectl create secret generic gke-cloud-sql-secrets \ --from-literal=database=quickstart-db \ --from-literal=username=quickstart-user \ --from-literal=password=DB_PASS
Criar o app de amostra
Go
-
Execute o seguinte comando
gcloud artifacts repositories create
no Cloud Shell para criar um repositório no Artifact Registry chamado gke-cloud-sql-repo na mesma região do seu cluster. Substitua YOUR_PROJECT_ID pelo ID do projeto.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Execute o comando
gcloud builds submit
da seguinte maneira no Cloud Shell para criar um contêiner do Docker e publicá-lo no Artifact Registry. Substitua YOUR_PROJECT_ID pelo ID do projeto.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
Java
-
Execute o seguinte comando
gcloud artifacts repositories create
no Cloud Shell para criar um repositório no Artifact Registry chamado gke-cloud-sql-repo na mesma região do seu cluster. Substitua YOUR_PROJECT_ID pelo ID do projeto.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Execute o comando
mvn
da seguinte maneira no Cloud Shell para criar um contêiner do Docker e publicá-lo no Artifact Registry. Substitua YOUR_PROJECT_ID pelo ID do projeto.mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \ -Dimage=us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql \ -DskipTests -Djib.to.credHelper=gcloud
Node.js
-
Execute o seguinte comando
gcloud artifacts repositories create
no Cloud Shell para criar um repositório no Artifact Registry chamado gke-cloud-sql-repo na mesma região do seu cluster. Substitua YOUR_PROJECT_ID pelo ID do projeto.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Execute o comando
gcloud builds submit
da seguinte maneira no Cloud Shell para criar um contêiner do Docker e publicá-lo no Artifact Registry. Substitua YOUR_PROJECT_ID pelo ID do projeto.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
Python
-
Execute o seguinte comando
gcloud artifacts repositories create
no Cloud Shell para criar um repositório no Artifact Registry chamado gke-cloud-sql-repo na mesma região do seu cluster. Substitua YOUR_PROJECT_ID pelo ID do projeto.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Execute o comando
gcloud builds submit
da seguinte maneira no Cloud Shell para criar um contêiner do Docker e publicá-lo no Artifact Registry. Substitua YOUR_PROJECT_ID pelo ID do projeto.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
Implantar o aplicativo de exemplo
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.
-
No console do Google Cloud, acesse a página Instâncias do Cloud SQL.
- Selecione a instância
quickstart-instance
para abrir a página Detalhes da instância. - Na barra de ícones na parte superior da página, clique em Excluir.
- Na caixa de diálogo Excluir instância, digite
quickstart-instance
e clique em Excluir para excluir a instância. -
No Console do Google Cloud, acesse a página do Google Kubernetes Engine.
- Clique na caixa de seleção ao lado do nome do serviço
gke-cloud-sql-quickstart
. - Clique no botão Excluir na parte superior da página do Google Kubernetes Engine.
Etapas de limpeza opcionais
Se você não estiver usando a conta de serviço do Google Cloud criada para este guia de início rápido, poderá removê-la.
-
No Console do Google Cloud, abra a página IAM.
- Marque a caixa de seleção da conta do IAM chamada
gke-quickstart-service-account
. - Clique em Remover e confirme a remoção.
Se você não estiver usando as APIs que foram ativadas como parte deste guia de início rápido, é possível desativá-las.
- APIs que foram ativadas neste guia de início rápido:
- API Compute Engine
- API Cloud SQL Admin
- API Google Kubernetes Engine
- API Artifact Registry
- API Cloud Build
No Console do Google Cloud, acesse a página APIs.
Selecione qualquer API que você quer desativar e clique no botão Desativar API.
A seguir
Com base nas suas necessidades, é possível saber mais sobre como criar instâncias do Cloud SQL.Também é possível aprender a criar usuários do PostgreSQL e bancos de dados para sua instância do Cloud SQL.
Consulte também as informações de preços do Cloud SQL.
Saiba mais sobre estas situações:
- Todas as opções de conectividade no Cloud SQL.
- Como configurar sua instância do Cloud SQL com um endereço IP público.
- Como configurar sua instância do Cloud SQL com um endereço IP privado.
Além disso, é possível aprender a se conectar a uma instância do Cloud SQL usando outros aplicativos do Google Cloud, como: