Implantar uma carga de trabalho do Linux em um cluster de destino
Depois de migrar uma carga de trabalho da plataforma de origem, use os artefatos de implantação gerados durante esse processo para implantar o contêiner de carga de trabalho migrado para outro cluster.
O Skaffold pode lidar com o fluxo de trabalho para criar, enviar e implantar o aplicativo. Para mais informações, consulte Criar e implantar várias imagens usando o Skaffold.
Antes de começar
Antes de implantar a carga de trabalho, você precisa:
- Migrar a carga de trabalho usando as ferramentas do Migrate to Containers.
- Revisar os arquivos de implantação gerados.
Se você estiver executando o contêiner do sistema legado, instale o suporte do ambiente de execução legado com
migctl
no cluster:migctl setup install --runtime
Implantar cargas de trabalho no cluster de processamento
É possível implantar a carga de trabalho migrada no mesmo cluster que você usou para realizar a migração, chamado de cluster de processamento do Migrate to Containers. Na maioria das situações, você não precisa executar configurações adicionais no cluster de processamento porque o cluster já requer acesso de leitura/gravação ao registro do Docker para executar uma migração.
Implantar em um cluster de destino usando o GCR como o registro do Docker
Para garantir que um cluster de destino tenha acesso ao Google Container Registry (GCR), crie um secret do Kubernetes que contenha as credenciais necessárias para acessar o GCR:
Crie uma conta de serviço para implantar uma migração, conforme descrito em Como criar uma conta de serviço para acessar o Container Registry e o Cloud Storage.
Esse processo faz o download de um arquivo de chave JSON chamado
m4a-install.json
.Crie um secret do Kubernetes que contenha as credenciais necessárias para acessar o GCR:
kubectl create secret docker-registry gcr-json-key \ --docker-server=gcr.io --docker-username=_json_key --docker-password="$(cat ~/m4a-install.json)" \ --docker-email=account@project.iam.gserviceaccount.com
em que:
docker-registry
especifica o nome do secret do Kubernetes. Neste exemplo, gcr-json-key;docker-server=gcr.io
especifica o GCR como o servidor;docker-username=_json_key
especifica que o nome de usuário está no arquivo de chave JSON;docker-password
especifica o uso da senha no arquivo de chave JSON.docker-email
especifica o endereço de e-mail da conta de serviço.
Configure o secret do Kubernetes de uma das seguintes maneiras:
Alterando o valor padrão de
imagePullSecrets
:kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gcr-json-key"}]}'
Editando o arquivo
deployment_spec.yaml
para adicionar o valorimagePullSecrets
à definiçãospec.template.spec
, conforme mostrado abaixo:spec: containers: - image: gcr.io/PROJECT_ID/mycontainer-instance:v1.0.0 name: mycontainer-instance ... volumes: - hostPath: path: /sys/fs/cgroup type: Directory name: cgroups imagePullSecrets: - name: gcr-json-key
Implantar em um cluster de destino usando um registro do Docker com autenticação básica
Se você usa um registro do Docker para armazenar imagens de migração, o registro precisa ser compatível com a autenticação básica com um nome de usuário e uma senha. Como há muitas maneiras de configurar uma conexão somente leitura a um registro do Docker, use o método apropriado para sua plataforma de cluster e o registro do Docker.
Aplicar arquivo YAML de implantação gerado
Use kubectl
para aplicar a especificação de implantação ao cluster de destino, como um cluster de produção.
kubectl
Verifique se o cluster de destino tem acesso de leitura ao registro de imagem do Docker, conforme descrito acima em Verificar se o cluster de destino tem acesso de leitura ao registro de imagem do Docker.
Implantar o contêiner:
kubectl apply -f deployment_spec.yaml
Depois de concluir o teste de validação na carga de trabalho migrada para garantir que ela está funcionando corretamente, exclua a migração para liberar recursos. Saiba mais em Como excluir uma migração.
Excluir uma migração
Depois de validar e testar a carga de trabalho migrada para garantir que ela esteja funcionando corretamente, exclua a migração. Excluir a migração libera todos os recursos usados por ela.
migctl
Exclua uma migração concluída usando o seguinte comando:
migctl migration delete MIGRATION_NAME
Em que MIGRATION_NAME é o nome da migração.
Console
Abra a página "Migrate to Containers" no Console do Google Cloud.
Clique na guia Migrações para exibir uma tabela com as migrações disponíveis.
Para excluir a migração, clique no ícone da lixeira,
, no lado direito da tabela, e selecione Excluir migração.
A seguir
- Saiba como concluir atualizações de imagem pós-migração.