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 em um cluster de destino

As seções a seguir descrevem as opções disponíveis para implantar seu em um cluster.

Implantar em um cluster de destino usando o GCR como o registro do Docker

Para que um cluster de destino tenha acesso ao 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"}]}'
    • Editar o arquivo deployment_spec.yaml para adicionar o valor imagePullSecrets à definição spec.template.spec.

      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 à imagem Docker de registros.

  2. Implantar o contêiner:

    kubectl apply -f deployment_spec.yaml

A seguir