Criar um plano de migração

Para começar a migração das VMs, é necessário criá-la primeiro. Isso gera um objeto de plano de migração. Geralmente, o arquivo precisa de mais revisão e personalização antes de você prosseguir com a migração.

Uma migração é o objeto central com que você executa ações de migração, monitora as atividades de migração e o status com migctl e o Console do Google Cloud. Esse objeto é implementado como uma definição de recurso personalizada (CRD, na sigla em inglês) do Kubernetes e inclui recursos extras, como um PersistentVolumeClaim do Kubernetes no plano de migração.

Antes de começar

  • Adicione uma origem de migração.
  • Encontre o ID da instância da máquina virtual (VM), conforme descrito na seção a seguir.
  • Quando usar o Compute Engine como origem da migração, interrompa a VM de origem antes de criar uma migração. Depois que o objeto de migração for criado, reinicie a VM.

Encontrar o ID da VM

Para encontrar o ID da VM, procure o inventário da VM ou encontre-o manualmente, dependendo do tipo de origem.

Encontrar o ID usando o inventário da VM

  • Ao usar o migctl, é possível visualizar uma lista de VMs emitindo o seguinte comando:

    migctl source list-vms <name> [ --refresh ] [ --wide ]
    
  • Ao usar o Console do Google Cloud, navegue até o tipo de origem para encontrar uma tabela listando todas as VMs desse tipo.

Encontrar o ID manualmente

Encontre o ID da VM manualmente por tipo de origem:

Compute Engine

VMware

  • vmId: o ID ou nome da VM a ser migrada conforme exibidos na plataforma de origem. É possível usar um dos valores a seguir.

    • O nome da VM. Se você tiver certeza de que cada nome de VM é exclusivo em toda a implantação do VMware, o nome simples da VM funcionará. Se os nomes das VMs estiverem duplicados, use o ID conforme descrito abaixo.

      Veja na imagem a seguir como conseguir o nome da VM no vSphere Web Client.

    • O ID da VM do vSphere, também chamado de MoRef. Ele é exibido no URL do vSphere Web Client ao selecionar a VM.

      O MoRef está no URL do vSphere

      Também é possível usar a PowerCLI para encontrar o MoRef.

Requisitos de nomenclatura

Você atribui um nome a uma migração ao criá-la no Migrate to Containers. O nome precisa cumprir os seguintes requisitos:

  • conter no máximo 63 caracteres;
  • conter apenas caracteres alfanuméricos minúsculos ou "-" (hífen);
  • começar com um caractere alfanumérico;
  • terminar com um caractere alfanumérico.

Cargas de trabalho compatíveis

Crie uma migração

Cargas de trabalho do Linux e do Windows

Crie uma migração usando a ferramenta migctl ou o console do Google Cloud.

migctl

  1. Pare a VM. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  2. Crie a migração:

    migctl migration create my-migration --source my-src --vm-id my-id --type server-type

    Em que --vm-id especifica o nome da instância de VM, conforme mostrado no console do tipo de origem. Em que --type é --type=windows-iis-container ou linux-system-container.

Console

  1. Se a origem da migração for uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

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

    Acessar a página "Migrate to Containers"

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

  4. Clique em Criar migração.

  5. Digite o nome da migração.

  6. Selecione a origem da migração que você criou em Como adicionar uma origem de migração.

  7. Defina o Tipo de carga de trabalho como Contêiner do sistema baseado em imagem ou Contêiner do IIS do Windows.

  8. Digite o ID da VM de origem. Consulte Antes de começar para mais informações sobre como determinar o ID da VM.

  9. Clique em Criar migração.

    Quando a criação da migração for concluída, a coluna Status exibe Plano de migração gerado.

CRD

  1. Para definir uma migração, crie um arquivo de Migração com o nome my-migration.yaml.

    Nesse arquivo, o campo name em sourceProviderRef especifica o nome de um SourceProvider criado anteriormente, e o campo sourceId especifica o nome da instância do Compute Engine. Type vai ser --type=windows-iis-container ou linux-system-container.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: linux-system-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  3. Aplique o arquivo:

    kubectl apply -f my-migration.yaml

Cargas de trabalho do Tomcat

Especificar parâmetros do Tomcat

Você precisa especificar manualmente os valores de CATALINA_BASE e CATALINA_HOME.

migctl

  1. Pare a VM do Compute Engine. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  2. Crie a migração:

    migctl migration create my-migration --source my-ce-src --vm-id my-id
    --type tomcat-container --parameters catalina-base=/catalina/base/path1:/catalina/base/path2,catalina-home=/catalina/home/path/,java-version=11
    
    • --vm-id especifica o nome da instância, conforme mostrado no console de serviço.
    • catalina-base especifica uma lista de valores CATALINA_BASE separados por dois pontos.
    • catalina-home especifica o valor de CATALINA_HOME.
    • java-version é um parâmetro opcional que especifica a versão do Java que será usada pelo contêiner.

