Os clusters do Anthos em bare metal agora são o Google Distributed Cloud (somente software) em bare metal. Para mais informações, consulte a visão geral do produto.
Guia de início rápido: criar uma VM em clusters do Google Distributed Cloud
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Neste guia de início rápido, mostramos como usar o ambiente de execução de VMs no GDC para
criar uma máquina virtual (VM) no Google Distributed Cloud. O ambiente de execução de VMs no GDC usa o
KubeVirt
para orquestrar VMs em clusters e permite o trabalho com apps e
cargas de trabalho 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 Google Distributed
Cloud 1.12 (anthosBareMetalVersion: 1.12) ou de uma versão mais recente. Você pode usar qualquer tipo de cluster capaz de executar cargas de trabalho. Se necessário,
teste o Google Distributed Cloud no Compute Engine
ou consulte a
visão geral de criação do cluster.
Ativar o ambiente de execução de VM no GDC
O ambiente de execução de VM no GDC é instalado automaticamente no Google Distributed Cloud 1.10
ou em versões mais recentes, mas está desativado por padrão. Para executar recursos de VM
no Google Distributed Cloud, é preciso ativar o
ambiente de execução de VM no GDC.
bmctl
O Google Distributed Cloud 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:
bmctlenablevmruntime--kubeconfigKUBECONFIG_PATH
Forneça o caminho para o arquivo kubeconfig do cluster.
O Google Distributed Cloud gera o arquivo kubeconfig na estação de trabalho de
administrador quando você cria um cluster. Por padrão, o caminho é
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.
Se o ambiente de execução de VM no GDC já estiver ativado, o comando vai retornar um
erro.
Recurso personalizado
O Google Distributed Cloud 1.10 ou mais recente pode usar uma definição de recurso personalizado
para ativar o ambiente de execução de VMs no GDC. Esse recurso personalizado é instalado por
padrão.
Edite o recurso personalizado VMRuntime:
kubectleditvmruntime
Defina enabled:true na especificação:
apiVersion:vm.cluster.gke.io/v1kind:VMRuntimemetadata:name:vmruntimespec: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 GDC
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 GDC vai 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.
Salve o recurso personalizado no editor.
Verifique se o recurso personalizado VMRuntime está ativado:
kubectldescribevmruntimevmruntime
Os detalhes do recurso personalizado VMRuntime incluem uma seção Status.
O ambiente de execução de VM no GDC está ativado e funcionando quando
VMRuntime.Status.Ready aparece como true.
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.
Verifique se o plug-in virtctl está instalado:
kubectlpluginlist
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.
Crie uma VM no cluster. O plug-in virtctl é usado com o comando kubectl:
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 conforme o esperado, verifique se há
problemas conhecidos no ambiente de execução de VMs no GDC.
Pode levar alguns minutos para criar a instância. Verifique o status da VM com
o comando kubectl:
kubectlgetgvm
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.
Para acessar uma VM no console, execute kubectl:
kubectlvirtconsoleVM_NAME
Quando solicitado, digite as credenciais de usuário que você especificou para criar a VM.
Depois de se conectar ao console da VM, saia da sessão e do console da VM:
Ctrl+]
Limpeza
Para limpar os recursos criados neste guia de início rápido, siga estas etapas.
Para excluir a VM e o DataVolume associado, use kubectl:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-31 UTC."],[],[],null,["This quickstart shows you how to use VM Runtime on GDC to create a\nvirtual machine (VM) on Google Distributed Cloud. VM Runtime on GDC uses\n[KubeVirt](https://kubevirt.io/)\nto orchestrate VMs on clusters, and lets you work with your VM-based apps and\nworkloads in a uniform development environment.\n\nBefore you begin\n\nTo complete this quickstart, you need access to Google Distributed Cloud version\n1.12 (`anthosBareMetalVersion: 1.12`) or higher cluster. You can use any\ncluster type capable of running workloads. If needed,\n[try Google Distributed Cloud on Compute Engine](/kubernetes-engine/distributed-cloud/bare-metal/docs/try/gce-vms)\nor see the\n[cluster creation overview](/kubernetes-engine/distributed-cloud/bare-metal/docs/installing/creating-clusters/create-clusters-overview).\n\nEnable VM Runtime on GDC\n\nVM Runtime on GDC is automatically installed in Google Distributed Cloud\nversion 1.10 or higher, but is disabled by default. Before you can run VM\nresources in your Google Distributed Cloud, you must enable the\nVM Runtime on GDC. \n\nbmctl\n\nGoogle Distributed Cloud version 1.11 or higher can use the `bmctl` command-line tool:\n\n- To enable the runtime, use the `bmctl` tool:\n\n bmctl enable vmruntime --kubeconfig \u003cvar label=\"Kubeconfig path\" translate=\"no\"\u003eKUBECONFIG_PATH\u003c/var\u003e\n\n Provide the path to the kubeconfig file for your cluster.\n Google Distributed Cloud generates the kubeconfig file on the admin\n workstation when you create a cluster. By default, the path is\n `bmctl-workspace/`\u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e`/`\u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e`-kubeconfig`.\n\n If VM Runtime on GDC is already enabled, the command returns an\n error.\n\nCustom resource\n\nGoogle Distributed Cloud version 1.10 or higher can use a custom resource definition\nto enable VM Runtime on GDC. This custom resource is installed by\ndefault.\n\n1. Edit the `VMRuntime` custom resource:\n\n kubectl edit vmruntime\n\n2. Set `enabled:true` in the spec:\n\n apiVersion: vm.cluster.gke.io/v1\n kind: VMRuntime\n metadata:\n name: vmruntime\n spec:\n enabled: true\n # useEmulation defaults to \"false\" if not set.\n useEmulation: true\n # vmImageFormat defaults to \"qcow2\" if not set.\n vmImageFormat: qcow2\n\n In the preceding `spec` section, the following values can be set:\n - `enabled`: set to true to enable VM Runtime on GDC\n - `useEmulation`: If your node doesn't support hardware virtualization, or you aren't sure, set the value to true. If available, hardware virtualization provides better performance than software emulation. The `useEmulation` field defaults to `false`, if it isn't specified.\n - `vmImageFormat`: Supports two disk image format values: `raw` and `qcow2`. If you don't set `vmImageFormat`, the VM Runtime on GDC uses the `raw` disk image format to create VMs. The `raw` format may provide improved performance over `qcow2`, a copy on write format, but may use more disk. For more information about the image formats for your VM, see [Disk image file formats](https://www.qemu.org/docs/master/system/images.html#disk-image-file-formats) in the QEMU documentation.\n3. Save the custom resource in your editor.\n\n4. Verify that the `VMRuntime` custom resource is enabled:\n\n kubectl describe vmruntime vmruntime\n\n The details of the `VMRuntime` custom resource include a `Status` section.\n VM Runtime on GDC is enabled and working when\n `VMRuntime.Status.Ready` shows as `true`.\n\nInstall the `virtctl` client tool\n\nTo create and manage VMs, install the\n[virtctl client tool](https://kubevirt.io/user-guide/operations/virtctl_client_tool/).\n\n1. Install the `virtctl` client tool as a `kubectl` plugin:\n\n export GOOGLE_APPLICATION_CREDENTIALS=\"\u003cvar label=\"name\" translate=\"no\"\u003ePATH_TO_SERVICE_ACCOUNT_KEY\u003c/var\u003e/bm-gcr.json\"\n sudo -E bmctl install virtctl\n\n The credentials let you authenticate and download the `virtctl` client tool,\n then install to `/usr/bin/kubectl-virt` on your local machine.\n2. Verify that the `virtctl` plugin is installed:\n\n kubectl plugin list\n\n If `kubectl-virt` is listed in the response, the plugin is successfully\n installed.\n\n If `kubectl-virt` is not listed, check the `install-virtctl.log` file as noted\n in the output of the previous `bmctl install` command, such as\n `bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log`.\n\nCreate a VM\n\nIn this quickstart, you use the `kubectl` CLI to create a VM that uses a public\nVM image and default credentials.\n| **Note:** For instructions on creating a VM from a `VirtualMachine` YAML manifest file, see [Tutorial: Create and manage a Linux VM in VM Runtime on GDC](/kubernetes-engine/distributed-cloud/bare-metal/docs/vm-runtime/tutorial-create-vm).\n\n1. Create a VM in your cluster. The `virtctl` plugin is used with the\n `kubectl` command:\n\n kubectl virt create vm \u003cvar label=\"name\" translate=\"no\"\u003eVM_NAME\u003c/var\u003e \\\n --image ubuntu20.04 \\\n --configure-initial-password \u003cvar label=\"username\" translate=\"no\"\u003eUSERNAME\u003c/var\u003e:\u003cvar label=\"name\" translate=\"no\"\u003ePASSWORD\u003c/var\u003e\n\n This command creates an *Ubuntu 20.04* VM and defaults of *2* CPU, *4Gi*\n memory, and a *20Gi* boot disk in *ReadWriteOnce* mode using the\n *local-shared* storage class. Replace the following values:\n - \u003cvar scope=\"VM_NAME\" translate=\"no\"\u003eVM_NAME\u003c/var\u003e: name for your VM. VM names must contain only lowercase alphanumeric characters or '-', start and end with an alphanumeric character, and contain at most 63 characters. For more information, see [RFC 1123 Label Names](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names) in the Kubernetes documentation.\n - \u003cvar translate=\"no\"\u003eUSERNAME\u003c/var\u003e: user name for the account to create on the VM.\n - \u003cvar translate=\"no\"\u003ePASSWORD\u003c/var\u003e: password for the user account.\n\n If you receive an error about CLI parameters, verify that your cluster is at\n version `1.11.1` or higher and that you have the latest version of the\n `virtctl` client tool. For more information about CLI errors, consult the\n console log. For username and password rules, see the documentation for the\n guest operating system (OS). If something isn't working as expected, check for\n [VM Runtime on GDC known issues](/kubernetes-engine/distributed-cloud/bare-metal/docs/troubleshooting/known-issues).\n | **Note:** The preceding command creates a YAML file, such as `vm-sample1.yaml`, in the `~/google-virtctl` directory. You can view the content of this file to see the definition of the Kubernetes resources that were created by VM Runtime on GDC.\n2. It can take a few minutes to create the VM. Check the status of the VM with\n the `kubectl` command:\n\n kubectl get gvm\n\n The following example output shows the VM in a `Running` state: \n\n NAME STATUS AGE IP\n vm-sample1 Running 64s 192.168.2.124\n\nConnect to your VM\n\nWhen your VM is running, connect to the console of the VM.\n\n1. To access a VM from the console, use `kubectl`:\n\n kubectl virt console \u003cvar scope=\"VM_NAME\" translate=\"no\"\u003eVM_NAME\u003c/var\u003e\n\n2. When prompted, enter the user credentials you specified to create the VM.\n\n3. After you have successfully connected to the console of the VM, exit the VM\n session and console:\n\n Ctrl + ]\n\nClean up\n\nTo clean up the resources created in this quickstart, follow these steps.\n\n1. To delete the VM and associated DataVolume, use `kubectl`:\n\n kubectl virt delete vm \u003cvar scope=\"VM_NAME\" translate=\"no\"\u003eVM_NAME\u003c/var\u003e --all\n\nWhat's next\n\n- [Manage the power state of a VM in Google Distributed Cloud](/kubernetes-engine/distributed-cloud/bare-metal/docs/vm-runtime/manage-power-state).\n- [Edit a VM in Google Distributed Cloud](/kubernetes-engine/distributed-cloud/bare-metal/docs/vm-runtime/edit-vm).\n- [View VM console logs in Google Distributed Cloud](/kubernetes-engine/distributed-cloud/bare-metal/docs/vm-runtime/view-console-logs)."]]