Guia de início rápido: criar uma VM no GKE em Bare Metal

Neste guia de início rápido, vamos mostrar como usar o ambiente de execução da VM no Google Distributed Cloud para criar uma máquina virtual (VM) no GKE em Bare Metal. O ambiente de execução da VM no Google Distributed Cloud usa o KubeVirt para orquestrar VMs em clusters e permite que você trabalhe com suas cargas de trabalho e apps baseados em VM em um ambiente de desenvolvimento uniforme.

Antes de começar

Para concluir este guia de início rápido, você precisa acessar o cluster do GKE em Bare Metal versão 1.12 (anthosBareMetalVersion: 1.12) ou mais recente. Você pode usar qualquer tipo de cluster capaz de executar cargas de trabalho. Se necessário, teste o GKE em Bare Metal no Compute Engine ou consulte as informações gerais da criação de clusters.

Ativar o ambiente de execução da VM no Google Distributed Cloud

O ambiente de execução de VMs no Google Distributed Cloud é instalado automaticamente no GKE em Bare Metal versão 1.10 ou mais recente, mas está desativado por padrão. Antes de executar recursos de VM no GKE em Bare Metal, ative o ambiente de execução de VM no Google Distributed Cloud.

bmctl

O GKE em Bare Metal versão 1.11 ou mais recente pode usar a ferramenta de linha de comando bmctl:

  • Para ativar o ambiente de execução, use a ferramenta bmctl:

    bmctl enable vmruntime --kubeconfig KUBECONFIG_PATH
    

    Forneça o caminho para o arquivo kubeconfig do cluster. O GKE em Bare Metal gera o arquivo kubeconfig na estação de trabalho do administrador quando você cria um cluster. Por padrão, o caminho é bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.

    Se o ambiente de execução da VM no Google Distributed Cloud já estiver ativado, o comando retornará um erro.

Recurso personalizado

O GKE em Bare Metal versão 1.10 ou mais recente pode usar uma definição de recurso personalizada para ativar o ambiente de execução da VM no Google Distributed Cloud. Esse recurso personalizado é instalado por padrão.

  1. Edite o recurso personalizado VMRuntime:

    kubectl edit vmruntime
    
  2. Defina enabled:true na especificação:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: true
      # useEmulation defaults to "false" if not set.
      useEmulation: true
      # vmImageFormat defaults to "qcow2" if not set.
      vmImageFormat: qcow2
    

    Na seção spec anterior, os seguintes valores podem ser definidos:

    • enabled: defina como verdadeiro para ativar o ambiente de execução de VM no Google Distributed Cloud
    • useEmulation: se o nó não for compatível com a virtualização por hardware ou você não tiver certeza, defina o valor como "true". Se disponível, a virtualização de hardware oferece um desempenho melhor do que a emulação de software. O campo useEmulation terá false como padrão se não for especificado.
    • vmImageFormat: compatível com dois valores de formato de imagem de disco: raw e qcow2. Se você não definir vmImageFormat, o ambiente de execução de VM no Google Distributed Cloud usará o formato de imagem de disco raw para criar VMs. O formato raw pode melhorar o desempenho em relação ao qcow2, uma cópia no formato de gravação, mas pode usar mais disco. Para mais informações sobre os formatos de imagem da VM, consulte Formatos de arquivo de imagem de disco na documentação do QEMU.
  3. Salve o recurso personalizado no seu editor.

  4. Verifique se o recurso personalizado VMRuntime está ativado:

    kubectl describe vmruntime vmruntime
    

    Os detalhes do recurso personalizado VMRuntime incluem uma seção Status. O ambiente de execução da VM no Google Distributed Cloud está ativado e funcionando quando VMRuntime.Status.Ready aparece como true.

Instalar a ferramenta de cliente virtctl

Para criar e gerenciar VMs, instale a ferramenta cliente virtctl.

  1. Instalar a ferramenta do cliente virtctl como um plug-in kubectl

    export GOOGLE_APPLICATION_CREDENTIALS="PATH_TO_SERVICE_ACCOUNT_KEY/bm-gcr.json"
    sudo -E bmctl install virtctl
    

    As credenciais permitem autenticar e fazer o download da ferramenta de cliente virtctl e, em seguida, instalar em /usr/bin/kubectl-virt na máquina local.

  2. Verifique se o plug-in virtctl está instalado:

    kubectl plugin list
    

    Se kubectl-virt estiver listado na resposta, o plug-in será instalado.

    Se kubectl-virt não estiver listado, verifique o arquivo install-virtctl.log, conforme indicado na saída do comando bmctl install anterior, como bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log.

Criar uma VM

Neste guia de início rápido, você usará a CLI kubectl para criar uma VM que usa uma imagem de VM pública e credenciais padrão.

  1. Crie uma VM no cluster. O plug-in virtctl é usado com o comando kubectl:

    kubectl virt create vm VM_NAME \
        --image ubuntu20.04 \
        --configure-initial-password USERNAME:PASSWORD
    

    Esse comando cria uma VM Ubuntu 20.04 e padroniza a CPU 2, a memória 4Gi e uma 20Gi disco de inicialização no modo ReadWriteOnce usando a classe de armazenamento local-shared. Substitua os seguintes valores:

    • VM_NAME: o nome da sua VM. Os nomes de VMs precisam conter apenas caracteres alfanuméricos minúsculos ou "-", começar e terminar com um caractere alfanumérico e ter no máximo 63 caracteres. Para mais informações, confira Nomes de rótulos RFC 1123 na documentação do Kubernetes.
    • USERNAME: o nome de usuário da conta a ser criada na VM.
    • PASSWORD: senha da conta de usuário.

    Se você receber um erro sobre os parâmetros da CLI, verifique se o cluster está na versão 1.11.1 ou superior e se você tem a versão mais recente da ferramenta de cliente virtctl. Para mais informações sobre erros da CLI, consulte o registro do console. Para ver as regras de nome de usuário e senha, consulte a documentação do sistema operacional convidado (SO). Se algo não estiver funcionando como esperado, verifique se há problemas conhecidos do ambiente de execução da VM do Google Distributed Cloud.

  2. Pode levar alguns minutos para criar a instância. Verifique o status da VM com o comando kubectl:

    kubectl get gvm
    

    O exemplo de saída a seguir mostra a VM em um estado Running

    NAME         STATUS    AGE   IP
    vm-sample1   Running   64s   192.168.2.124
    

Conectar-se à VM.

Quando sua VM estiver em execução, conecte-se ao console dela.

  1. Para acessar uma VM no console, execute kubectl:

    kubectl virt console VM_NAME
    
  2. Quando solicitado, digite as credenciais de usuário que você especificou para criar a VM.

  3. Depois de se conectar ao console da VM, saia da sessão e do console da VM:

    Ctrl + ]
    

Limpar

Para limpar os recursos criados neste guia de início rápido, siga estas etapas.

  1. Para excluir a VM e o DataVolume associado, use kubectl:

    kubectl virt delete vm VM_NAME --all
    

A seguir