CRD

  1. Para definir uma migração, crie um arquivo de Migração com o nome my-migration.yaml.

    Nesse arquivo, defina os seguintes campos:

    • sourceProvider: especifica o nome de um SourceProvider criado anteriormente.
    • sourceId: especifica o nome da instância de VM do Compute Engine.
    • parameters: define parâmetros específicos para as cargas de trabalho do Tomcat.

    Confira a seguir um exemplo de um arquivo de migração com estes valores de campo definidos:

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: tomcat-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
         parameters:
         - name: catalina-base
           value: /opt/tomcat
         - name: catalina-home
           value: /opt/tomcat
  2. Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  3. Aplique o arquivo:

    kubectl apply -f my-migration.yaml

Cargas de trabalho do WebSphere tradicional

Especificar WAS_HOME

A variável de ambiente WAS_HOME especifica onde o WAS tradicional está instalado, como /opt/IBM/WebSphere/AppServer/. O Migrate to Containers usa esse valor quando você cria uma migração para executar scripts que buscam informações sobre um app e determina o caminho de um perfil de app. Se o Migrate to Containers não localizar a pasta de instalação, defina o valor de WAS_HOME.

migctl

  1. Pare a VM. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  2. Crie a migração:

    migctl migration create my-migration --source my-was-src --vm-id my-id
    --type websphere-traditional-container --parameters was-home=/opt/IBM/WebSphere/AppServer/
    

    Em que --vm-id especifica o nome da instância, conforme mostrado no console de serviço.

CRD

  1. Para definir uma migração, crie uma Migração arquivada com o nome my-migration.yaml.

    Nesse arquivo, defina os seguintes campos:

    • sourceProvider: especifica o nome de um SourceProvider criado anteriormente.
    • sourceId: especifica o nome da instância de VM do Compute Engine.
    • parameters: define parâmetros específicos para as cargas de trabalho do WebSphere.

    Confira a seguir um exemplo de um arquivo de migração com estes valores de campo definidos:

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: websphere-traditional-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
         parameters:
         - name: was_home
           value: /opt/IBM/WebSphere/AppServer/
  2. Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  3. Aplique o arquivo:

    kubectl apply -f my-migration.yaml

Cargas de trabalho do JBoss

Crie uma migração usando a ferramenta migctl ou o console do Google Cloud.

migctl

  1. Pare a VM. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  2. Crie a migração:

    migctl migration create my-migration --source my-src --vm-id my-id --type=jboss-container --parameters jboss-home=/opt/jboss

    Em que --vm-id especifica o nome da instância de VM, conforme mostrado no console do tipo de origem.

Console

  1. Se a origem da migração for uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

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

    Acessar a página "Migrate to Containers"

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

  4. Clique em Criar migração.

  5. Digite o nome da migração.

  6. Selecione a origem da migração que você criou em Como adicionar uma origem de migração.

  7. Defina o Tipo de carga de trabalho como Contêiner do JBoss.

  8. Digite o Nome da instância de origem. Consulte Antes de começar para mais informações sobre como determinar o nome da instância.

  9. Defina o parâmetro JBOSS_HOME e use o caminho de instalação do JBoss.

  10. Clique em Criar migração.

    Quando a criação da migração for concluída, a coluna Status exibe Plano de migração gerado.

CRD

  1. Para definir uma migração, crie um arquivo Migration chamado my-migration.yaml.

    Nesse arquivo, o campo name em sourceProviderRef especifica o nome de um SourceProvider criado anteriormente, e o campo sourceId especifica o nome da instância do Compute Engine. No campo type, insira jboss-container. É possível adicionar uma lista de parâmetros de descoberta em discoveryParameters. Cada parâmetro discoveryParameters tem duas propriedades: name e value. Ao criar uma migração do JBoss, o parâmetro discoveryParameters chamado jboss-home, que especifica o caminho inicial do JBoss como value, é obrigatório.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
      name: my-migration
      namespace: v2k-system
    spec:
      type: jboss-container2
      discoveryParameters:
      - name: jboss-home
        value: /path-to-jboss-home
      sourceSnapshotTemplate:
        spec:
          sourceProviderRef:
            name: my-ce-src
          sourceId: my-id
    
  2. Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  3. Aplique o arquivo:

    kubectl apply -f my-migration.yaml

Cargas de trabalho do Apache

Crie uma migração usando a ferramenta migctl ou o console do Google Cloud.

migctl

  1. Pare a VM. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  2. Crie a migração:

    migctl migration create my-migration --source my-src --vm-id my-id --type=apache-container

    Em que --vm-id especifica o nome da instância de VM, conforme mostrado no console do tipo de origem.

