Criar um disco de inicialização personalizado

Neste documento, descrevemos as etapas para criar discos de inicialização personalizados para máquinas virtuais (VMs) no Google Distributed Cloud (GDC) isolado por air-gap.

Quando você cria uma instância de VM, o Distributed Cloud cria automaticamente um disco permanente de inicialização com configurações padrão. Você também precisa criar um disco de inicialização para a VM. É possível usar uma imagem pública ou personalizada.

Se você precisar de mais discos de armazenamento de dados para as instâncias, adicione um disco permanente à VM.

Este documento é destinado a desenvolvedores em grupos de administradores de plataforma ou operadores de aplicativos que criam discos de inicialização personalizados para VMs. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.

Antes de começar

Para usar os comandos da interface de linha de comando (CLI) gdcloud, verifique se você baixou, instalou e configurou a CLI gdcloud. Todos os comandos do Distributed Cloud usam a CLI gdcloud ou kubectl e exigem um ambiente de sistema operacional (SO).

Extrair o caminho do arquivo kubeconfig

Para executar comandos no servidor da API Management, verifique se você tem os seguintes recursos:

  1. Faça login e gere o arquivo kubeconfig para o servidor da API Management se você não tiver um.

  2. Use o caminho para o arquivo kubeconfig do servidor da API Management para substituir MANAGEMENT_API_SERVER nestas instruções.

Solicitar papéis do IAM

Entre em contato com o administrador do IAM do projeto para solicitar as seguintes funções no projeto:

  • Administrador do projeto de máquina virtual (project-vm-admin): cria, modifica, lista e exclui VMs padrão e de alta performance no namespace do projeto.

  • Leitor do projeto(project-viewer): confira todos os recursos no namespace do projeto.

Todas as funções de VM precisam ser vinculadas ao namespace do projeto em que a VM reside. Siga as etapas para verificar seu acesso.

Criar um disco de inicialização

Use os procedimentos descritos nesta página para criar discos de inicialização que podem ser usados posteriormente para criar VMs.

Criar um disco de inicialização com base em uma imagem

Crie um disco permanente de inicialização autônomo, separado do processo de criação da instância, e anexe-o posteriormente à instância. Nesta seção, mostramos como criar um disco de inicialização com uma imagem do SO fornecida pelo GDC ou uma imagem do SO personalizada.

Criar um disco de inicialização com base em uma imagem fornecida pelo GDC

Antes de criar um disco de inicialização usando uma imagem fornecida pelo GDC, revise a lista de imagens disponíveis. Em seguida, crie um disco de inicialização com a imagem fornecida.

gdcloud

  1. Liste todas as imagens disponíveis e o tamanho mínimo do disco:

    gdcloud compute images list
    

    Esse comando inclui imagens fornecidas pelo Distributed Cloud e personalizadas. Escolha um deles no namespace vm-system.

  2. Selecione uma imagem fornecida pela Distributed Cloud para criar o disco da VM:

    gdcloud compute disks create BOOT_DISK_NAME \
      --project=PROJECT \
      --size=DISK_SIZE \
      --image=IMAGE_NAME \
      --image-project=vm-system
    

    Substitua as variáveis usando as seguintes definições:

    VariávelDefinição
    BOOT_DISK_NAME O nome do disco de inicialização.
    PROJECT O projeto do GDC em que o disco de inicialização será criado.
    DISK_SIZE O tamanho do disco de inicialização precisa ser pelo menos minimumDiskSize da imagem.
    IMAGE_NAME O nome da imagem.

kubectl

  1. Liste todas as imagens fornecidas pelo GDC disponíveis:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog
    
  2. Recebe o minimumDiskSize de uma imagem específica fornecida pelo GDC. O tamanho do disco de inicialização personalizado criado precisa ser pelo menos o minimumDiskSize:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}'
    
  3. Crie um objeto VirtualMachineDisk:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: BOOT_DISK_NAME
    spec:
      source:
        image:
          name: IMAGE_NAME
          namespace: vm-system
      size: DISK_SIZE
    EOF
    

    Substitua as variáveis usando as seguintes definições:

    VariávelDefinição
    MANAGEMENT_API_SERVER O arquivo kubeconfig do servidor da API Management.
    IMAGE_NAME O nome da imagem.
    PROJECT O projeto do GDC em que o disco de inicialização será criado.
    BOOT_DISK_NAME O nome do disco de inicialização.
    DISK_SIZE O tamanho do disco de inicialização precisa ser pelo menos minimumDiskSize da imagem.

Criar um disco de inicialização com base em uma imagem personalizada

Uma imagem personalizada pertence exclusivamente ao seu projeto. Para criar uma VM com uma imagem personalizada, primeiro crie uma imagem personalizada no mesmo projeto, se você ainda não tiver uma.

Configure os papéis do IAM necessários para acessar imagens personalizadas no seu projeto, se ainda não tiver feito isso. Depois, siga estas instruções.

gdcloud

  1. Liste todas as imagens personalizadas e o tamanho mínimo do disco:

    gdcloud compute images list \
      --project=PROJECT \
    
  2. Selecione uma imagem personalizada para criar o disco da VM:

    gdcloud compute disks create BOOT_DISK_NAME \
      --project=PROJECT \
      --size=DISK_SIZE \
      --image=IMAGE_NAME \
      --image-project=PROJECT
    

    Substitua as variáveis usando as seguintes definições:

    VariávelDefinição
    BOOT_DISK_NAME O nome do disco de inicialização.
    PROJECT O projeto do GDC em que o disco de inicialização será criado.
    DISK_SIZE O tamanho do disco de inicialização precisa ser pelo menos minimumDiskSize da imagem.
    IMAGE_NAME O nome da imagem.

API

  1. Listar todas as imagens personalizadas:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachineimages.virtualmachine.gdc.goog
    
  2. Receba o minimumDiskSize de uma imagem personalizada específica. O tamanho do disco de inicialização personalizado criado precisa ser pelo menos minimumDiskSize:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}'
    
  3. Crie um objeto VirtualMachineDisk:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: BOOT_DISK_NAME
    spec:
      source:
        image:
          name: IMAGE_NAME
          namespace: PROJECT
      size: DISK_SIZE
    EOF
    

    Substitua as variáveis usando as seguintes definições:

    VariávelDefinição
    MANAGEMENT_API_SERVER O arquivo kubeconfig do servidor da API Management.
    IMAGE_NAME O nome da imagem escolhida no comando listar todas as imagens personalizadas.
    PROJECT O projeto do GDC em que o disco de inicialização será criado.
    BOOT_DISK_NAME O nome do disco de inicialização.
    DISK_SIZE O tamanho do disco de inicialização precisa ser pelo menos minimumDiskSize da imagem.

A seguir