Este tutorial mostra como configurar e usar a Autorização binária no Google Kubernetes Engine (GKE). A autorização binária é o processo de criação de atestados nas imagens de contêiner para verificar se determinados critérios foram atendidos antes de implantar as imagens no GKE.
Por exemplo, a autorização binária pode verificar se o app foi aprovado nos testes de unidade ou se o app foi criado usando um conjunto específico de sistemas. Para mais informações, consulte Visão geral do Software Delivery Shield.
Este tutorial destina-se a profissionais que querem entender melhor a verificação de vulnerabilidade de contêiner e a autorização binária, bem como a implementação e aplicação delas em um pipeline de CI/CD.
Neste tutorial, é preciso que você esteja familiarizado com os seguintes tópicos e tecnologias:
- Integração e implantação contínuas
- Verificação de vulnerabilidades e exposições comuns (CVE)
- GKE
- Artifact Registry
- Cloud Build
- Cloud Key Management Service (Cloud KMS)
Objetivos
- Implantar clusters do GKE para preparo e produção.
- Criar vários atestadores e atestados.
- Implantar um pipeline de CI/CD usando o Cloud Build.
- Testar o pipeline de implantação.
- Desenvolver um processo de acesso imediato.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Saiba mais em Limpeza.
Antes de começar
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs Binary Authorization, Cloud Build, Cloud KMS, GKE, Artifact Registry, Artifact Analysis, Resource Manager, and Cloud Source Repositories.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs Binary Authorization, Cloud Build, Cloud KMS, GKE, Artifact Registry, Artifact Analysis, Resource Manager, and Cloud Source Repositories.
-
No Console do Google Cloud, ative o Cloud Shell.
Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
Todos os comandos neste tutorial são executados no Cloud Shell.
Arquitetura do pipeline de CI/CD
Um aspecto importante do ciclo de vida de desenvolvimento de software (SDLC) é garantir e impor que as implantações de aplicativos sigam os processos aprovados pela sua organização. Um método para estabelecer essas verificações e estimativas é com a Autorização binária no GKE. Primeiro, a autorização binária anexa observações às imagens do contêiner. Depois, o GKE verifica se as observações obrigatórias estão presentes antes da implantação do app.
Essas observações ou atestados fazem declarações sobre a imagem. Os atestados são completamente configuráveis, mas veja alguns exemplos comuns:
- O app passou nos testes de unidade.
- O app foi verificado pela equipe de controle de qualidade.
- O app foi verificado quanto a vulnerabilidades e nenhuma foi encontrada.
O diagrama a seguir retrata um SDLC em que um único atestado é aplicado após a conclusão da verificação de vulnerabilidades, sem vulnerabilidades conhecidas.
Neste tutorial, você criará um pipeline de CI/CD usando o Cloud Source Repositories, o Cloud Build, o Artifact Registry e o GKE. O diagrama a seguir ilustra o pipeline de CI/CD.
Três etapas compõem esse pipeline de CI/CD:
Criar uma imagem de contêiner com o código-fonte do app.
Enviar a imagem do contêiner para o Artifact Registry.
Verificar, com o Artifact Analysis, a imagem do contêiner quanto a vulnerabilidades de segurança conhecidas ou CVEs.
Se a imagem não tiver CVEs com uma pontuação de gravidade maior que cinco, a imagem será atestada como não tendo CVEs críticos e será automaticamente implantada para o preparo. Uma pontuação maior que cinco indica uma vulnerabilidade média a crítica. Nesses casos, a imagem não é atestada ou implantada.
Uma equipe de controle de qualidade inspeciona o app no cluster de preparo. Se ele é aprovado nos critérios, a equipe aplica um atestado manual de que a imagem tem qualidade suficiente para a implantação na produção. Os manifestos de produção são atualizados, e o app é implantado no cluster de produção do GKE.
Os clusters do GKE são configurados para analisar as imagens de contêiner em busca de atestados e rejeitar as implantações que não têm os atestados obrigatórios. Apenas o atestado da verificação de vulnerabilidades é necessário para o cluster de preparo do GKE, enquanto para o de produção também é necessário o de controle de qualidade.
Neste tutorial, você introduzirá falhas no pipeline de CI/CD para testar e verificar essa aplicação. Por fim, você implementará um procedimento de acesso imediato para ignorar essas verificações de implantação no GKE em caso de emergência.
Como configurar o ambiente
Neste tutorial, são usadas as variáveis de ambiente a seguir. É possível alterar esses valores para atender aos seus requisitos, mas todas as etapas do tutorial foram pensadas partindo do pressuposto de que essas variáveis de ambiente existem e contêm um valor válido.
No Cloud Shell, defina o projeto do Google Cloud em que você implantará e gerenciará todos os recursos usados neste tutorial:
export PROJECT_ID="${DEVSHELL_PROJECT_ID}" gcloud config set project ${PROJECT_ID}
Defina a região na qual você implantará esses recursos:
export REGION="us-central1"
O cluster do GKE e as chaves do Cloud KMS residirão nessa região. Neste tutorial, a região é
us-central1
. Para saber mais sobre regiões, consulte Geografia e regiões.Defina o número do projeto do Cloud Build:
export PROJECT_NUMBER="$(gcloud projects describe "${PROJECT_ID}" \ --format='value(projectNumber)')"
Defina o e-mail da conta de serviço do Cloud Build:
export CLOUD_BUILD_SA_EMAIL="${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com"
Como criar clusters do GKE
Crie dois clusters e conceda permissões de gerenciamento de identidade e acesso (IAM, na sigla em inglês) para o Cloud Build implantar aplicativos no GKE. Criar clusters do GKE pode levar alguns minutos.
No Cloud Shell, crie um cluster de preparo do GKE:
gcloud container clusters create "staging-cluster" \ --project "${PROJECT_ID}" \ --machine-type "n1-standard-1" \ --region "${REGION}" \ --num-nodes "1" \ --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE
Crie um cluster de produção do GKE:
gcloud container clusters create "prod-cluster" \ --project "${PROJECT_ID}" \ --machine-type "n1-standard-1" \ --region "${REGION}" \ --num-nodes "1" \ --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE
Conceda permissão à conta de serviço do Cloud Build para implantar no GKE:
gcloud projects add-iam-policy-binding "${PROJECT_ID}" \ --member "serviceAccount:${CLOUD_BUILD_SA_EMAIL}" \ --role "roles/container.developer"
Como criar chaves de assinatura
Crie duas chaves assimétricas do Cloud KMS para assinar os atestados.
No Cloud Shell, crie um keyring do Cloud KMS chamado
binauthz
:gcloud kms keyrings create "binauthz" \ --project "${PROJECT_ID}" \ --location "${REGION}"
Crie uma chave assimétrica do Cloud KMS chamada
vulnz-signer
que será usada para assinar e verificar os atestados da verificação de vulnerabilidades:gcloud kms keys create "vulnz-signer" \ --project "${PROJECT_ID}" \ --location "${REGION}" \ --keyring "binauthz" \ --purpose "asymmetric-signing" \ --default-algorithm "rsa-sign-pkcs1-4096-sha512"
Crie uma chave assimétrica do Cloud KMS chamada
qa-signer
para assinar e verificar os atestados do controle de qualidade:gcloud kms keys create "qa-signer" \ --project "${PROJECT_ID}" \ --location "${REGION}" \ --keyring "binauthz" \ --purpose "asymmetric-signing" \ --default-algorithm "rsa-sign-pkcs1-4096-sha512"
Como configurar atestados
Use as chaves das etapas anteriores para criar as observações anexadas às imagens do contêiner e conceder permissões para a conta de serviço do Cloud Build visualizar e anexar observações e criar os atestadores.
Criar o atestado da verificação de vulnerabilidades
No Cloud Shell, crie uma nota do Artifact Analysis chamada
vulnz-note
:curl "https://containeranalysis.googleapis.com/v1/projects/${PROJECT_ID}/notes/?noteId=vulnz-note" \ --request "POST" \ --header "Content-Type: application/json" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "X-Goog-User-Project: ${PROJECT_ID}" \ --data-binary @- <<EOF { "name": "projects/${PROJECT_ID}/notes/vulnz-note", "attestation": { "hint": { "human_readable_name": "Vulnerability scan note" } } } EOF
Conceda permissão à conta de serviço do Cloud Build para visualizar e anexar a observação
vulnz-note
às imagens do contêiner:curl "https://containeranalysis.googleapis.com/v1/projects/${PROJECT_ID}/notes/vulnz-note:setIamPolicy" \ --request POST \ --header "Content-Type: application/json" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "X-Goog-User-Project: ${PROJECT_ID}" \ --data-binary @- <<EOF { "resource": "projects/${PROJECT_ID}/notes/vulnz-note", "policy": { "bindings": [ { "role": "roles/containeranalysis.notes.occurrences.viewer", "members": [ "serviceAccount:${CLOUD_BUILD_SA_EMAIL}" ] }, { "role": "roles/containeranalysis.notes.attacher", "members": [ "serviceAccount:${CLOUD_BUILD_SA_EMAIL}" ] } ] } } EOF
Crie o atestador de verificação de vulnerabilidades:
gcloud container binauthz attestors create "vulnz-attestor" \ --project "${PROJECT_ID}" \ --attestation-authority-note-project "${PROJECT_ID}" \ --attestation-authority-note "vulnz-note" \ --description "Vulnerability scan attestor"
Adicione a chave pública da chave de assinatura do atestador:
gcloud beta container binauthz attestors public-keys add \ --project "${PROJECT_ID}" \ --attestor "vulnz-attestor" \ --keyversion "1" \ --keyversion-key "vulnz-signer" \ --keyversion-keyring "binauthz" \ --keyversion-location "${REGION}" \ --keyversion-project "${PROJECT_ID}"
Conceda permissão à conta de serviço do Cloud Build para ver os atestados feitos por
vulnz-attestor
:gcloud container binauthz attestors add-iam-policy-binding "vulnz-attestor" \ --project "${PROJECT_ID}" \ --member "serviceAccount:${CLOUD_BUILD_SA_EMAIL}" \ --role "roles/binaryauthorization.attestorsViewer"
Conceda permissão à conta de serviço do Cloud Build para assinar objetos usando a chave
vulnz-signer
:gcloud kms keys add-iam-policy-binding "vulnz-signer" \ --project "${PROJECT_ID}" \ --location "${REGION}" \ --keyring "binauthz" \ --member "serviceAccount:${CLOUD_BUILD_SA_EMAIL}" \ --role 'roles/cloudkms.signerVerifier'
Criar o atestado de controle de qualidade
No Cloud Shell, crie uma nota do Artifact Analysis chamada
qa-note
:curl "https://containeranalysis.googleapis.com/v1/projects/${PROJECT_ID}/notes/?noteId=qa-note" \ --request "POST" \ --header "Content-Type: application/json" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "X-Goog-User-Project: ${PROJECT_ID}" \ --data-binary @- <<EOF { "name": "projects/${PROJECT_ID}/notes/qa-note", "attestation": { "hint": { "human_readable_name": "QA note" } } } EOF
Conceda permissão à conta de serviço do Cloud Build para visualizar e anexar a observação
qa-note
às imagens do contêiner:curl "https://containeranalysis.googleapis.com/v1/projects/${PROJECT_ID}/notes/qa-note:setIamPolicy" \ --request POST \ --header "Content-Type: application/json" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "X-Goog-User-Project: ${PROJECT_ID}" \ --data-binary @- <<EOF { "resource": "projects/${PROJECT_ID}/notes/qa-note", "policy": { "bindings": [ { "role": "roles/containeranalysis.notes.occurrences.viewer", "members": [ "serviceAccount:${CLOUD_BUILD_SA_EMAIL}" ] }, { "role": "roles/containeranalysis.notes.attacher", "members": [ "serviceAccount:${CLOUD_BUILD_SA_EMAIL}" ] } ] } } EOF
Crie o atestador de controle de qualidade:
gcloud container binauthz attestors create "qa-attestor" \ --project "${PROJECT_ID}" \ --attestation-authority-note-project "${PROJECT_ID}" \ --attestation-authority-note "qa-note" \ --description "QA attestor"
Adicione a chave pública da chave de assinatura do atestador:
gcloud beta container binauthz attestors public-keys add \ --project "${PROJECT_ID}" \ --attestor "qa-attestor" \ --keyversion "1" \ --keyversion-key "qa-signer" \ --keyversion-keyring "binauthz" \ --keyversion-location "${REGION}" \ --keyversion-project "${PROJECT_ID}"
Conceda permissão à conta de serviço do Cloud Build para ver os atestados feitos por
qa-attestor
:gcloud container binauthz attestors add-iam-policy-binding "qa-attestor" \ --project "${PROJECT_ID}" \ --member "serviceAccount:${CLOUD_BUILD_SA_EMAIL}" \ --role "roles/binaryauthorization.attestorsViewer"
Conceda permissão para a equipe de controle de qualidade assinar os atestados:
gcloud kms keys add-iam-policy-binding "qa-signer" \ --project "${PROJECT_ID}" \ --location "${REGION}" \ --keyring "binauthz" \ --member "group:qa-team@example.com" \ --role 'roles/cloudkms.signerVerifier'
Como definir a política de autorização binária
Mesmo que tenha criado os clusters do GKE com --binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE
, crie uma política para instruir o GKE sobre quais são os atestados necessários para a execução dos binários no cluster. As políticas de autorização binária existem no nível do projeto, mas têm configuração para o nível do cluster.
A política a seguir altera a política padrão das seguintes maneiras:
Altera o
evaluationMode
padrão paraALWAYS_DENY
. Somente imagens isentas ou imagens com os atestados obrigatórios podem ser executadas no cluster.Ativa o
globalPolicyEvaluationMode
, o que altera a lista de permissões padrão para incluir apenas imagens do sistema fornecidas pelo Google.Define as seguintes regras de admissão de cluster:
staging-cluster
requer atestados dovulnz-attestor
.prod-cluster
requer atestados dovulnz-attestor
e doqa-attestor
.
Para mais informações sobre políticas de autorização binária, consulte Referência de política YAML.
No Cloud Shell, crie um arquivo YAML que descreva a política de autorização binária do projeto do Google Cloud:
cat > ./binauthz-policy.yaml <<EOF admissionWhitelistPatterns: - namePattern: docker.io/istio/* defaultAdmissionRule: enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG evaluationMode: ALWAYS_DENY globalPolicyEvaluationMode: ENABLE clusterAdmissionRules: # Staging cluster ${REGION}.staging-cluster: evaluationMode: REQUIRE_ATTESTATION enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG requireAttestationsBy: - projects/${PROJECT_ID}/attestors/vulnz-attestor # Production cluster ${REGION}.prod-cluster: evaluationMode: REQUIRE_ATTESTATION enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG requireAttestationsBy: - projects/${PROJECT_ID}/attestors/vulnz-attestor - projects/${PROJECT_ID}/attestors/qa-attestor EOF
Faça o upload da nova política para o projeto do Google Cloud:
gcloud container binauthz policy import ./binauthz-policy.yaml \ --project "${PROJECT_ID}"
Como criar o verificador de vulnerabilidades e ativar a API
Crie uma imagem de contêiner que seja usada como uma etapa da criação no Cloud Build. Esse contêiner compara as pontuações de gravidade das vulnerabilidades detectadas com o limite configurado. Se a pontuação estiver dentro do limite, o Cloud Build criará um atestado para o contêiner. Se a pontuação estiver fora do limite, haverá falha e nenhum atestado será criado.
No Cloud Shell, crie um novo repositório do Artifact Registry para armazenar a imagem do atestador:
gcloud artifacts repositories create cloudbuild-helpers \ --repository-format=DOCKER --location=${REGION}
Clone as ferramentas de autorização binária e o exemplo de origem do aplicativo:
git clone https://github.com/GoogleCloudPlatform/gke-binary-auth-tools ~/binauthz-tools
Crie e envie o contêiner do atestador do verificador de vulnerabilidades chamado
attestor
para o Artifact Registrycloudbuild-helpers
:gcloud builds submit \ --project "${PROJECT_ID}" \ --tag "us-central1-docker.pkg.dev/${PROJECT_ID}/cloudbuild-helpers/attestor" \ ~/binauthz-tools
Como configurar o pipeline do Cloud Build
Crie um repositório do Cloud Source Repositories e um acionador do Cloud Build para o app de exemplo e os manifestos do Kubernetes.
Criar o repositório hello-app Cloud Source Repositories e Artifact Registry
No Cloud Shell, crie um repositório do Cloud Source Repositories para o app de exemplo:
gcloud source repos create hello-app \ --project "${PROJECT_ID}"
Clone o repositório localmente:
gcloud source repos clone hello-app ~/hello-app \ --project "${PROJECT_ID}"
Copie o código de exemplo no repositório:
cp -R ~/binauthz-tools/examples/hello-app/* ~/hello-app
Crie um novo repositório do Artifact Registry para armazenar imagens de aplicativo:
gcloud artifacts repositories create applications \ --repository-format=DOCKER --location=${REGION}
Criar o acionador do Cloud Build para o hello-app
No Console do Google Cloud, acesse a página Gatilhos.
Clique em Gerenciar repositórios.
Para o repositório
hello-app
, clique em ... e selecione Adicionar gatilho.Na janela Configurações do acionador, digite os detalhes a seguir:
- No campo Nome, use
build-vulnz-deploy
. - Em Evento, escolha Enviar para uma ramificação.
- No menu do campo Repositório, escolha
hello-app
. - No campo Ramificação, digite
master
. - Configuração: selecione Arquivo de configuração do Cloud Build (yaml ou json).
- Em Local, selecione Repositório e insira o valor
padrão
/cloudbuild.yaml
.
- No campo Nome, use
Adicione os seguintes pares de variável de substituição:
_COMPUTE_REGION
com o valorus-central1
(ou a região escolhida no início)._KMS_KEYRING
com o valorbinauthz
._KMS_LOCATION
com o valorus-central1
(ou a região escolhida no início)._PROD_CLUSTER
com o valorprod-cluster
._QA_ATTESTOR
com o valorqa-attestor
._QA_KMS_KEY
com o valorqa-signer
._QA_KMS_KEY_VERSION
com o valor1
._STAGING_CLUSTER
com o valorstaging-cluster
._VULNZ_ATTESTOR
com o valorvulnz-attestor
._VULNZ_KMS_KEY
com o valorvulnz-signer
._VULNZ_KMS_KEY_VERSION
com o valor1
.
Clique em Criar.
Testar o pipeline do Cloud Build
Confirme e envie o app de exemplo para o repositório do Cloud Source Repositories para testar o pipeline de CI/CD. O Cloud Build detecta a alteração, cria e implanta o app em staging-cluster
. O pipeline aguarda até 10 minutos pela confirmação do controle de qualidade. Depois que a equipe de controle de qualidade verifica a implantação, o processo continua, os manifestos de produção do Kubernetes são atualizados, e o Cloud Build implanta o app em prod-cluster
.
No Cloud Shell, confirme e envie os arquivos
hello-app
para o repositório do Cloud Source Repositories para acionar uma versão:cd ~/hello-app git add . git commit -m "Initial commit" git push origin master
No console do Google Cloud, abra a página IAM.
Para ver o progresso da versão, clique na execução mais recente do Cloud Build.
Quando a implantação no
staging-cluster
tiver terminado, vá para a página Serviços.Para verificar se o app está funcionando, clique no link Endpoints do app.
Acesse a página Repositórios.
Clique em
applications
.Clique em
hello-app
.Clique na imagem que você validou na implantação de preparo.
Copie o valor de Resumo dos detalhes da imagem. Essa informação é necessária na próxima etapa
Para aplicar o atestado de controle de qualidade manual, substitua
...
pelo valor que você copiou dos detalhes da imagem. A variávelDIGEST
precisa estar no formatosha256:hash-value
`.A etapa
Await QA attestation
da versão também emitirá um comando para copiar e colar, mostrado abaixo.DIGEST="sha256:..." # Replace with your value gcloud beta container binauthz attestations sign-and-create \ --project "${PROJECT_ID}" \ --artifact-url "${REGION}-docker.pkg.dev/${PROJECT_ID}/applications/hello-app@${DIGEST}" \ --attestor "qa-attestor" \ --attestor-project "${PROJECT_ID}" \ --keyversion "1" \ --keyversion-key "qa-signer" \ --keyversion-location "${REGION}" \ --keyversion-keyring "binauthz" \ --keyversion-project "${PROJECT_ID}"
Para verificar se o app foi implantado, acesse a página Serviços.
Para ver o app, clique no link do endpoint.
Como implantar uma imagem sem atestado
Até o momento, o aplicativo de exemplo não tinha vulnerabilidades. Atualize o app para gerar outra mensagem e alterar a imagem de base.
No Cloud Shell, altere
Hello World
paraBinary Authorization
e altere a imagem base dedistroless
paradebian
:cd ~/hello-app sed -i "s/Hello World/Binary Authorization/g" main.go sed -i "s/FROM gcr\.io\/distroless\/static-debian11/FROM debian/g" Dockerfile
Confirme e envie as alterações:
git add . git commit -m "Change message and base image" git push origin master
Para monitorar o status do pipeline de CI/CD, no Console do Google Cloud, acesse a página Histórico.
Essa versão falha por causa dos CVEs detectados na imagem.
Para examinar os CVEs identificados, acesse a página Imagens.
Clique em
hello-app
.Para revisar os CVEs identificados, clique no resumo de vulnerabilidades da imagem mais recente.
No Cloud Shell, tente implantar a nova imagem na produção sem o atestado de verificação de vulnerabilidades:
export SHA_DIGEST="[SHA_DIGEST_VALUE]" cd ~/hello-app sed "s/REGION/${REGION}/g" kubernetes/deployment.yaml.tpl | \ sed "s/GOOGLE_CLOUD_PROJECT/${PROJECT_ID}/g" | \ sed -e "s/DIGEST/${SHA_DIGEST}/g" > kubernetes/deployment.yaml gcloud container clusters get-credentials \ --project=${PROJECT_ID} \ --region="${REGION}" prod-cluster kubectl apply -f kubernetes
No Console do Google Cloud, acesse a página Cargas de trabalho.
Acessar a página de cargas de trabalho
Falha ao implantar a imagem porque ela não foi assinada pelo
vulnz-attestor
e peloqa-attestor
.
Procedimento de acesso imediato
De vez em quando, você precisa permitir alterações que estão fora do fluxo de trabalho normal. Para permitir implantações de imagem sem os atestados obrigatórios, a definição do pod é anotada com uma sinalização de política de acesso imediato. Ativar essa sinalização ainda faz com que o GKE verifique os atestados obrigatórios, mas permite que a imagem do contêiner seja implantada e registra as violações.
Para mais informações sobre como ignorar verificações de atestado, consulte Substituir uma política.
No Cloud Shell, remova a marca de comentário da anotação de acesso imediato no manifesto do Kubernetes:
sed -i "31s/^#//" kubernetes/deployment.yaml
Use
kubectl
para aplicar as alterações:kubectl apply -f kubernetes
Para verificar se a alteração foi implantada no
prod-cluster
, acesse Cargas de trabalho no Console do Google Cloud.Acessar a página de cargas de trabalho
A mensagem de erro de implantação desaparece.
Para verificar se o aplicativo foi implantado, acesse a página Serviços.
Para ver o app, clique no link do endpoint.
Limpeza
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Exclua o projeto
- No Console do Google Cloud, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
A seguir
- Práticas recomendadas para a criação de contêineres.
- Como implantar um aplicativo da Web em contêiner.
- Entrega contínua no estilo GitOps com o Cloud Build.
- Imagens de base gerenciadas.
- Confira arquiteturas de referência, diagramas e práticas recomendadas do Google Cloud. Confira o Centro de arquitetura do Cloud.