Console

  1. Se a origem da migração for uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

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

    Acessar a página "Migrate to Containers"

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

  4. Clique em Criar migração.

  5. Digite o nome da migração.

  6. Selecione a origem da migração que você criou em Como adicionar uma origem de migração.

  7. Defina o Tipo de carga de trabalho como Contêiner do Apache.

  8. Digite o ID da VM de origem. Consulte Antes de começar para mais informações sobre como determinar o ID da VM.

  9. Clique em Criar migração.

    Quando a criação da migração for concluída, a coluna Status exibe Plano de migração gerado.

CRD

  1. Para definir uma migração, crie um arquivo Migration chamado my-migration.yaml.

    Nesse arquivo, o campo name em sourceProviderRef especifica o nome de um SourceProvider criado anteriormente, e o campo sourceId especifica o nome da instância do Compute Engine. No campo type, insira apache-container.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: apache-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  3. Aplique o arquivo:

    kubectl apply -f my-migration.yaml

Cargas de trabalho do WordPress

Crie uma migração usando a ferramenta migctl ou o console do Google Cloud.

migctl

  1. Pare a VM. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  2. Crie a migração:

    migctl migration create my-migration --source my-src --vm-id my-id --type=wordpress-container

    Em que --vm-id especifica o nome da instância de VM, conforme mostrado no console do tipo de origem.

Console

  1. Se a origem da migração for uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

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

    Acessar a página "Migrate to Containers"

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

  4. Clique em Criar migração.

  5. Digite o nome da migração.

  6. Selecione a origem da migração que você criou em Como adicionar uma origem de migração.

  7. Defina o Tipo de carga de trabalho como Contêiner do WordPress.

  8. Digite o ID da VM de origem. Consulte Antes de começar para mais informações sobre como determinar o ID da VM.

  9. Clique em Criar migração.

    Quando a criação da migração for concluída, a coluna Status exibe Plano de migração gerado.

CRD

  1. Para definir uma migração, crie um arquivo Migration chamado my-migration.yaml.

    Nesse arquivo, o campo name em sourceProviderRef especifica o nome de um SourceProvider criado anteriormente, e o campo sourceId especifica o nome da instância do Compute Engine. No campo type, insira wordpress-container.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: wordpress-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Se você estiver migrando uma VM do Compute Engine, interrompa-a. A VM precisa ser interrompida para você criar uma migração. Após a conclusão da migração, reinicie a VM.

  3. Aplique o arquivo:

    kubectl apply -f my-migration.yaml

Monitorar a criação da migração

Use a ferramenta migctl ou o console do Google Cloud para monitorar o progresso da criação da migração.

migctl

  1. Aguarde o término da fase de criação da migração:

    migctl migration status my-migration
    
    NAME           CURRENT-OPERATION      PROGRESS   STEP                   STATUS   AGE
    my-migration   GenerateMigrationPlan  [1/3]      CreateSourceSnapshots  Running  13s 
  2. Se você estiver migrando uma VM do Compute Engine, reinicie-a. Uma VM interrompida não é necessária após esta etapa.

Console

Quando o status da migração mostrar que a migração foi criada, avance para a próxima etapa:

  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. Veja o status de uma migração:

    • Como visualizar a coluna Status da linha para a migração.

    • Clique no nome da migração. A página Detalhes da migração é aberta. Clique na guia Monitoramento para ver o status detalhado ou na guia Eventos para ver os eventos de migração.

  4. Quando a criação da migração for concluída, o Status exibe Plano de migração gerado.

  5. Se você estiver migrando uma VM do Compute Engine, reinicie-a. Uma VM interrompida não é necessária após esta etapa.

CRD

Use kubectl para receber informações de migração e status de MigrationStatus especificando um JSONPath para o campo necessário.

  1. Aguarde o término da fase de criação da migração:

    Use dois comandos kubectl wait, um para aguardar a condição "Ready" e outro para a condição "Failed". A fase de criação do plano de migração está em execução até que a primeira condição seja atendida.

    unset pids; for cond in "Ready" "Failed"; do kubectl wait migrations.anthos-migrate.cloud.google.com my-migration -n v2k-system --for condition=$cond --timeout=15m & pids+=($!); done; wait -p met_pid -n ${pids[@]}
    kill ${pids[@]/$met_pid} # terminate the process that did not complete.
    

    Quando o comando de espera estiver completo, a operação vai ser concluída e você vai poder passar para a próxima etapa.

  2. Veja o status do plano de migração:

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.conditions[?(@.type==\"Ready\")].status} my-migration

    Retorna True quando o plano de migração está pronto ou False quando falha.

  3. Quando a fase de criação da migração falhar, use o seguinte comando para receber a mensagem de erro:

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system  -o jsonpath={.status.conditions[?(@.type=="Ready")].message} my-migration

  4. Se você estiver migrando uma VM do Compute Engine, reinicie-a. Uma VM interrompida não é necessária após esta etapa.

A seguir