Implantar um serviço ou job do Cloud Run

Este documento descreve como implantar seus aplicativos, incluindo serviços e jobs do Cloud Run

O Cloud Deploy permite implantar cargas de trabalho baseadas em contêiner em qualquer Serviço do Cloud Run ou job. Todos os recursos do Cloud Deploy são com suporte nas implantações em destinos do Cloud Run para Os serviços do Cloud Run, mas as implantações canário não são compatíveis com jobs do Cloud Run.

Este documento descreve as três configurações principais que você precisa concluir em para implantar no Cloud Run:

.

Limitações

  • Só é possível implantar um serviço ou job do Cloud Run por destino.

  • Não é possível executar uma implantação canário. com um job do Cloud Run.

    No entanto, os serviços do Cloud Run podem usar uma implantação canário.

Antes de começar

Crie a configuração de destino

O destino pode ser configurado em seu YAML de pipeline de entrega ou pode estar em um arquivo separado. Além disso, você pode configurar mais de um destino no mesmo arquivo.

Na definição do destino, crie uma estrofe de run para identificar o local em que o serviço do Cloud Run será criado.

A sintaxe para especificar o serviço ou job do Cloud Run no a definição de destino é a seguinte:

run:
 location: projects/[project_name]/locations/[region_name]

Esse identificador de recurso usa os seguintes elementos:

  • [project_name] é o nome do projeto do Google Cloud em que seu O serviço ou job do Cloud Run será criado.

    Faça isso para cada destino. Recomendamos um projeto diferente para cada serviço ou job do Cloud Run. Se você quiser mais de um serviço ou trabalho no mesmo projeto, você precisa usar Perfis do Skaffold no arquivo de configuração skaffold.yaml.

  • [region_name] é a região em que o serviço ou job será criado. Seu serviço ou trabalho pode estar em qualquer região compatível com o Cloud Run.

Confira a seguir um exemplo de configuração de destino que define Serviço ou job do Cloud Run a serem criados:

      apiVersion: deploy.cloud.google.com/v1
      kind: Target
      metadata:
       name: dev
      description: development service
      run:
       location: projects/my-app/locations/us-central1

É possível definir esse destino dentro de um pipeline de entrega do Cloud Deploy ou separadamente. De qualquer forma, você precisa registrar o destino antes de criar a versão para implantar o serviço do Cloud Run ou trabalho.

Criar a configuração do Skaffold

Confira a seguir um arquivo skaffold.yaml de exemplo de Implantação do Cloud Run:

apiVersion: skaffold/v4beta7
kind: Config
metadata: 
  name: cloud-run-application
manifests:
  rawYaml:
  - service.yaml
deploy:
  cloudrun: {}

Neste arquivo skaffold.yaml...

  • manifests.rawYaml fornece os nomes dos componentes do Cloud Run definições de serviço.

    Neste exemplo, service.yaml é o arquivo que define uma serviço do Cloud Run que o Skaffold implantará. Este nome de arquivo pode ser qualquer coisa, mas, por convenção, é service.yaml para um serviço, e job.yaml para um job.

  • A estrofe deploy especifica como você quer que o manifesto seja implantado, especificamente, o projeto e o local. deploy é obrigatório.

    Recomendamos que você deixe o campo {} em branco. O Cloud Deploy é preenchido durante a renderização, com base no projeto e no local da imagem definição.

    Para desenvolvimento local, no entanto, você pode fornecer valores aqui. No entanto, O Cloud Deploy sempre usa o projeto e o local do destino da definição, independentemente de os valores serem fornecidos aqui.

Criar as definições do serviço do Cloud Run

Para criar uma definição de serviço do Cloud Run, crie um manualmente ou copiar um de um serviço existente. Ambos estão descritos neste nesta seção.

Opção 1: criar um novo service.yaml do Cloud Run

O service.yaml define o serviço do Cloud Run. Quando você criar uma versão, o Skaffold usará essa definição para implantar o serviço.

Veja um exemplo simplificado:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
 name: [SERVICE_NAME]
spec:
 template:
  spec:
   containers:
   - image: [IMAGE_PATH]

Em que:

  • [SERVICE_NAME] é um nome para este serviço do Cloud Run.

  • [IMAGE_PATH] aponta para a imagem ou as imagens do contêiner com que você está implantando esse serviço.

