Implantar contêineres no Cloud Run

Se você usar o gerenciador de serviços aprimorado do Linux, oferecido por padrão para migrar cargas de trabalho de contêiner, implante o contêiner no Cloud Run. Você não precisa fazer mais nenhuma outra alteração no contêiner.

Para implantar o contêiner no Cloud Run, siga estas etapas:

  1. Instale o Migrate to Containers 1.15.0.

  2. Adicione uma origem de migração e crie uma migração, assim como você faz hoje com o ambiente de execução atual.

  3. Personalize o plano de migração conforme necessário.

    1. Faça o download do plano de migração. O plano de migração é representado por AppXGenerateArtifactsFlow.

      Por exemplo, para uma migração chamada my-migration:

      migctl migration get my-migration
    2. Edite o plano de migração baixado, my-migration.yaml, em um editor de texto.

    3. Verifique o gerenciador de serviços aprimorado do Linux. A flag v2kServiceManager é definida como true por padrão. No entanto, se o Migrate to Containers detectar um serviço do sistema que não é aceito pelo gerenciador de serviços, você vai receber um alerta e a flag v2kServiceManager será definida como false. Quando a flag for false, a migração vai usar um ambiente de execução legado que aceita o serviço.

      O seguinte alerta é exibido com o serviço não aceito:

      Service is not supported by v2k service manager, therefore legacy runtime
      will be used instead of v2k service manager, and migrated workload would
      not fit running on Autopilot clusters of Cloudrun.

      Quando um serviço que não é aceito é encontrado, também é possível definir a flag manualmente como true. Nesse caso, você pode manter o serviço não aceito na imagem gerada em que ele não pode ser executado ou excluí-lo do plano de migração.

      Para ativar o novo gerenciador de serviços, redefina a flag como true:

      v2kServiceManager: true
    4. Realize outras personalizações necessárias para a migração conforme descrito em Personalizar o plano de migração.

    5. Ao final das edições, salve o arquivo.

    6. Faça upload do plano de migração editado:

      migctl migration update my-migration --main-config my-migration.yaml
  4. Gere e confira os artefatos de migração, assim como você faz hoje com o ambiente de execução atual.

  5. Edite o novo arquivo services-config.yaml para configurar as propriedades de inicialização do contêiner. Salve o arquivo e recrie a imagem de contêiner para aplicar as alterações.

    Consulte Como usar services-config.yaml para saber como editar o arquivo services.yaml.

  6. Depois de gerar os artefatos de migração, abra o arquivo deployment_spec.yaml em um editor para determinar o local da imagem de contêiner. Por exemplo, algo assim vai ser exibido:

    spec:
      containers:
      - image: gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL

    Em que gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL especifica o local da imagem de contêiner.

  7. Use o seguinte comando para implantar o contêiner no Cloud Run:

    gcloud run deploy my-runtime
        --image gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL
        --region REGION --platform managed
        --set-env-vars=HC_V2K_SERVICE_MANAGER=true --port PORT 

    A propriedade --set-env-vars define a variável de ambiente HC_V2K_SERVICE_MANAGER como true para ativar o gerenciador de serviços aprimorado do Linux.

    A propriedade --port especifica a porta em que as solicitações são enviadas ao contêiner. A porta padrão é 8080.

Exemplo: como implantar o contêiner do Guia de Início Rápido no Cloud Run

Use o guia de início rápido atual para migrar um contêiner que contém um servidor da Web simples e implantá-lo no Cloud Run. As únicas alterações necessárias no processo do guia de início rápido são:

  1. Na etapa 3 de Como migrar a VM, onde é possível conferir o plano de migração, defina v2kServiceManager como true e salve o plano:

    v2kServiceManager: true
  2. Após a migração, abra o arquivo deployment_spec.yaml em um editor para determinar o local do contêiner. Por exemplo, algo assim vai ser exibido:

    spec:
      containers:
      - image: gcr.io/PROJECT_NAME/quickstart-instance:LABEL
  3. Na seção Como implantar a carga de trabalho migrada, use o comando abaixo para implantar a imagem de contêiner no Cloud Run:

    gcloud run deploy my-runtime
        --image gcr.io/PROJECT_NAME/quickstart-instance:LABEL
        --region REGION --platform managed
        --set-env-vars=HC_V2K_SERVICE_MANAGER=true --port 80 

    Como o servidor da Web no contêiner migrado detecta solicitações na porta 80, especifique essa porta ao implantar o contêiner.

    Você vai receber esta resposta, que inclui o URL do serviço do Cloud Run:

    Allow unauthenticated invocations to [my-runtime] (y/N)?  y
    
    Deploying container to Cloud Run service [my-runtime] in project [PROJECT_NAME] region [REGION]
    Deploying new service... Done.
      ✓ Creating Revision…
      ✓ Routing traffic…
        Setting IAM Policy…
    Done.
    Service [my-runtime] revision [my-runtime-00001-sas] has been deployed and is serving 100 percent of traffic.
    Service URL: https://my-runtime-s5ahdq-uc.a.run.app
  4. No Cloud Shell, transmita suas credenciais para fazer uma solicitação ao contêiner usando o URL de serviço dele:

    curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" https://my-runtime-s5ahdq-uc.a.run.app

    Você vai acessar a página Hello World!.

A seguir