Nesta página, descrevemos como implantar novos serviços e novas revisões no Cloud Run for Anthos.
Pré-requisitos
Para usar a Google Cloud CLI, você precisa da Google Cloud CLI instalada e configurada.
Permissões necessárias para implantar
Você precisa de permissões para criar, atualizar e excluir no
apiGroup serving.knative.dev
e no tipo Service
, além de ter
um dos seguintes papéis:
- Proprietário
- Editor
- Administrador do GKE
- Desenvolvedor do GKE
Imagens que podem ser implantadas
Não há limite de tamanho que se aplique à imagem de contêiner que é possível implantar.
É possível usar contêineres de qualquer registro de contêiner, como o Docker Hub. Para informações sobre como implantar imagens particulares de registros diferentes do Container Registry ou do Artifact Registry, consulte Como implantar imagens de contêiner particulares de outros registros de contêiner.
Como implantar um novo serviço
É possível especificar uma imagem de contêiner com uma tag
(por exemplo, gcr.io/my-project/my-image:latest
) ou com um resumo exato
(por exemplo, gcr.io/my-project/my-image@sha256:41f34ab970ee...
).
A implantação de um serviço pela primeira vez cria a primeira revisão dele. Observe que as revisões são imutáveis. Se você implantar a partir de uma tag de imagem de contêiner, ela será resolvida para um resumo, e a revisão sempre exibirá esse resumo específico.
É possível implantar um contêiner usando o Console do Google Cloud, a Google Cloud CLI ou um arquivo de configuração YAML.
Clique na guia para ver instruções usando a ferramenta de sua preferência.
Configuração de local padrão do gcloud
Se você tiver configurado anteriormente um local na
configuração default
do Google Cloud CLI, os comandos gcloud
usarão esses valores por padrão, incluindo:
compute/region
compute/zone
run/cluster
run/cluster_location
run/platform
run/region
Execute o comando
gcloud
config a seguir
para ver as definições da configuração default
:
gcloud config configurations describe default
Console
Para implantar uma imagem de contêiner, realize as etapas a seguir:
Acesse o Cloud Run for Anthos no Console do Google Cloud:
Clique em Criar serviço para exibir a página Criar serviço.
No formulário, siga estas etapas:
Selecione a plataforma do Cloud Run para Anthos em que você está implantando:
- Cloud Run for Anthos para implantar em um cluster GKE ou clusters do Anthos no VMware com o Cloud Run for Anthos ativado.
No menu suspenso, selecione um dos clusters do GKE disponíveis para o serviço.
Digite o nome do serviço desejado. Os nomes de serviço precisam ser exclusivos por região e projeto ou por cluster. Não é possível alterar um nome de serviço posteriormente.
Em Conectividade:
- Selecione Interno se quiser restringir o acesso somente a outros serviços do Cloud Run for Anthos ou serviços no cluster que usam o Istio.
- Selecione Externo para permitir acesso externo ao serviço.
Observe que é possível alterar a opção de conectividade a qualquer momento, conforme descrito em Como alterar configurações de conectividade de serviço.
Clique em Avançar para acessar a segunda página do formulário de criação de serviço:
No formulário, siga estas etapas:
Na caixa de texto URL da imagem do contêiner, forneça o URL de uma imagem de um registro compatível, por exemplo:
gcr.io/myproject/my-image:latest
Para usar o Artifact Registry com imagens de contêiner particulares, use o resumo de imagem. Se você quiser usar a tag de imagem das imagens de contêiner particulares, será necessário criar e usar um
imagePullSecret
até que o problema conhecido seja resolvido.Opcionalmente, clique em Mostrar configurações avançadas e nas guias subsequentes a serem definidas:
Clique em Criar para implantar a imagem no Cloud Run for Anthos e aguarde a conclusão da implantação.
Você acabou de implantar um serviço em um cluster ativado do Cloud Run for Anthos.
Linha de comando
Para implantar uma imagem de contêiner, realize as etapas a seguir:
Execute o comando
gcloud run deploy
:gcloud run deploy SERVICE --image IMAGE_URL
Substitua SERVICE pelo nome do serviço no qual você quer implantar. Se o serviço especificado não existir, um novo serviço será criado.
IMAGE_URL por uma referência à imagem de contêiner, por exemplo,
gcr.io/myproject/my-image:latest
;Para usar o Artifact Registry com imagens de contêiner particulares, use o resumo de imagem.
Se você quiser usar a tag de imagem das imagens de contêiner particulares, será necessário criar e usar um
imagePullSecret
até que o problema conhecido seja resolvido.
Outras opções de implantação:
Para implantar em um namespace diferente do padrão, especifique o namespace usando o parâmetro
--namespace
.Para implantar em um local diferente da configuração padrão, especifique o
name
e alocation
do cluster com os parâmetros--cluster
e--cluster-location
:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Defina opções de conectividade com a sinalização
--connectivity
, conforme descrito em Como alterar as configurações de conectividade do serviço para especificar o acesso interno ou externo.Para o Cloud Run for Anthos no local, inclua o parâmetro
--kubeconfig
e especifique o arquivo de configuração:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Aguarde a conclusão da implantação. Após a conclusão bem-sucedida, uma mensagem de sucesso é exibida com o URL do serviço implantado.
YAML
É possível armazenar a especificação do serviço em um arquivo YAML
e
implantá-la usando a Google Cloud CLI.
Crie um novo arquivo
service.yaml
com este conteúdo:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE
Substitua:
- SERVICE pelo nome do serviço do Cloud Run for Anthos;
- IMAGE pelo URL da imagem de contêiner. Para usar o Artifact Registry com
imagens de contêiner particulares, use o
resumo de imagem.
Se você quiser usar a tag de imagem das imagens de contêiner particulares,
será necessário
criar e usar um
imagePullSecret
até que o problema conhecido seja resolvido.
Também é possível especificar mais configurações, como variáveis de ambiente ou limites de memória.
Implante o novo serviço usando o seguinte comando:
gcloud beta run services replace service.yaml
Cloud Code
Para implantar com o Cloud Code, leia os guias do IntelliJ e do Visual Studio Code.
Como implantar uma nova revisão de um serviço atual
É possível implantar uma nova revisão usando o Console do Google Cloud, a linha de comando
gcloud
ou um arquivo de configuração YAML.
A alteração de qualquer configuração resulta na criação de uma nova revisão, mesmo que não haja alterações na imagem do contêiner. Cada revisão criada é imutável.
Clique na guia para ver instruções usando a ferramenta de sua preferência.
Console
Para implantar uma nova revisão de um serviço atual, realize as etapas a seguir:
Acesse o Cloud Run for Anthos no Console do Google Cloud:
Localize o serviço que você quer atualizar na lista de serviços e clique nele para abrir os detalhes.
Clique em EDITAR E IMPLANTAR NOVA REVISÃO. Isso exibe o formulário de implantação de revisão:
Se necessário, forneça o URL para a nova imagem do contêiner que você quer implantar.
Opcionalmente, defina:
Para enviar todo o tráfego para a nova revisão, marque a caixa de seleção identificada como Veicular esta revisão imediatamente. Para lançar uma nova revisão gradualmente, desmarque essa caixa de seleção: isso resultará em uma implantação em que nenhum tráfego será enviado para a nova revisão. Siga as instruções de lançamentos graduais após a implantação.
Clique em IMPLANTAR e aguarde a conclusão da implantação.
Linha de comando
Para implantar uma imagem de contêiner, realize as etapas a seguir:
Execute o comando
gcloud run services update
:gcloud run services update SERVICE --image IMAGE_URL
- Um sufixo de revisão é atribuído automaticamente a cada revisão. Se você quiser especificar seu próprio sufixo de revisão, adicione o parâmetro --revision-suffix.
Substitua SERVICE pelo nome do serviço no qual você quer implantar. Se o serviço especificado não existir, um novo serviço será criado.
IMAGE_URL por uma referência à imagem de contêiner, por exemplo,
gcr.io/myproject/my-image:latest
;Para usar o Artifact Registry com imagens de contêiner particulares, use o resumo de imagem.
Se você quiser usar a tag de imagem das imagens de contêiner particulares, será necessário criar e usar um
imagePullSecret
até que o problema conhecido seja resolvido.
Outras opções de implantação:
Para implantar em um namespace diferente do padrão, especifique o namespace usando o parâmetro
--namespace
.Para implantar em um local diferente da configuração padrão, especifique o
name
e alocation
do cluster com os parâmetros--cluster
e--cluster-location
:gcloud run deploy SERVICE --cluster CLUSTER-NAME --cluster-location CLUSTER-LOCATION
Defina opções de conectividade com a sinalização
--connectivity
, conforme descrito em Como alterar as configurações de conectividade do serviço para especificar o acesso interno ou externo.Para o Cloud Run for Anthos no local, inclua o parâmetro
--kubeconfig
e especifique o arquivo de configuração:gcloud run deploy SERVICE --image IMAGE_URL --kubeconfig KUBECONFIG-FILE
Aguarde a conclusão da implantação. Após a conclusão bem-sucedida, uma mensagem de sucesso é exibida com o URL do serviço implantado.
YAML
Faça o download da configuração de um serviço existente para um
arquivo YAML com o comando gcloud run services describe
usando a
sinalização --format=export
.
Em seguida, modifique o arquivo YAML e implante
essas alterações com o comando gcloud beta run services replace
.
Modifique apenas os atributos especificados.
Faça o download da configuração do serviço em um arquivo chamado
service.yaml
no espaço de trabalho local:gcloud run services describe SERVICE --format export > service.yaml
Substitua SERVICE pelo nome do serviço do Cloud Run for Anthos.
No seu arquivo local, atualize as configurações de revisão em qualquer atributo filho de
spec.template
.Implante a nova revisão:
gcloud beta run services replace service.yaml
Cloud Code
Para implantar uma nova revisão de um serviço existente com o Cloud Code, leia os guias do IntelliJ e do Visual Studio Code.
Como implantar imagens de outros projetos do Google Cloud
É possível implantar imagens de contêiner de outros projetos do Google Cloud se você definir as permissões corretas do IAM:
No Console do Google Cloud Console, abra o projeto do seu serviço do Cloud Run for Anthos.
Se você implantar para:
Cloud Run for Anthos, copie o e-mail da conta de serviço padrão do Compute Engine. Ele tem o sufixo @developer.gserviceaccount.com
Cloud Run para Anthos no VMware, crie uma conta de serviço do Google Cloud e faça o download das credenciais. Adicione essas credenciais como
imagePullSecrets
padrão da conta de serviço do Kubernetes.
Abra o projeto proprietário do registro do contêiner que você quer usar.
Clique em Adicionar para adicionar um novo principal.
Na caixa de texto Novos participantes, cole o e-mail da conta de serviço que você copiou antes.
Na lista suspensa Selecionar um papel, selecione o papel Armazenamento -> Visualizador de objeto do armazenamento.
Implante a imagem de contêiner no projeto que contém o serviço do Cloud Run for Anthos.
Como implantar imagens de contêiner particulares de outros registros de contêiner
Esta seção descreve a configuração de permissões corretas para implantar imagens de contêiner de um registro particular arbitrário no Cloud Run for Anthos. Um registro de contêiner particular requer credenciais para acessar a imagem do contêiner. Não é necessário seguir estas etapas para implantar imagens de contêiner particulares do Container Registry ou do Artifact Registry no mesmo projeto do cluster.
Para implantar uma imagem de contêiner particular, você precisa criar um secret do Kubernetes do tipo imagePullSecret
e associá-lo a uma conta de serviço:
Crie um secret
imagePullSecret
chamadocontainer-registry
:kubectl create secret docker-registry container-registry \ --docker-server=DOCKER_REGISTRY_SERVER \ --docker-email=REGISTRY_EMAIL \ --docker-username=REGISTRY_USER \ --docker-password=REGISTRY_PASSWORD
- Substitua DOCKER_REGISTRY_SERVER pelo FQDN de registro particular (por exemplo: https://gcr.io/ para o Container Registry ou https://hub.docker.com (em inglês) para o DockerHub).
- Substitua REGISTRY_EMAIL pelo e-mail que você está usando.
Substitua REGISTRY_USER pelo nome de usuário do Container Registry que você está usando.
Se você estiver usando o Container Registry ou o Artifact Registry e quiser armazenar e receber credenciais de longa duração em vez de transmitir tokens de acesso de curta duração, consulte Métodos de autenticação: arquivo de chave JSON.
Substitua REGISTRY_PASSWORD pela senha do Container Registry.
Abra sua conta de serviço padrão:
kubectl edit serviceaccount default --namespace default
Cada namespace no cluster do Kubernetes tem uma conta de serviço padrão chamada
default
. Essa conta de serviço padrão é usada para receber a imagem de contêiner, a menos que haja outras especificações ao implantar o serviço do Cloud Run for Anthos.Adicione o secret
imagePullSecret
recém-criado à conta de serviço padrão:imagePullSecrets: - name: container-registry
Sua conta de serviço agora terá esta aparência:
apiVersion: v1 kind: ServiceAccount metadata: name: default namespace: default ... secrets: - name: default-token-zd84v # The secret we just created: imagePullSecrets: - name: container-registry
Agora, todos os novos pods criados no namespace default
atual terão o secret
imagePullSecret
definido.
Como implantar com a injeção automática de arquivo secundário do Istio ativada
Para implantar o serviço no namespace com a injeção automática de arquivos secundários do Istio ativada (em inglês), é necessário usar uma instalação separada do Istio.
Como implantar serviços em uma rede interna
A implantação de serviços em uma rede interna é útil para empresas que fornecem apps internos para a equipe. Ela também é importante para os serviços usados por clientes executados fora do cluster do Cloud Run for Anthos.
Para implantar serviços em uma rede interna, consulte Como configurar uma rede particular e interna.
A seguir
Depois de implantar um novo serviço, é possível realizar estas ações:
- Reversões, lançamentos graduais e migração de tráfego
- Visualizar registros de serviço
- Monitorar o desempenho do serviço
- Definir limites de memória
- Definir as variáveis de ambiente
- Alterar a simultaneidade do serviço
- Gerenciar o serviço
- Gerenciar revisões de serviço
É possível automatizar os builds e implantações dos serviços do Cloud Run for Anthos usando os gatilhos do Cloud Build: