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:
Adicione uma origem de migração e crie uma migração, assim como você faz hoje com o ambiente de execução atual.
Personalize o plano de migração conforme necessário.
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
Edite o plano de migração baixado,
my-migration.yaml, em um editor de texto.Verifique o gerenciador de serviços aprimorado do Linux. A flag
v2kServiceManageré definida comotruepor 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 flagv2kServiceManagerserá definida comofalse. Quando a flag forfalse, 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
Realize outras personalizações necessárias para a migração conforme descrito em Personalizar o plano de migração.
Ao final das edições, salve o arquivo.
Faça upload do plano de migração editado:
migctl migration update my-migration --main-config my-migration.yaml
Gere e confira os artefatos de migração, assim como você faz hoje com o ambiente de execução atual.
Edite o novo arquivo
services-config.yamlpara 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.Depois de gerar os artefatos de migração, abra o arquivo
deployment_spec.yamlem 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:LABELespecifica o local da imagem de contêiner.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 PORTA propriedade
--set-env-varsdefine a variável de ambienteHC_V2K_SERVICE_MANAGERcomotruepara ativar o gerenciador de serviços aprimorado do Linux.A propriedade
--portespecifica 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:
Na etapa 3 de Como migrar a VM, onde é possível conferir o plano de migração, defina
v2kServiceManagercomotruee salve o plano:v2kServiceManager: true
Após a migração, abra o arquivo
deployment_spec.yamlem 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
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 80Como 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
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
- Saiba como usar services-config.yaml.