Para simplificar os fluxos de trabalho de compilação e implementação, algumas Google Cloud contas de serviço e ambientes de tempo de execução estão pré-configurados com autorizações para aceder a contentores armazenados no mesmo projeto.
Esta página resume as integrações comuns com Google Cloud produtos e os requisitos associados para aceder a contentores.
Requisitos gerais de acesso
Por predefinição, as contas de serviço de algumas integrações comuns são configuradas com autorizações do Cloud Storage para aceder ao Container Registry no mesmo projeto.
Para a conta de serviço usada pelas VMs do Compute Engine, incluindo VMs em clusters do Google Kubernetes Engine, o acesso baseia-se nas autorizações da IAM e nos âmbitos de acesso de armazenamento.
Tem de configurar ou modificar as autorizações se:
- Está a usar uma conta de serviço num projeto para aceder ao Container Registry num projeto diferente
- Está a usar uma conta de serviço predefinida com acesso só de leitura ao armazenamento, mas quer extrair e enviar imagens
- Está a usar uma conta de serviço personalizada para interagir com o Container Registry
Consulte as secções específicas do produto para ver informações adicionais.
Cloud Build
Por predefinição, a conta de serviço do Cloud Build tem autorizações para enviar e extrair imagens quando o Container Registry está no mesmo projeto.
Tem de configurar as autorizações adequadas nos seguintes casos:
- O Cloud Build está num projeto diferente dos repositórios aos quais quer que as compilações acedam.
- As suas compilações estão a usar uma conta de serviço diferente da conta de serviço do Cloud Build predefinida. Neste caso, tem de conceder autorizações à conta de serviço para aceder ao Container Registry.
Compute Engine
Pode criar instâncias de VMs com imagens armazenadas no Container Registry.
Autorizações necessárias
Se a instância de VM e o Container Registry estiverem no mesmo Google Cloud projeto, a conta de serviço predefinida do Compute Engine é configurada com autorizações para extrair imagens.
Se a instância de VM estiver num projeto diferente ou se a instância de VM usar uma conta de serviço diferente, tem de conceder à conta de serviço as autorizações adequadas para aceder ao contentor de armazenamento usado pelo Container Registry.
Por predefinição, uma VM do Compute Engine tem o âmbito de acesso read-only
configurado para contentores de armazenamento. Para enviar imagens Docker privadas, a instância de VM tem de ter o âmbito de acesso ao armazenamento read-write
.
Para ver detalhes sobre as autorizações e os âmbitos de acesso, consulte o artigo Integração com os serviços Google Cloud.
Implementar imagens
Quando cria uma VM, pode implementar uma imagem na mesma. Para saber mais, consulte a documentação do Compute Engine sobre a implementação de contentores e a criação de modelos de instâncias de VMs.
Instâncias do Compute Engine otimizadas para contentores
Para obter informações sobre como iniciar uma instância do Motor de Cálculo otimizada para contentores usando uma imagem no seu registo, consulte o artigo Iniciar um contentor Docker através da cloud-config.
Para mais informações, consulte o artigo Criar e configurar instâncias.
Google Kubernetes Engine
O Google Kubernetes Engine usa a conta de serviço configurada nas instâncias de VM dos nós do cluster para enviar e extrair imagens.
Autorizações necessárias
Se o cluster do Google Kubernetes Engine e o contentor de armazenamento do Container Registry estiverem no mesmo Google Cloud projeto, a conta de serviço predefinida do Compute Engine está configurada com as autorizações adequadas para enviar ou extrair imagens.
Se o cluster estiver num projeto diferente ou se as VMs no cluster usarem uma conta de serviço diferente, tem de conceder à conta de serviço as autorizações adequadas para aceder ao contentor de armazenamento usado pelo Container Registry.
Por predefinição, uma VM do Compute Engine tem o âmbito de acesso read-only
configurado para contentores de armazenamento. Para enviar imagens Docker privadas, a instância de VM tem de ter o âmbito de acesso ao armazenamento read-write
.
Para ver detalhes sobre as autorizações e os âmbitos de acesso, consulte o artigo Integração com os serviços Google Cloud.
Executar uma imagem
Pode executar uma imagem do Container Registry num cluster do Google Kubernetes Engine com o seguinte comando:
kubectl run [NAME] --image=[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
where:
[NAME]
é o nome do recurso- O dispositivo
[HOSTNAME]
está listado emLocation
na consola. É uma das quatro opções:gcr.io
,us.gcr.io
,eu.gcr.io
ouasia.gcr.io
. [PROJECT-ID]
é o Google Cloud ID do projeto da consola. Se o ID do projeto contiver dois pontos (:
), consulte o artigo Projetos com âmbito de domínio.[IMAGE]
é o nome da imagem no Container Registry.[TAG]
é a etiqueta que identifica a versão da imagem no Container Registry. Se não especificar uma etiqueta, o Container Registry procura a etiqueta predefinidalatest
.
Para mais informações sobre os comandos do Kubernetes, consulte o artigo Vista geral do kubectl.
Cloud Run
Pode implementar imagens armazenadas no Container Registry no Cloud Run.
Autorizações necessárias
Para implementar no Cloud Run, tem de ter a função Proprietário ou Editor, ou as funções Administrador do Cloud Run e Utilizador da conta de serviço, ou qualquer função personalizada que inclua esta lista específica de autorizações.
Implementar imagens
Para saber como implementar uma imagem no Cloud Run, consulte a documentação do Cloud Run.
Ambiente flexível do App Engine
Pode usar o ambiente flexível do App Engine para personalizar um ambiente de execução existente (como o Java 8) ou para fornecer o seu próprio ambiente de execução, fornecendo uma imagem do Docker ou um Dockerfile personalizado.
Com o Cloud Build, pode automatizar a compilação dos seus contentores, enviá-los para o Container Registry e implementá-los no App Engine.
Autorizações necessárias
Por predefinição, a conta de serviço predefinida do App Engine tem autorizações para extrair e enviar para repositórios no mesmo projeto.
Se o App Engine estiver num projeto diferente, tem de conceder autorizações à conta de serviço do App Engine para aceder ao seu repositório do Container Registry.
Implementação no App Engine
Pode implementar uma imagem alojada pelo Container Registry no App Engine através da CLI Google Cloud.
- Crie o ficheiro de configuração do App Engine para a sua app.
- Crie uma imagem do Docker e envie-a para o seu repositório. Pode usar o Cloud Build para criar e enviar o seu contentor para o repositório.
Implemente a sua imagem no App Engine executando o seguinte comando:
gcloud app deploy --image-url=[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
where:
- O dispositivo
[HOSTNAME]
está listado emLocation
na consola. É uma das quatro opções:gcr.io
,us.gcr.io
,eu.gcr.io
ouasia.gcr.io
. [PROJECT-ID]
é o Google Cloud ID do projeto da consola. Se o ID do projeto contiver dois pontos (:
), consulte o artigo Projetos com âmbito de domínio.[IMAGE]
é o nome da imagem no Container Registry.[TAG]
é a etiqueta que identifica a versão da imagem no Container Registry. Se não especificar uma etiqueta, o Container Registry procura a etiqueta predefinidalatest
.