Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you restart it, you'll have to start from the beginning.
- Click Start lab to begin
Create required resources with the fully automated deployment
/ 100
Neste laboratório, você vai descobrir como é fácil conectar um aplicativo no Kubernetes Engine a uma instância do Cloud SQL usando o contêiner do Cloud SQL Proxy como um contêiner de arquivo secundário. Você vai implantar um cluster do Kubernetes Engine e uma instância Postgres do Cloud SQL e usar um contêiner de proxy do Cloud SQL para permitir a comunicação entre eles.
O tema do laboratório é como estabelecer uma conexão com uma instância do Cloud SQL usando um contêiner de proxy, mas os conceitos são iguais para qualquer serviço gerenciado do Google Cloud que precise de acesso à API.
O laboratório foi criado por engenheiros do GKE Helmsman para ajudar você a entender melhor o Cloud SQL por meio de um contêiner de proxy. Acesse a página gke-networking-demos para visualizar essa demonstração. Todas as contribuições são bem-vindas!
Neste laboratório, você vai aprender a:
Todos os nós do Kubernetes Engine recebem a conta de serviço padrão do Compute Engine. A conta de serviço tem um privilégio consideravelmente alto e acesso a muitos serviços do Google Cloud. Devido à configuração do SDK Cloud, o software que você escrever usará as credenciais atribuídas à instância do Compute Engine em que está sendo executado.
Para impedir que todos os contêineres tenham os privilégios da conta de serviço padrão do Compute Engine, é necessário criar uma conta de serviço com privilégios mínimos para os nós do Kubernetes Engine e criar outras contas mais específicas (mas com menos privilégios) para os contêineres.
É possível receber credenciais de conta de serviço de duas formas:
Este laboratório mostrará como inserir o arquivo de credenciais em um contêiner em execução no Kubernetes Engine para que o aplicativo tenha os privilégios necessários.
Com o proxy do Cloud SQL, é possível delegar ao processo a tarefa de criar e manter a conexão com a instância do serviço. Assim, o aplicativo não terá informações sobre a conexão, e o gerenciamento dos secrets será mais simples. O Google inclui o proxy do Cloud SQL como um contêiner do Docker que pode ser executado com o contêiner do aplicativo, no mesmo pod do Kubernetes Engine.
O aplicativo e o respectivo contêiner secundário são implantados em um pod do Kubernetes (k8s) em execução no único nó no cluster do Kubernetes Engine. O aplicativo se comunica com a instância do Cloud SQL por meio do processo do proxy do Cloud SQL, ouvindo no localhost.
O manifesto do k8s cria um objeto de implantação de réplica única com dois contêineres, pgAdmin e o proxy do Cloud SQL. Há dois secrets instalados no cluster do Kubernetes Engine: as informações de conexão da instância do Cloud SQL e um arquivo de credenciais de chave de conta de serviço, ambos usados pelas chamadas da API Cloud SQL dos contêineres do proxy do Cloud SQL.
O aplicativo não precisa saber nada sobre como se conectar ao Cloud SQL nem estar exposto à API. O processo do proxy do Cloud SQL faz isso para o aplicativo. O contêiner do proxy do Cloud SQL é executado como um contêiner de "arquivo secundário" no pod.
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
Confira os requisitos para concluir o laboratório:
Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
Você também encontra o Nome de usuário no painel Detalhes do laboratório.
Clique em Seguinte.
Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.
Você também encontra a Senha no painel Detalhes do laboratório.
Clique em Seguinte.
Acesse as próximas páginas:
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.
Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:
gcloud
é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
Clique em Autorizar.
A saída será parecida com esta:
Saída:
Saída:
Exemplo de saída:
gcloud
, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.
Alguns recursos do Compute Engine estão em regiões e zonas. As regiões são localizações geográficas específicas onde você executa seus recursos. Todas elas têm uma ou mais zonas.
Execute o comando a seguir para configurar a região e a zona do seu laboratório (use a região/zona mais adequada para você):
A implantação é totalmente automatizada. O script que você implantará usa os seguintes parâmetros, em ordem:
É possível criar qualquer nome de usuário para a instância do Cloud SQL e use qualquer e-mail para o console pgAdmin. Este exemplo usa "dbadmin" e seu e-mail temporário de estudante.
Salve sua conta de estudante em uma variável:
dbadmin
e $PG_EMAIL
(sua conta student@qwiklabs.net):As senhas serão usadas novamente mais tarde no laboratório, mas não precisam ser difíceis.
Durante a implantação, create.sh
vai executar os seguintes scripts:
enable_apis.sh
- ativa a API Kubernetes Engine e a API Cloud SQL Admin.postgres_instance.sh
- cria a instância do Cloud SQL e o usuário adicional do Postgres. O gcloud atingirá o tempo limite ao aguardar a criação de uma instância do Cloud SQL, por isso o script fará manualmente a conclusão.service_account.sh
- cria a conta de serviço para o contêiner do proxy do Cloud SQL e cria o arquivo de credenciais.cluster.sh
- cria o cluster do Kubernetes Engine.configs_and_secrets.sh
- cria os secrets e o configMap do Kubernetes Engine que contêm as credenciais e a string de conexão para a instância do Cloud SQL.pgadmin_deployment.sh
- cria o pod pgAdmin4.create.sh
novamente.
Em seguida, exponha o pod usando o balanceador de carga para se conectar à instância e exclua os serviços quando o processo for concluído para evitar qualquer acesso não autorizado.
Saída:
No console do Cloud, em Menu de navegação, selecione SQL e clique no ID da instância.
No menu à esquerda, clique em Conexões e em Rede.
Depois de marcar a caixa de seleção "IP público", clique em Adicionar uma rede.
Nomeie a rede e ative o acesso público:
Clique em Concluído.
Clique em Salvar.
Abra uma nova guia e conecte-se ao pod pgAdmin no seu navegador utilizando th pgAdmin <SVC_IP>:
Volte ao console do Cloud e à página SQL. Clique na guia Informações gerais.
Copie o endereço IP público.
No console do pgAdmin, clique em Servidores no painel esquerdo e clique em Adicionar novo servidor.
Na guia Geral, dê um nome para o servidor e clique na guia Conexão.
Use <DATABASE_USER_NAME>(dbadmin) e <USER_PASSWORD> criados anteriormente para se conectar a 127.0.0.1:5432:
<DATABASE_USER_NAME>
(dbadmin)<USER_PASSWORD>
que você criouTeste a tarefa concluída
Clique em Verificar meu progresso para conferir a tarefa realizada. Se você tiver criado os recursos necessários com a implantação totalmente automatizada, receberá uma pontuação de avaliação.
A validação é totalmente automatizada. O script de validação verifica a existência da instância do Cloud SQL, do cluster do Kubernetes Engine e do pod em execução. Todos esses recursos existirão depois que o script de implantação for concluído.
O script usa os parâmetros INSTANCE_NAME
: o nome da instância do Cloud SQL.
A resposta esperada é semelhante a:
A eliminação é totalmente automatizada. O script de eliminação exclui todos os recursos criados no script de implantação.
O script usa o parâmetro INSTANCE_NAME
: o nome da instância do Cloud SQL.
teardown.sh
executa o comando a seguir:
delete_resources.sh
- exclui tudo, exceto a instância do Cloud SQL.delete_instance.sh
- exclui a instância do Cloud SQL.Quando você cria uma instância do Cloud SQL, aparece esta mensagem de erro:
O nome de uma instância excluída não poderá ser reutilizado por até uma semana após a exclusão. Para mais informações, consulte a seção Excluir instâncias.
Você se conectou a um aplicativo do Kubernetes Engine a uma instância do Cloud SQL usando o contêiner de proxy do Cloud SQL como um contêiner de arquivo secundário. Em seguida, você implantou um cluster do Kubernetes Engine e uma instância do Cloud SQL Postgres e usou o contêiner do proxy do Cloud SQL para permitir a comunicação entre eles.
Este laboratório autoguiado faz parte da Quest Google Kubernetes Engine Best Practices. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. É possível publicar os selos e incluir um link para eles no seu currículo on-line ou nas redes sociais. Consulte o catálogo do Google Cloud Ensina para ver todas as Quests disponíveis.
Instruções de instalação do Kubernetes para implantar um aplicativo em contêiner para várias plataformas.
Manual atualizado em 16 de outubro de 2023
Laboratório testado em 17 de outubro de 2023
Copyright 2024 Google LLC. Este software é fornecido no estado em que se encontra, sem declarações nem garantias para qualquer uso ou finalidade. O uso do software está sujeito ao seu contrato com o Google.