Neste documento, descrevemos as etapas para importar imagens de disco de máquina virtual (VM) para o Google Distributed Cloud (GDC) com isolamento físico.
Importe os discos virtuais atuais, geralmente chamados de discos de referência ou imagens de referência, para o GDC para economizar tempo e use a imagem resultante para criar máquinas virtuais. A ferramenta de importação é compatível com os formatos de imagem RAW e QCOW.
Este documento é destinado a desenvolvedores em grupos de administradores de plataforma ou operadores de aplicativos que criam imagens de VM. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Antes de continuar, verifique se você tem:
Prepare o ambiente
- A CLI gdcloud baixada, instalada e configurada. Todos os comandos da CLI para o GDC usam a CLI gdcloud ou a CLI kubectl e exigem um ambiente de sistema operacional (SO).
Solicitar papéis do IAM
Para receber as permissões necessárias para importar discos virtuais, peça ao administrador do projeto do IAM para conceder a você os seguintes papéis no projeto:
Administrador do projeto de máquina virtual (
project-vm-admin): criar, modificar, listar e excluir VMs no namespace do projeto.Leitor do projeto (
project-viewer): visualizar todos os recursos no namespace do projeto.Administrador de projeto de imagem de máquina virtual (
project-vm-image-admin): criar, listar e excluir imagens de VM no namespace do projeto.
Todos os papéis de VM precisam ser vinculados ao namespace do projeto em que a VM reside. Siga as etapas para verificar seu acesso.
Importar discos virtuais
É possível importar arquivos de disco virtual diretamente da sua estação de trabalho. A ferramenta de importação faz o upload automático do arquivo para um bucket de repositório de objetos no projeto.
Para importar os discos virtuais, use a CLI gdcloud ou a API Administrador de Máquina Virtual.
gdcloud
O comando import verifica se a imagem fornecida pelo GDC
tem os pacotes necessários para configurar as credenciais de conexão com a instância
usando o Secure Shell (SSH) e o protocolo de área de trabalho remota (RDP). Isso inclui pacotes para o ambiente de convidado.
O comando também instala pacotes para o Network Time Protocol (NTP)
e cloud-init para que a instância seja executada corretamente no GDC.
- Para criar uma imagem de inicialização, use o comando
gdcloud compute images import:
gdcloud compute images import IMAGE_NAME \
--source-file=SOURCE_FILE \
--os=IMAGE_OS \
--timeout=TIMEOUT
Substitua as seguintes variáveis:
- IMAGE_NAME: o nome da imagem de destino O nome não pode ter mais de 35 caracteres.
- SOURCE_FILE: o arquivo de disco virtual. Esse arquivo é um arquivo local na estação de trabalho. É possível fornecer um caminho absoluto ou relativo.
- IMAGE_OS: o SO no disco a ser importado.
- TIMEOUT: o tempo que uma importação pode durar antes de falhar
com "TIMEOUT". Por exemplo, se você especificar
2h, o processo vai falhar após 2 horas. O tempo limite padrão é1h.
A operação de upload pode levar um longo período, dependendo do tamanho do disco virtual e da velocidade da conexão de rede. A operação de importação pode demorar bastante para ser executada, dependendo do tamanho do disco.
API
Para importar um disco virtual pela API, faça o seguinte:
Crie um recurso personalizado
VirtualMachineImageImportno servidor da API Management para iniciar o processo de importação de imagens:kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_ID \ apply -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineImageImport metadata: name: IMAGE_NAME namespace: PROJECT_ID spec: source: objectStorage: bucketRef: name: vm-images-bucket objectName: SOURCE_FILE imageMetadata: name: IMAGE_NAME operatingSystem: IMAGE_OS minimumDiskSize: DISK_SIZE EOFSubstitua as seguintes variáveis:
- MANAGEMENT_API_SERVER: o arquivo kubeconfig do servidor de API de gerenciamento.
- IMAGE_NAME: o nome da imagem a ser importada. O nome não pode ter mais de 35 caracteres.
- PROJECT_ID: o ID do projeto em que você quer importar a imagem.
- SOURCE_FILE: o nome do arquivo de origem que contém o upload do disco virtual para o repositório de objetos. Esse valor é a seção do caminho do repositório de objetos após
vm-images-bucket/. - IMAGE_OS: o SO no disco a ser importado.
- DISK_SIZE: o tamanho mínimo de um disco criado com base nessa imagem. Use um buffer de pelo menos 20% além do tamanho do sistema de arquivos da imagem original. Por exemplo, use pelo menos
12Gpara um disco virtual com um tamanho de sistema de arquivos original de 10G.
Monitore o progresso da importação consultando o status do recurso personalizado
VirtualMachineImageImport:kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_ID \ get virtualmachineimageimport.virtualmachine.gdc.goog IMAGE_NAME \ -o jsonpath='{.status}'
Limpar recursos
O processo de importação envolve o upload do arquivo de disco virtual para o repositório de objetos.
Se você usar a CLI gdcloud, ela vai excluir o objeto quando o comando
for concluído, mesmo que a importação falhe. Se você interromper o comando ou importar a imagem com a API, o arquivo de disco virtual poderá permanecer no bucket de repositório de objetos chamado vm-images-bucket até que você o exclua manualmente.
A seguir
- Revise as imagens compatíveis com o GDC.
- Crie e inicie uma instância de VM que use sua imagem.
- Crie um disco de inicialização para sua VM.