Implantar contêineres no Cloud Run
Se você usar o gerenciador de serviços aprimorado do Linux, oferecido por padrão para migrar as cargas de trabalho, implante o contêiner no Cloud Run sem precisar fazer outras alterações 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 como você faz hoje com o ambiente de execução atual.
Personalize seu plano de migração conforme necessário.
Faça o download do plano de migração. O plano de migração é representado por WindowsGenerateArtifacts:
Por exemplo, para uma migração chamada "my-migration":
migctl migration get my-migration
Edite o plano de migração transferido por download,
my-migration.yaml
, em um editor de texto.Verifique o gerenciador de serviços aprimorado do Linux. A sinalização
v2kServiceManager
é definida comotrue
por padrão. No entanto, se o Migrate to Containers detectar um serviço do sistema que não é compatível com o gerenciador de serviços, você receberá um alerta e a sinalizaçãov2kServiceManager
será definida comofalse
. Quando a sinalização forfalse
, a migração usará um ambiente de execução legado compatível com o serviço.O seguinte alerta é exibido junto com o serviço incompatível:
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 incompatível é encontrado, também é possível definir a sinalização manualmente como
true
. Nesse caso, você pode manter o serviço incompatível 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 sinalização para
true
:v2kServiceManager: true
Realize outras personalizações necessárias para a migração conforme descrito em Personalizar o plano de migração.
Quando as edições estiverem concluídas, salve o arquivo editado.
Faça upload do plano de migração editado:
migctl migration update my-migration --main-config my-migration.yaml
Gere e revise os artefatos de migração como você faz hoje com o ambiente de execução atual.
Edite o novo arquivo
services-config.yaml
para configurar as propriedades de inicialização do contêiner. Salve o arquivo e recrie sua imagem de contêiner para aplicar as alterações.Consulte Como usar o services-config.yaml para mais informações sobre como editar o arquivo
services.yaml
.Depois de gerar os artefatos de migração, abra o arquivo
deployment_spec.yaml
em um editor para determinar o local da imagem do contêiner. Por exemplo, você verá algo semelhante ao seguinte:spec: containers: - image: gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL
Em que
gcr.io/PROJECT_NAME/IMAGE_NAME:LABEL
especifica o local da imagem do 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 PORT
A propriedade
--set-env-vars
define a variável de ambienteHC_V2K_SERVICE_MANAGER
comotrue
para ativar o gerenciador de serviços aprimorado do Linux.A propriedade
--port
especifica a porta em que as solicitações são enviadas para o 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, em que você revisa o plano de migração, defina
v2kServiceManager
comotrue
no plano de migração e salve o plano:v2kServiceManager: true
Após a conclusão da migração, abra o arquivo
deployment_spec.yaml
em um editor para determinar o local do contêiner. Por exemplo, você verá algo semelhante ao seguinte:spec: containers: - image: gcr.io/PROJECT_NAME/quickstart-instance:LABEL
Na seção Como implantar a carga de trabalho migrada, implante a imagem do contêiner no Cloud Run usando o comando:
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
O servidor da Web no contêiner migrado detecta solicitações na porta 80. Portanto, certifique-se de especificar essa porta ao implantar o contêiner.
Você verá a seguinte 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, faça uma solicitação ao contêiner usando o URL de serviço, transmitindo suas credenciais:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" https://my-runtime-s5ahdq-uc.a.run.app
Você verá a página "Hello World!".
A seguir
- Saiba como usar o services-config.yaml.