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:

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:

  1. 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.

  2. 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.
  3. 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 valor imagePullSecrets à definição spec.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

  1. 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.

  2. Implantar o contêiner:

    kubectl apply -f deployment_spec.yaml
  3. 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

  1. 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

  1. Abra a página "Migrate to Containers" no Console do Google Cloud.

    Acessar a página "Migrate to Containers"

  2. Clique na guia Migrações para exibir uma tabela com as migrações disponíveis.

  3. Para excluir a migração, clique no ícone da lixeira, , no lado direito da tabela, e selecione Excluir migração.

A seguir