Opção 2: copiar um service.yaml de um serviço atual usando o console do Google Cloud

É possível criar um serviço usando o console do Google Cloud ou um serviço atual. e copie o service.yaml de lá.

Para acessar o service.yaml usando a Google Cloud CLI:

gcloud run services describe [service_name] --format=export

Para acessar o service.yaml no console do Google Cloud:

  1. No console do Google Cloud, acesse "Serviços do Cloud Run" página.

  2. Selecione o serviço existente com a definição que você quer usar.

Ou crie uma nova e selecione-a. Quando você selecionar o serviço, a página "Detalhes do serviço" será exibida:

página de detalhes do serviço no console do Google Cloud, mostrando a guia YAML

  1. Selecione a guia YAML.

  2. Clique em Editar e copie o conteúdo do YAML em um novo arquivo chamado service.yaml, no seu sistema de arquivos, de modo que o Skaffold possa usá-lo quando você criar uma versão.

Criar suas definições de job do Cloud Run

Para implantar uma definição de job do Cloud Run, crie um manualmente ou copiar um de um job atual. Ambos estão descritos neste nesta seção.

Os jobs não são necessariamente executados após a implantação pelo Cloud Deploy. Isso é diferente dos serviços, que estão em execução aplicativos depois que eles são implantados. O modo como um job é invocado depende dele por conta própria.

Opção 1: criar um novo job.yaml do Cloud Run

O job.yaml define sua job do Cloud Run. Quando você cria uma versão, o Skaffold usa definida para implantar o job.

Veja um exemplo simplificado:

apiVersion: run.googleapis.com/v1
kind: Job
metadata:
 name: [JOB_NAME]
spec:
  template:
  spec:
   containers:
   - image: [IMAGE_PATH]

Em que:

  • [JOB_NAME] é um nome para este job do Cloud Run.

  • [IMAGE_PATH] aponta para a imagem do contêiner que você está implantando para este job.

Opção 2: copiar um job.yaml de um job atual usando o console do Google Cloud

É possível criar um job usando o console do Google Cloud ou um atual. e copie o job.yaml de lá.

Para acessar o job.yaml usando a Google Cloud CLI:

gcloud run jobs describe [job_name] --format=export

Para acessar o job.yaml no console do Google Cloud:

  1. No console do Google Cloud, acesse "Jobs do Cloud Run" página.

  2. Selecione o job atual com a definição que você quer usar.

Ou crie um novo e selecione-o. Quando você selecionar o job, a página "Detalhes do job" será mostrada:

página de detalhes do job no console do Google Cloud, mostrando a guia YAML

  1. Selecione a guia YAML.

  2. Clique em Editar e copie o conteúdo do YAML em um novo arquivo chamado job.yaml, no seu sistema de arquivos, de modo que o Skaffold possa usá-lo quando você criar uma versão.

Como tudo funciona em conjunto

Agora que você tem o serviço ou a definição do job do Cloud Run, A configuração do skaffold.yaml e o destino do Cloud Deploy definição, e você registrou seu destino como um recurso do Cloud Deploy, invocar o pipeline de entrega para criar uma versão e avançar na progressão de destinos definidos no pipeline.

Guia de início rápido Implantar um app no Cloud Run usando o Cloud Deploy mostra tudo isso em ação.

Comportamento dos serviços em todas as revisões

Quando você reimplanta um serviço, a nova revisão é baseada implantou service.yaml. Nada na revisão anterior é mantido, a menos que seja o mesmo no YAML recém-implantado. Por exemplo, se há definições de configuração ou marcadores na revisão anterior que não estão no novo YAML, essas configurações ou rótulos estarão ausentes da nova revisão.

Como acionar jobs do Cloud Run

Depois de implantar um job, é possível acioná-lo conforme descrito na documentação do Cloud Run.

Como implantar serviços e jobs do Cloud Run em vários projetos

Se você precisar implantar serviços ou jobs que estejam em projetos diferentes, seus conta de serviço de execução precisa permissão para acessar os projetos em que esses serviços ou jobs estão definidos.

Consulte a conta de serviço de execução do Cloud Deploy. e Permissões e papéis do Identity and Access Management para mais informações.

A seguir