Um ambiente de execução do Google Cloud Deploy é o ambiente em que o Google Cloud Deploy executa as operações de renderização e implantação. O ambiente de execução consiste no seguinte:
O pool de workers do Cloud Build (padrão ou privado) em que o Google Cloud Deploy executa operações de renderização e implantação.
A conta de serviço (padrão ou alternativa) que chama o Google Cloud Deploy para executar essas ações.
O local de armazenamento (padrão ou alternativo) para manifestos renderizados no Cloud Storage.
Este artigo descreve o ambiente de execução padrão, as contas de serviço e o armazenamento do Google Cloud Deploy, além de por que e como você pode alterar esses padrões.
Padrões
Veja a seguir os padrões que o Google Cloud Deploy usa para executar, para renderizar e implantar, e para armazenar recursos, como manifestos renderizados:
Pool de workers padrão
Por padrão, o Google Cloud Deploy é executado no pool de workers padrão do Cloud Build. No entanto, é possível configurar o Google Cloud Deploy para usar um pool de workers particulares do Cloud Build.
Para mais detalhes sobre pools de workers, consulte a Visão geral dos pools padrão e particulares do Cloud Build.
Conta de serviço de execução padrão
Por padrão, o Google Cloud Deploy usa a conta de serviço padrão do Compute Engine.
Local padrão de armazenamento do Google Cloud Deploy
Esse valor é o bucket do Cloud Storage em que o Google Cloud Deploy armazena os manifestos renderizados. Por padrão, o Google Cloud Deploy cria um bucket do Cloud Storage na mesma região dos recursos do Google Cloud Deploy, da seguinte forma:
<location>.deploy-artifacts.<project ID>.appspot.com
As seções a seguir descrevem as circunstâncias em que você alteraria qualquer um desses valores, além de links para instruções sobre como fazer isso.
Sobre os pools de workers padrão e particulares
O ambiente de execução padrão é o pool padrão do Cloud Build. Esse pool de workers padrão é um ambiente seguro e hospedado com acesso à Internet pública. As operações de renderização e implantação são executadas nesse pool, isoladas de outras cargas de trabalho.
Os pools de workers particulares são pools particulares e dedicados que podem ser personalizados além do pool de workers padrão. Essa personalização pode permitir o acesso a recursos em uma rede privada.
Assim como o pool de workers padrão, os pools de workers particulares são hospedados e totalmente gerenciados pelo Cloud Build. Esses pools podem ser escalonados verticalmente ou reduzidos a zero, sem infraestrutura para configurar, fazer upgrade ou escalonamento.
A visão geral dos pools de workers particulares do Cloud Build descreve com mais detalhes os pools de workers padrão e os particulares, incluindo uma tabela de comparação dos respectivos recursos.
Como alterar o ambiente de execução do Google Cloud Deploy
É possível alterar o ambiente de execução do Google Cloud Deploy nas seguintes circunstâncias:
Você quer implantar em um cluster privado do Google Kubernetes Engine.
Você quer que as operações de renderização ou implantação, ou ambas, sejam realizadas em um ambiente isolado de outras organizações.
Você quer executar essas operações em um ambiente que não esteja conectado à Internet pública.
Você quer ambientes separados para renderizar e implantar.
Você quer usar uma conta de serviço dedicada com permissões mais específicas do que as permissões disponíveis na conta de serviço padrão.
Você quer armazenar manifestos renderizados em um local diferente do bucket padrão do Cloud Storage.
A configuração das três partes do ambiente de execução (pool de workers, conta de serviço e armazenamento) é feita por destino na configuração YAML de cada destino.
Como mudar do pool padrão para um pool particular
Você configura pools de workers por destino. Dessa maneira, o pool é usado para RENDER ou DEPLOY (ou ambos) apenas para esse destino.
Para usar o pool de workers padrão para operações de renderização e implantação, não é necessário fazer nada.
Este é um exemplo de configuração de destino que especifica um pool de workers particular para DEPLOY e o pool de workers padrão para RENDER:
executionConfigs:
- privatePool:
workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
usages:
- DEPLOY
- defaultPool:
usages:
- RENDER
Para mais informações sobre como configurar pools particulares para destinos, consulte Documentação de configuração do pipeline de entrega.
Como usar o pool padrão para RENDER
e DEPLOY
Se você estiver configurando defaultPool
para definir os usos (RENDER
| DEPLOY
)
sem uma conta de serviço ou um local de armazenamento alternativo, inclua chaves vazias: defaultPool: {}
.
Como alterar do padrão para a conta de serviço de execução personalizada
Assim como no pool de workers, é possível especificar uma conta de serviço alternativa para renderização ou implantação (ou ambas) por destino. Para fazer isso, adicione a seguinte linha à
configuração de destino, após o elemento workerPool
:
serviceAccount: "[name]@[project_name].iam.googleapis.com"
A conta de serviço especificada precisa incluir o papel clouddeploy.jobRunner
, conforme
descrito no documento
Contas de serviço do Google Cloud Deploy.
Consulte Definições de destino para mais detalhes sobre essa configuração.
Como alterar o local de armazenamento
Para alterar o bucket de armazenamento do padrão do Google Cloud Deploy, adicione a seguinte linha à definição de destino na estrofe privatePool
ou defaultPool
:
artifactStorage: "gs://[bucket_name]/[dir]"
Essa configuração muda onde os manifestos renderizados são armazenados, mas não afeta o local em que a origem da renderização é armazenada.
Como implantar em um cluster particular em uma rede de nuvem privada virtual
É possível configurar um destino para implantar em um cluster particular do GKE conectado a uma rede da nuvem privada virtual:
-
Trata-se de um cluster nativo de VPC em que os nós e os pods são isolados por padrão da Internet pública.
No Cloud Build, crie um pool de workers particulares que possa ser usado para implantar nesse cluster particular.
Configure o ambiente de execução para usar esse pool privado.
Use este pool para
RENDER
. Você também pode usá-lo paraDEPLOY
. Veja um exemplo que usa ambos:executionConfigs: - privatePool: workerPool: "projects/p123/locations/us-central1/workerPools/wp123" usages: - RENDER - DEPLOY
Consulte Como acessar clusters particulares do GKE com pools particulares do Cloud Build para mais informações.
Considerações sobre projetos e permissões
É simples configurar um destino para usar um pool de workers particular que possa ser implantado em um cluster particular. No entanto, há alguns pontos a serem observados se os recursos estiverem em projetos diferentes.
Quando o Google Cloud Deploy e o pool de workers estão em projetos separados
Para se comunicar com um pool privado que tenha acesso a uma VPC e que esteja em um projeto diferente do destino, o agente de serviço do Google Cloud Deploy precisa de permissões suficientes para se comunicar. esse projeto.
A conta de serviço de execução também precisa de permissões para acessar o bucket do Cloud Storage.
Quando o pool de workers e o cluster estão em projetos separados
Se o cluster particular do GKE estiver em um projeto diferente do pool de workers particulares, a conta de serviço de execução exigirá permissões suficientes para se comunicar com o projeto em que o cluster está.
Como usar o Google Cloud Deploy em um perímetro do VPC Service Controls
O Google Cloud Deploy é compatível (Beta) com VPC Service Controls.
Siga o guia de início rápido do VPC Service Controls para configurar um perímetro de serviço.
Limitações
Use um pool de workers particular do Cloud Build para o ambiente de execução do destino, e não um pool híbrido e não o pool de workers padrão.
O projeto que contém o pool de workers e o projeto que contém os recursos do Google Cloud Deploy precisa permanecer no mesmo perímetro de segurança do VPC Service Controls.
Qualquer cluster do GKE implantado no perímetro do VPC Service Controls precisa ser um cluster particular.
Para configurar um pool privado de um cluster particular, consulte este tutorial.
A seguir
Saiba mais sobre a configuração de destino do Google Cloud Deploy.
Leia sobre pools particulares do Cloud Build.
Leia sobre como o Cloud Build usa o VPC Service Controls.
Saiba como o Google Cloud Deploy usa contas de serviço.
Acessar clusters particulares do GKE com pools particulares do Cloud Build.