Como usar o Container Registry com o Google Cloud Platform

Os recursos de computação no Google Cloud Platform são integrados ao Container Registry para facilitar o acesso.

Compute Engine

Para extrair imagens particulares do Docker de uma instância do Compute Engine, verifique se a instância tem a permissão read no intervalo da imagem. Isso é configurado corretamente por padrão se a instância e o intervalo da imagem estiverem no mesmo projeto do Google Cloud Platform.

Para enviar imagens particulares do Docker de uma instância do Compute Engine, é necessário que ela tenha permissões read-write ou full-control no intervalo da imagem.

Para iniciar uma instância com permissão de read-write nos intervalos do Cloud Storage, execute o seguinte comando:

gcloud compute instances create INSTANCE \
  --scopes https://www.googleapis.com/auth/devstorage.read_write

Instâncias do Compute Engine otimizadas para contêineres

Para mais informações sobre como iniciar uma instância do Compute Engine otimizada para contêineres usando uma imagem no registro, consulte Como iniciar um contêiner do Docker via cloud-config.

Para mais informações, consulte Como criar e configurar instâncias.

Google Kubernetes Engine

Os clusters do Kubernetes Engine são automaticamente configurados com acesso para extrair imagens particulares do Container Registry no mesmo projeto. Não será necessário seguir outras etapas para configurar a autenticação se o registro e o cluster estiverem no mesmo projeto do Cloud.

Você pode executar uma imagem do Container Registry em um cluster do Google Kubernetes Engine usando o seguinte comando:

kubectl run [NAME] --image=[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

em que:

  • [NAME] é o nome do recurso;
  • [HOSTNAME] está listado em Location no console como uma destas quatro opções: gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io;
  • [PROJECT-ID] é o código do projeto do Console do Google Cloud Platform. Se esse código contiver dois pontos (:), veja projetos com escopo de domínio;
  • [IMAGE] é o nome da imagem no Container Registry;
  • [TAG] é a tag que identifica a versão da imagem no Container Registry. Se você não especificar uma tag, o Container Registry procurará a tag padrão latest.

Para mais informações sobre os comandos do Kubernetes, consulte Visão geral do kubectl (em inglês). Se suas imagens estiverem em outro projeto, você precisará conceder acesso de leitura à conta de serviço usada pelo cluster do Google Kubernetes Engine no intervalo de armazenamento que contém as imagens.

Leia mais sobre Como configurar o controle de acesso e saiba como dar acesso para extrair imagens de clusters em execução em outros projetos.

O Google Kubernetes Engine usa a conta de serviço configurada nas instâncias de VM dos nós do cluster para extrair imagens dos registros. Portanto, a conta de serviço usada para extrair imagens é:

  • no formato [PROJECT_ID]-compute@developer.gserviceaccount.com por padrão ou
  • o mesmo valor que a opção --service-account, se essa opção tiver sido especificada ao criar o cluster com a gcloud

Ambiente flexível do App Engine

É possível usar o Ambiente flexível do App Engine para personalizar um ambiente de execução existente, como Java 8, ou fornecer o próprio ambiente de execução fornecendo uma imagem personalizada do Docker ou Dockerfile.

O ambiente flexível compila automaticamente as imagens de contêiner usando o Cloud Build e as armazena no Container Registry.

Como implantar no App Engine

É possível implantar uma imagem hospedada pelo Container Registry no App Engine usando a ferramenta de linha de comando gcloud.

É possível usar o gcloud beta app gen-config no diretório raiz de sua imagem para criar automaticamente o arquivo app.yaml necessário para implantar no App Engine. Se preferir, você mesmo pode gravar o arquivo.

Depois de criar o arquivo de configuração do App Engine, gerar a imagem do Docker e enviá-la ao Container Registry, implante essa imagem no App Engine. Basta executar o comando a seguir:

gcloud app deploy --image-url=[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

em que:

  • [HOSTNAME] está listado em Local no console como uma destas quatro opções: gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io;
  • [PROJECT-ID] é o código do projeto do Console do Google Cloud Platform. Se esse código contiver dois pontos (:), veja projetos com escopo de domínio;
  • [IMAGE] é o nome da imagem no Container Registry;
  • [TAG] é a tag que identifica a versão da imagem no Container Registry. Se você não especificar uma tag, o Container Registry procurará a tag padrão latest.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…