Migrar uma VM do Linux usando o Migrate to Containers
Neste guia de início rápido, você criará uma máquina virtual (VM) do Compute Engine e usará o Migrate to Containers para migrar a VM para o Google Kubernetes Engine (GKE).
Antes de começar
No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
Ative a API Compute Engine.
Ative a API GKE:
Para usar os exemplos de linha de comando deste guia, faça o seguinte:
- Instale ou atualize para a versão mais recente da Google Cloud CLI.
- Defina uma região e uma zona padrão.
Criar uma VM do Compute Engine com um servidor da Web
Nesta seção, você verá como criar uma VM simples do Compute Engine que exibirá uma página da Web "Hello, World!" que você pode usar para testes após a conclusão da migração.
No console do Google Cloud, clique em Ativar o Cloud Shell.
Para criar uma VM, execute o seguinte comando:
gcloud compute instances create quickstart-instance \ --zone=us-central1-a --machine-type=e2-standard-2 \ --subnet=default --scopes="cloud-platform" \ --tags=http-server,https-server --image=ubuntu-minimal-1604-xenial-v20210119a \ --image-project=ubuntu-os-cloud --boot-disk-size=10GB --boot-disk-type=pd-standard \ --boot-disk-device-name=quickstart-instance
Para criar uma regra de firewall que permita solicitações para a instância por HTTP, execute o seguinte comando:
gcloud compute firewall-rules create default-allow-http \ --direction=INGRESS --priority=1000 --network=default --action=ALLOW \ --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server
No console do Google Cloud, acesse a página Instâncias de VMs.
Para se conectar à VM
quickstart-instance
, localize a linha da VM e clique em SSH.A conexão é estabelecida em uma nova guia.
Para instalar o pacote apache2, na nova guia de comando
quickstart-instance
, execute o seguinte:sudo apt-get update && sudo apt-get install apache2 -y
Depois da instalação do Apache, o sistema operacional inicia automaticamente o servidor Apache.
Na mesma guia, para substituir a página da Web padrão do servidor da Web Apache por uma nova, execute o seguinte comando:
echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
Volte para a página Instâncias de VM e copie o endereço IP externo exibido para
quickstart-instance
.Cole o endereço IP da VM na barra de endereço do navegador. Insira o prefixo
http://
.Você verá a página "Hello, World!".
Na página Instâncias de VM, marque a caixa de seleção no lado esquerdo da linha para
quickstart-instance
.Para interromper a VM, clique em Parar na parte superior da página.
É necessário interromper a VM antes de iniciar uma migração. É possível iniciá-la novamente após a migração.
Crie um cluster de processamento
Nesta seção, você cria um cluster do GKE no Google Cloud, que é usado como um cluster de processamento.
No console do Google Cloud, clique em Ativar o Cloud Shell.
Para criar um novo cluster do Kubernetes para usá-lo como cluster de processamento, execute o seguinte comando:
gcloud container clusters create migration-processing \ --zone=us-central1-a --machine-type e2-standard-4 \ --image-type ubuntu_containerd --num-nodes 1 \ --enable-stackdriver-kubernetes \ --subnetwork "projects/PROJECT_ID/regions/us-central1/subnetworks/default"
Substitua PROJECT_ID pela ID do seu projeto.
Aguarde alguns minutos para que a criação do cluster seja concluída.
Instalar o Migrate to Containers
No console do Google Cloud, acesse a página Migrate to Containers.
Clique na guia Clusters de processamento e, depois, em Adicionar cluster de processamento.
Na lista Tipo de SO das cargas de trabalho, selecione Linux e clique em Avançar.
Na lista Selecionar um cluster, selecione
migration-processing
e clique em Avançar.Na seção Configuração, não altere os valores padrão e clique em Avançar.
Na seção Conta de serviço, selecione Criar uma nova conta de serviço.
No campo Nome da conta de serviço, insira
quickstart-sa1
.Clique em Continuar e em Implantar.
Aguarde alguns minutos para que a configuração do cluster de processamento seja concluída.
Migrar a VM do Compute Engine
Nas seções a seguir, você especifica a origem da migração como uma VM do Compute Engine. Nesta etapa, as especificações de origem são adicionadas ao plano de migração. Em seguida, crie um plano de migração com detalhes da migração e use-o para migrar a VM.
Especifique a origem da migração
No console do Google Cloud, acesse a página Migrate to Containers.
Clique em Adicionar origem.
Na lista Selecionar um cluster de processamento, selecione
migration-processing
e clique em Avançar.No campo Nome, use
quickstart-source
.Deixe o Tipo de origem como Compute Engine e clique em Avançar.
No campo Projeto, especifique o ID do projeto que contém a VM que você quer migrar.
Selecione Criar uma nova conta de serviço para criar uma conta que permite usar o Compute Engine como uma origem de migração.
No campo Nome da conta de serviço, insira
quickstart-sa2
.Clique em Continuar e em Adicionar origem.
Crie uma migração
No console do Google Cloud, acesse a página Migrate to Containers.
Clique em Criar migração.
No campo Nome da migração, insira
quickstart-migration
.Na lista Selecionar origem, selecione
quickstart-source
.Na lista Tipo de carga de trabalho, selecione Contêiner do sistema Linux.
No campo Nome da instância, insira
quickstart-instance
.Clique em Criar migração.
A migração é adicionada à tabela Migrações. No entanto, a criação da migração pode levar alguns minutos para ser concluída. Quando ela for concluída, a coluna Status será atualizada na tabela Migrações.
Implantar a carga de trabalho migrada
Para gerar os artefatos de contêiner de destino como parte do processamento de uma VM para migração, faça o seguinte:
No console do Google Cloud, acesse a página Migrate to Containers.
Para
quickstart-migration
, na coluna Próximas etapas, selecione Opções: Gerar artefatos. Quando os artefatos são gerados, a coluna Status da migração é atualizada.Quando a migração for concluída, clique em Ativar o Cloud Shell.
Para fazer o download dos artefatos YAML gerados, execute o seguinte comando:
migctl migration get-artifacts quickstart-migration
O comando faz o download dos seguintes arquivos gerados durante a migração:
- deployment_spec.yaml: o arquivo YAML que configura a carga de trabalho.
- Dockerfile: usado para criar a imagem da VM migrada.
- migration.yaml: uma cópia do plano de migração.
- blocklist.yaml: a lista de serviços de contêiner que devem ser desativados com base nas configurações do plano de migração.
Para abrir o editor do Cloud Shell, clique em Abrir editor.
Abra o arquivo
deployment_spec.yaml
e localize o objetoService
com o nomequickstart-instance
. Ele deve aparecer como mostrado abaixo:apiVersion: v1 kind: Service metadata: creationTimestamp: null name: quickstart-instance spec: clusterIP: None selector: app: quickstart-instance type: ClusterIP status: loadBalancer: {} ---
Abaixo da definição
Service
mostrada acima, cole a definiçãoService
destacada em azul abaixo, que expõe a porta 80 para acesso ao servidor da Web por HTTP:apiVersion: v1 kind: Service metadata: creationTimestamp: null name: quickstart-instance spec: clusterIP: None selector: app: quickstart-instance type: ClusterIP status: loadBalancer: {} --- apiVersion: v1 kind: Service metadata: name: hello-service spec: selector: app: quickstart-instance ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer ---
Se necessário, corrija o recuo da definição
Service
no arquivo.Salve o arquivo.
Clique em Abrir terminal.
Para implantar a VM migrada, execute o seguinte comando:
skaffold run -d eu.gcr.io/PROJECT_ID
Substitua PROJECT_ID pela ID do seu projeto.
Para saber o endereço IP externo da VM migrada, execute o seguinte comando:
kubectl get service hello-service
Quando o servidor da Web estiver pronto, você verá um endereço IP externo para a
hello-service
adicionada.kubectl get service hello-service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-service LoadBalancer 10.23.241.124 ##.##.###.## 80:32611/TCP 5m4s
Para verificar se a migração foi bem-sucedida, abra uma nova guia do navegador e acesse a página da Web no endereço IP externo (use HTTP, não HTTPS).
http://##.##.###.##
Se o texto
Hello World!
for exibido na tela, significa que a migração da VM foi bem-sucedida.Se não for possível acessar a carga de trabalho migrada, veja como resolver problemas conhecidos.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.
Excluir a migração
- No console do Google Cloud, acesse a página Migrate to Containers.
- Clique na guia Migrações para exibir uma tabela com as migrações disponíveis.
- Para
quickstart-migration
, clique em Excluir, no lado direito da tabela, e selecione Excluir migração.
Excluir a origem da migração
- No console do Google Cloud, acesse a página Migrate to Containers.
- Clique em Gerenciar origens para exibir a lista de origens disponíveis.
- Para
quickstart-source
, clique em Excluir, no lado direito da tabela. - Para confirmar a exclusão, digite o texto mostrado e clique em Excluir novamente.
Excluir o cluster do GKE
- No Console do Google Cloud, acesse a página do Google Kubernetes Engine.
- Selecione
migration-processing
e clique em Excluir. - Quando solicitado a confirmar, clique em Excluir novamente.
Excluir as contas de serviço
- No Console do Google Cloud, acesse a página Contas de serviço.
- Selecione o projeto em que você criou as contas de serviço.
- Selecione
quickstart-sa1
equickstart-sa2
e clique em Excluir excluir. - Quando solicitado a confirmar, clique em Excluir novamente.
Excluir a VM
- No console do Google Cloud, acesse a página Instâncias de VMs.
- Clique no nome
quickstart-instance
. - Na parte superior da página de detalhes da instância, clique em Excluir.