Esta página descreve como criar, atualizar, ver e eliminar pools privados do Cloud Build. Se não conhece os pools privados, leia o artigo Vista geral dos pools privados.
Antes de começar
Crie um novo Google Cloud projeto ou escolha um projeto existente. Vai usar este projeto para criar o pool privado.
-
Enable the Cloud Build API.
Para usar os exemplos de linhas de comando neste guia, instale e configure a CLI Google Cloud.
Opcional: para que as compilações acedam a recursos privados a partir da sua rede da nuvem virtual privada, tem de configurar uma ligação de intercâmbio entre a sua rede da nuvem virtual privada e a rede da nuvem virtual privada onde residem os pools privados. Para obter instruções, consulte o artigo configure o seu ambiente para criar pools privados.
Opcional: familiarize-se com as configurações do tipo de máquina e a disponibilidade regional. Para mais informações, consulte
workerconfig
na documentação do esquema do ficheiro de configuração do conjunto privado.
Crie um conjunto privado
Para receber as autorizações de que
precisa para criar um conjunto privado,
peça ao seu administrador para lhe conceder a função de IAM
proprietário do WorkerPool do Cloud Build (roles/cloudbuild.workerPoolOwner
)
na sua conta de serviço.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Pode criar até 10 conjuntos privados por Google Cloud projeto por região. Para criar um conjunto privado, faça o seguinte:
Google Cloud consola
Abra a página Worker Pool na Google Cloud consola:
Clique em Criar conjunto privado.
É apresentada a página Criar grupo privado.
Introduza as seguintes informações para criar o seu conjunto privado:
Nome: introduza um nome para o seu conjunto privado. Este valor só pode conter carateres alfanuméricos
/[a-z][0-9]/
ou travessões-
. O nome do seu conjunto privado tem de ter entre 1 e 63 carateres.Região: selecione a região na qual quer que o conjunto privado seja criado.
Configuração da máquina: configure o seguinte:
Série: escolha uma série de máquinas.
Tipo de máquina: esta definição mostra os tipos de máquinas, com base na série de máquinas que selecionou, que o conjunto de trabalhadores pode usar. Os tipos de máquinas disponíveis variam consoante a região.
Tamanho do disco: introduza um tamanho do disco para o seu conjunto privado. Especifique um valor igual ou superior a 100 e igual ou inferior a 4000. Se não fornecer um valor, o Cloud Build usa um tamanho do disco de 100.
Virtualização aninhada: se selecionou uma máquina da série C3, pode ativar a virtualização aninhada. Esta funcionalidade permite-lhe executar instâncias de máquinas virtuais (VMs) dentro de outras VMs para que possa criar os seus próprios ambientes de virtualização.
Em Tipo de rede, selecione uma das seguintes opções:
Rede predefinida: selecione esta opção se a sua instância for acessível através da Internet pública. Quando a opção Rede predefinida está selecionada, o seu conjunto privado usa a rede do produtor do serviço. Para mais informações, consulte o artigo Configure o ambiente para usar pools privados numa rede VPC.
Rede privada: selecione esta opção se a sua instância estiver alojada numa rede privada e, em seguida, faça o seguinte:
Projeto: selecione o seu Google Cloud ID do projeto.
Rede: selecione a sua rede no menu pendente. Se não tiver criado uma rede, consulte o artigo Criar e gerir redes VPC para saber como criar uma rede.
Intervalo de IP: introduza o intervalo de IP interno que a rede do produtor do Cloud Build pode usar para atribuir a VMs que mantêm uma ligação com repositórios privados.
Pode especificar o intervalo através da notação de encaminhamento CIDR (Classless Inter-Domain Routing) no formato
STARTING_IP_ADDRESS/SUBNET_PREFIX_SIZE
. Por exemplo,192.0.2.0/24
tem um comprimento do prefixo de 24. Os primeiros 24 bits do intervalo de IP são usados como máscara de sub-rede (192.0.2.0
), enquanto os possíveis endereços de anfitriões variam de192.0.2.0
a192.0.2.255
.O valor do comprimento do prefixo não pode exceder
/29
. Se não for especificado nenhum valor para o intervalo, é atribuído automaticamente um valor predefinido de/24
. Se não for especificado nenhum valor para o comprimento do prefixo, os endereços IP são atribuídos automaticamente na rede de VPC com peering. Se não for especificado nenhum valor para o endereço IP, é atribuído automaticamente um intervalo ao endereço IP na rede VPC com peering.
Atribuir IPs externos: Esta opção está selecionada por predefinição para permitir que os conjuntos privados acedam à Internet pública. Desmarque esta caixa para restringir o acesso à sua rede privada.
Clique em Criar para criar o seu conjunto privado.
gcloud
Tem duas opções para criar um novo conjunto privado com gcloud
: pode
transmitir o ficheiro de configuração do conjunto privado para o comando gcloud
ou transmitir
as opções de configuração diretamente para o comando gcloud
.
Transmita o ficheiro de configuração do conjunto privado para o comando gcloud
:
Crie o ficheiro private pool config no formato YAML ou JSON.
Execute o seguinte comando
gcloud
, em quePRIVATEPOOL_ID
é um identificador exclusivo do seu pool privado,PRIVATEPOOL_CONFIG_FILE
é o nome do ficheiro de configuração do seu pool privado eREGION
é a região onde quer criar o seu pool privado:gcloud builds worker-pools create PRIVATEPOOL_ID --config-from-file PRIVATEPOOL_CONFIG_FILE --region REGION
Deverá ver um resultado semelhante ao seguinte:
Created [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/private-pool]. NAME CREATE_TIME STATUS private-pool 2018-11-19T16:08:24+00:00 RUNNING
Transmita as opções de configuração diretamente para o comando gcloud
:
Execute o seguinte comando gcloud
:
gcloud builds worker-pools create PRIVATEPOOL_ID \
--project=PRIVATEPOOL_PROJECT_ID \
--region=REGION \
--peered-network=PEERED_NETWORK \
--worker-machine-type=PRIVATEPOOL_MACHINE_TYPE \
--worker-disk-size=PRIVATEPOOL_DISK_SIZE_GB \
--no-public-egress
Onde:
PRIVATEPOOL_ID
: um identificador exclusivo para o seu conjunto privado. Este valor deve ter entre 1 e 63 carateres, e os carateres válidos são[a-zA-Z0-9_-]+
.PRIVATEPOOL_PROJECT_ID
: o ID do projeto Google Cloud onde quer criar o seu conjunto privado.REGION
: uma das regiões suportadas.PEERED_NETWORK
: o URL do recurso de rede da rede que está em peering com a rede do produtor de serviços.PEERED_NETWORK
tem de estar no formatoprojects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME
, em queNETWORK_PROJECT_ID
é o ID do projeto do projeto Google Cloud que contém a sua rede VPC eNETWORK_NAME
é o nome da sua rede VPC. Se não especificar um valor, o Cloud Build usa a rede do fornecedor de serviços.PRIVATEPOOL_DISK_SIZE_GB
: o tamanho do disco anexado ao conjunto privado. Especifique um valor igual ou superior a 100 e igual ou inferior a 4000. Se não for indicado, o Cloud Build usa um tamanho do disco de 100.--worker-disk-size
é substituído se especificar um tamanho do disco diferente através de--disk-size
durantegcloud builds submit
.PRIVATEPOOL_MACHINE_TYPE
: o tipo de máquina do trabalhador. Se deixar em branco, o Cloud Build usa o valor predefinido dee2-standard-2
. Para ver uma lista dos tipos de máquinas suportados, consulte o esquema do ficheiro de configuração do pool privado.--worker-machine-type
é substituído se especificar um tipo de máquina diferente através de--machine-type
durantegcloud builds submit
.--no-public-egress
: se esta flag estiver definida, o conjunto privado é criado sem um endereço IP externo. Defina esta flag se estiver a criar o pool privado num perímetro do VPC Service Controls.
API
Crie o ficheiro de configuração do seu conjunto privado com o nome
workerpool.json
.Use o cURL para chamar a API Cloud Build:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" \ https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/?workerPoolId=PRIVATEPOOL_ID -d @workerpool.json
Onde:
PRIVATEPOOL_PROJECT_ID
: o ID do projeto Google Cloud onde quer criar o seu conjunto privado.PRIVATEPOOL_ID
: o ID do seu conjunto privado. Este valor deve ter entre 1 e 63 carateres, e os carateres válidos são[a-zA-Z0-9_-]+
.REGION
: uma das regiões suportadas para criar o seu conjunto privado.
Crie um pool privado num perímetro dos VPC Service Controls
Para criar um pool privado com um perímetro dos VPC Service Controls, consulte o artigo Usar os VPC Service Controls.
Atualize um conjunto privado
Para obter as autorizações de que
precisa para criar um conjunto privado,
peça ao seu administrador para lhe conceder a função de IAM
editor do WorkerPool do Cloud Build (roles/cloudbuild.workerPoolEditor
)
na sua conta de serviço.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Para atualizar a configuração de um conjunto privado, faça o seguinte:
Consola
Abra a página Worker pool na Google Cloud consola:
Selecione o projeto no qual criou o conjunto privado.
Clique no nome do conjunto privado.
Na página Editar pool privado, atualize o tipo de máquina e o tamanho do disco conforme necessário.
Clique em Guardar.
gcloud
Atualizando o ficheiro de configuração do pool privado:
Atualize o campo que quer alterar no seu ficheiro de configuração do conjunto privado.
Execute o seguinte comando, em que
PRIVATEPOOL_ID
é o identificador exclusivo do seu conjunto privado,REGION
é a região onde o seu conjunto privado está localizado ePRIVATEPOOL_CONFIG_FILE
é o nome do ficheiro de configuração do seu conjunto privado:gcloud builds worker-pools update PRIVATEPOOL_ID \ --region=REGION \ --config-from-file=PRIVATEPOOL_CONFIG_FILE
Ao transmitir o valor a atualizar diretamente para o comando gcloud builds
worker-pools update
:
gcloud builds worker-pools update PRIVATEPOOL_ID \
--region=REGION \
--worker-disk-size=PRIVATEPOOL_DISK_SIZE \
--worker-machine-type=PRIVATEPOOL_MACHINE_TYPE
Onde:
PRIVATEPOOL_ID
: o ID do seu conjunto privado existente. Não pode atualizar este valor. Tem de especificar um ID do conjunto privado existente.REGION
: a região onde criou o seu conjunto privado.PRIVATEPOOL_DISK_SIZE
: o tamanho do disco atualizado.PRIVATEPOOL_MACHINE_TYPE
é o tipo de máquina atualizado.
API
No ficheiro de configuração do conjunto privado, atualize o tamanho do disco e o tipo de máquina conforme necessário.
Use o cURL para chamar a API Cloud Build, substituindo as variáveis pelos valores adequados:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID \ -d @workerpool.json
Onde:
PRIVATEPOOL_ID
: o ID do seu conjunto privado.PRIVATEPOOL_PROJECT_ID
: o ID do projeto Google Cloud que contém o seu conjunto privado.REGION
: a região onde criou o seu conjunto privado.
Veja os detalhes do seu conjunto privado
Para receber as autorizações de que
precisa para criar um conjunto privado,
peça ao seu administrador para lhe conceder a função do IAM
Visualizador do WorkerPool do Cloud Build (roles/cloudbuild.workerPoolViewer
)
na sua conta de serviço.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Para ver os detalhes de um conjunto privado:
Consola
Abra a página Worker pool na Google Cloud consola:
Selecione o projeto no qual criou o conjunto privado
Clique no nome do conjunto privado.
É apresentada a página Edite o conjunto privado.
gcloud
Se não souber o ID do seu conjunto privado, execute o seguinte comando para listar os detalhes do seu conjunto privado:
gcloud builds worker-pools list --region=REGION --project=PRIVATEPOOL_PROJECT_ID
Onde:
PRIVATEPOOL_PROJECT_ID
é o ID do projeto que contém o Workload Identity Pool privado.Google CloudREGION
é a região da piscina privada.
Deverá ver um resultado semelhante ao seguinte:
NAME CREATE_TIME STATUS
projects/[PRIVATEPOOL_PROJECT_ID]/locations/us-central1/workerPools/[PRIVATEPOOL_ID] 2018-11-19T16:08:24+00:00 RUNNING
Se souber o ID do conjunto privado, execute o seguinte comando para obter mais informações sobre o conjunto privado:
gcloud builds worker-pools describe PRIVATEPOOL_ID \
--region=REGION \
--project=PRIVATEPOOL_PROJECT_ID
Onde
PRIVATEPOOL_ID
: o ID do seu conjunto privado.REGION
: a região onde criou o seu conjunto privado.PRIVATEPOOL_PROJECT_ID
: o ID do projeto Google Cloud que contém o seu conjunto privado.
API
Se não souber o ID do seu grupo privado, execute o seguinte comando cURL para listar os detalhes do seu grupo privado, onde PRIVATEPOOL_PROJECT_ID
é o ID do projeto que contém o grupo privado: Google Cloud
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools
Se souber o ID do seu conjunto privado, execute o seguinte comando curl para obter os detalhes do seu conjunto privado:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID
Onde
PRIVATEPOOL_ID
: o ID do seu conjunto privado.PRIVATEPOOL_PROJECT_ID
: o ID do projeto Google Cloud que contém o seu conjunto privado.REGION
: a região onde criou o seu conjunto privado.
Veja estimativas de preços de piscinas privadas
Quando cria ou atualiza um conjunto privado, a barra lateral Estimativa mensal nas páginas Criar conjunto privado e Editar conjunto privado mostra uma estimativa do custo de execução do conjunto por mês. O cálculo baseia-se nos seguintes fatores:
- Número de CPUs virtuais
- Tipo de máquina
- Memória
- Minutos de compilação
- Região, apenas para máquinas N2D e C3
O preço estimado não inclui os custos de tamanho do disco adicionais para além dos 100 GB incluídos por predefinição. Os preços estimados podem ser diferentes dos preços finais, dependendo da configuração de compilação final, dos minutos de compilação reais usados e de outros fatores. Para mais informações, consulte os preços do Cloud Build.
Elimine um grupo privado
Para receber as autorizações de que
precisa para criar um conjunto privado,
peça ao seu administrador para lhe conceder a função de IAM
proprietário do WorkerPool do Cloud Build (roles/cloudbuild.workerPoolOwner
)
na sua conta de serviço.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Para eliminar um conjunto privado, faça o seguinte:
Consola
Abra a página Worker pool na Google Cloud consola:
Na linha com o seu conjunto privado, clique no ícone do lixo.
gcloud
Para eliminar um conjunto privado, execute o comando gcloud builds worker-pools
delete
:
gcloud builds worker-pools delete PRIVATEPOOL_ID \
--region=REGION \
--project=PRIVATEPOOL_PROJECT_ID
Onde:
PRIVATEPOOL_ID
: o ID do seu conjunto privado.PRIVATEPOOL_PROJECT_ID
: o ID do projeto Google Cloud que contém o seu conjunto privado.REGION
: a região onde criou o seu conjunto privado.
Depois de eliminar o conjunto privado, deve ver um resultado semelhante ao seguinte:
Deleted [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/[PRIVATEPOOL_ID].
API
Use o cURL para chamar a API Cloud Build:
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID
Onde:
PRIVATEPOOL_ID
: o ID do seu conjunto privado.PRIVATEPOOL_PROJECT_ID
: o ID do projeto Google Cloud que contém o seu conjunto privado.REGION
: a região onde criou o seu conjunto privado.
O que se segue?
- Saiba como executar compilações em pools privadas.
- Saiba como usar os VPC Service Controls com pools privados.