Estabeleça ligação ao Cloud SQL para SQL Server a partir do Google Kubernetes Engine
Esta página mostra como implementar uma app de exemplo no Google Kubernetes Engine (GKE) ligado a uma instância do SQL Server através da Google Cloud consola e de uma aplicação cliente. Normalmente, os recursos criados neste início rápido custam menos de um dólar (USD), assumindo que conclui os passos, incluindo a limpeza, atempadamente.
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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Ative as APIs Google Cloud necessárias para executar uma app de exemplo do Cloud SQL no GKE.
Consola
Clique em Ativar APIs para ativar as APIs necessárias para este início rápido.
Isto ativa as seguintes APIs:
- API Compute Engine
- API Cloud SQL Admin
- Google Kubernetes Engine API
- API Artifact Registry
- API Cloud Build
gcloud
Clique no botão seguinte para abrir o Cloud Shell, que oferece acesso à linha de comandos aos seus Google Cloud recursos diretamente a partir do navegador. Pode usar o Cloud Shell para executar os comandos
gcloud
apresentados ao longo deste início rápido.Execute o comando
gcloud services enable
da seguinte forma através da Cloud Shell para ativar as APIs necessárias para este início rápido:gcloud services enable compute.googleapis.com sqladmin.googleapis.com \ container.googleapis.com artifactregistry.googleapis.com cloudbuild.googleapis.com
Este comando ativa as seguintes APIs:
- API Compute Engine
- API Cloud SQL Admin
- API GKE
- API Artifact Registry
- API Cloud Build
Configure o Cloud SQL
Crie uma instância do Cloud SQL
Crie uma base de dados
Consola
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Selecione
quickstart-instance
. - No menu de navegação SQL, selecione Bases de dados.
- Clique em Criar base de dados.
- No campo Nome da base de dados da caixa de diálogo Nova base de dados, introduza
quickstart-db
. - Clique em Criar.
gcloud
Execute o comando gcloud
sql databases create
para criar uma base de dados.
gcloud sql databases create quickstart-db --instance=quickstart-instance
Crie um cluster do GKE
Consola
-
Na Google Cloud consola, aceda à página Google Kubernetes Engine.
- Clique em Criar.
- Clique em Configurar para o GKE Autopilot.
- Para 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
Clone uma app de exemplo do Cloud SQL no editor do Cloud Shell
Com uma instância do Cloud SQL, uma base de dados e um cluster do GKE, pode agora clonar e configurar uma aplicação de exemplo para estabelecer ligação à sua instância do Cloud SQL. Os restantes passos neste início rápido requerem a utilização das ferramentas de linha de comandos gcloud
e kubectl
. Ambas as ferramentas estão pré-instaladas no Cloud Shell.
Ir
-
No editor do Cloud Shell, abra o código fonte da app de exemplo.
Abra o editor do Cloud Shell -
Na caixa de diálogo
Open in Cloud Shell
, clique em Confirmar para transferir o código da app de exemplo e abrir o diretório da app de exemplo no editor do Cloud Shell.
Java
-
No editor do Cloud Shell, abra o código fonte da app de exemplo.
Abra o editor do Cloud Shell -
Na caixa de diálogo
Open in Cloud Shell
, clique em Confirmar para transferir o código da app de exemplo e abrir o diretório da app de exemplo no editor do Cloud Shell.
Node.js
-
No editor do Cloud Shell, abra o código fonte da app de exemplo.
Abra o editor do Cloud Shell -
Na caixa de diálogo
Open in Cloud Shell
, clique em Confirmar para transferir o código da app de exemplo e abrir o diretório da app de exemplo no editor do Cloud Shell.
Python
-
No editor do Cloud Shell, abra o código fonte da app de exemplo.
Abra o editor do Cloud Shell -
Na caixa de diálogo
Open in Cloud Shell
, clique em Confirmar para transferir o código da app de exemplo e abrir o diretório da app de exemplo no editor do Cloud Shell.
Ative o cluster do GKE
Ative o cluster do GKE que acabou de criar como o cluster predefinido a usar para os restantes comandos neste início rápido.
gcloud container clusters get-credentials
da seguinte forma para ativar o cluster do GKE.
gcloud container clusters get-credentials gke-cloud-sql-quickstart \ --region us-central1
Configure uma conta de serviço
-
Execute o comando
gcloud iam service-accounts create
da seguinte forma 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 forma para adicionar a função cliente do Cloud SQL à Google Cloud conta de serviço que 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"
- A app de exemplo usa o registo, por isso, execute o comando
gcloud projects add-iam-policy-binding
da seguinte forma para adicionar a função Log Writer à Google Cloud conta de serviço que 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 tem de conseguir obter imagens do repositório do artifactory. Por isso, execute o comando
gcloud projects add-iam-policy-binding
da seguinte forma para adicionar a função 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 ficheiro
service-account.yaml
no editor do Cloud Shell. Substituir<YOUR-KSA-NAME>
porksa-cloud-sql
. - Execute o comando
kubectl apply
da seguinte forma no Cloud Shell:kubectl apply -f service-account.yaml
- Atualize o ficheiro
- Execute o comando
gcloud iam service-accounts add-iam-policy-binding
da seguinte forma para ativar a associação do IAM da Google Cloud conta de serviço e da conta de serviço do Kubernetes. Faça as seguintes substituições:- YOUR_PROJECT_ID com o ID do projeto.
- YOUR_K8S_NAMESPACE com
default
, que é o espaço de nomes predefinido 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 forma para anotar a conta de serviço do Kubernetes com a vinculação de IAM. Faça as seguintes substituições:- YOUR_KSA_NAME com
ksa-cloud-sql
. - YOUR_PROJECT_ID com o 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
Configure segredos
Execute o comando kubectl create secret generic
da seguinte forma para criar segredos do Kubernetes para a base de dados, o utilizador e
a palavra-passe do utilizador a serem usados pela app de exemplo. Os valores de cada segredo
baseiam-se nos valores especificados nos passos anteriores deste início rápido.
Substitua DB_PASS pela palavra-passe do sqlserver
utilizador root que foi criada no passo Crie uma instância do Cloud SQL.
kubectl create secret generic gke-cloud-sql-secrets \ --from-literal=database=quickstart-db \ --from-literal=username=sqlserver \ --from-literal=password=DB_PASS
Crie a app de exemplo
Ir
-
Execute o seguinte comando
gcloud artifacts repositories create
no Cloud Shell para criar um repositório no Artifact Registry denominado gke-cloud-sql-repo na mesma região que o 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 forma no Cloud Shell para criar um contentor 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 denominado gke-cloud-sql-repo na mesma região que o 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 forma no Cloud Shell para criar um contentor 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 denominado gke-cloud-sql-repo na mesma região que o 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 forma no Cloud Shell para criar um contentor 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 denominado gke-cloud-sql-repo na mesma região que o 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 forma no Cloud Shell para criar um contentor 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 .
Implemente a app de exemplo
Limpar
Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.
-
Na Google Cloud consola, aceda à 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 Eliminar.
- Na caixa de diálogo Eliminar instância, escreva
quickstart-instance
e, de seguida, clique em Eliminar para eliminar a instância. -
Na Google Cloud consola, aceda à página Google Kubernetes Engine.
- Clique na caixa de verificação junto ao nome do serviço
gke-cloud-sql-quickstart
. - Clique no botão Eliminar na parte superior da página do Google Kubernetes Engine.
Passos de limpeza opcionais
Se não estiver a usar a Google Cloud conta de serviço que criou para este início rápido, pode removê-la.
-
Na Google Cloud consola, aceda à página IAM.
- Selecione a caixa de verificação da conta do IAM com o nome
gke-quickstart-service-account
. - Clique em Remover e confirme a remoção.
Se não estiver a usar as APIs que foram ativadas como parte deste início rápido, pode desativá-las.
- APIs ativadas neste guia de início rápido:
- API Compute Engine
- API Cloud SQL Admin
- Google Kubernetes Engine API
- API Artifact Registry
- API Cloud Build
Na Google Cloud consola, aceda à página APIs.
Selecione qualquer API que queira desativar e, de seguida, clique no botão Desativar API.
O que se segue?
Com base nas suas necessidades, pode saber mais sobre como criar instâncias do Cloud SQL.Também pode saber como criar utilizadores do SQL Server e bases de dados para a sua instância do Cloud SQL.
Consulte também as informações de preços do Cloud SQL.
Saiba mais sobre:
- Todas as opções de conectividade no Cloud SQL.
- Configurar a instância do Cloud SQL com um endereço IP público.
- Configurar a sua instância do Cloud SQL com um endereço IP privado.
Além disso, pode saber como estabelecer ligação a uma instância do Cloud SQL a partir de outras aplicações do Google Cloud: