Criar um disco de inicialização personalizado

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 permissões e acesso

Para executar as tarefas listadas nesta página, você precisa ter o papel de administrador de máquina virtual do projeto. Siga as etapas para verificar se você tem o papel de administrador de máquina virtual do projeto (project-vm-admin) no namespace do projeto em que a VM reside.

Para operações de VM usando o console do GDC ou a CLI gdcloud, peça ao administrador do IAM do projeto para atribuir a você os papéis de administrador de máquina virtual do projeto e leitor do projeto (project-viewer).

Criar um disco de inicialização

Ao criar uma instância de máquina virtual (VM), também é necessário criar um disco de inicialização para a VM. É possível usar uma imagem pública ou personalizada.

O GDC cria automaticamente um disco permanente de inicialização quando você cria uma instância de VM. Se você precisar de mais discos de armazenamento de dados para as instâncias, adicione um disco permanente à VM.

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 nuvem distribuída 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 \
        get virtualmachineimages.virtualmachine.gdc.goog --namespace vm-system
    
  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 \
      get virtualmachineimages.virtualmachine.gdc.goog --namespace vm-system \
      IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}'
    
  3. Crie um objeto VirtualMachineDisk:

    kubectl --kubeconfig MANAGEMENT_API_SERVER apply -n PROJECT -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 \
        get virtualmachineimages.virtualmachine.gdc.goog --namespace PROJECT
    
  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 \
      get virtualmachineimages.virtualmachine.gdc.goog --namespace vm-system \
      IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}'
    
  3. Crie um objeto VirtualMachineDisk:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply --namespace PROJECT -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.

Para substituir um disco de inicialização, consulte a página Substituir um disco de inicialização.