Ao criar VMs que usam o ambiente de execução de VMs no Google Distributed Cloud, é possível configurar recursos de computação de duas maneiras:
- Especificar manualmente a CPU e a memória: defina os recursos de computação
diretamente no manifesto
VirtualMachine. Essa abordagem é útil para VMs únicas ou cargas de trabalho personalizadas que exigem alocações de recursos exclusivas. - Criar e usar tipos de VM: defina recursos personalizados
VirtualMachineTypereutilizáveis que padronizam as alocações de CPU e memória. Essa abordagem é útil para gerenciar frotas de VMs, garantir a consistência de computação em todo o cluster e simplificar o provisionamento de VMs para desenvolvedores.
Antes de começar
Para especificar manualmente recursos de CPU e memória e criar e usar tipos de VM, você precisa de acesso aos seguintes recursos:
- Um cluster conectado do Distributed Cloud, versão 1.9.0 ou mais recente.
- A ferramenta de linha de comando do Kubernetes,
kubectl, instalada e configurada para acessar seu cluster. Para mais informações, consulte instalarkubectl. - Opcional: a ferramenta do cliente
virtctlinstalada como um plug-in para okubectl. Se necessário, consulte Instalar a ferramenta de gerenciamentovirtctl.
Criar uma VM e especificar a CPU e a memória
Ao criar uma VM, é possível especificar manualmente os requisitos de CPU e memória. Use esse recurso para criar VMs com os recursos de computação apropriados para atender às necessidades do seu aplicativo.
Para criar uma VM e especificar a CPU e a memória, use um manifesto VirtualMachine.
No editor de sua escolha, crie um manifesto
VirtualMachine, comomy-custom-vm.yaml:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: NAMESPACE spec: compute: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE interfaces: - name: eth0 networkName: L2_NETWORK_NAME default: true disks: - virtualMachineDiskName: VM_BOOT_NAME-boot-dv boot: true
Nesse arquivo YAML, defina as seguintes configurações:
VM_NAME: o nome da VM.NAMESPACE: o namespace de destino da VM.L2_NETWORK_NAME: o nome da rede L2 a que a VM será conectada.VCPU_NUMBER: o número de vCPUs a serem atribuídas à VM. É possível atribuir de 1 a 96 vCPUs a uma VM.MEMORY_SIZE: a quantidade de memória a ser atribuída à VM. É possível atribuir entre 1 Mi e 1 Ti de memória a uma VM. Para mais informações, consulte Unidades de recurso de memória na documentação do Kubernetes.VM_BOOT_NAME: o nome do disco de inicialização da VM. O disco de inicialização já precisa existir. Para mais informações, consulte Criar um disco de máquina virtual com base em uma imagem de máquina virtual.
A VM conecta a interface
eth0à rede L2 especificada.Para criar a VM, aplique o manifesto ao cluster conectado do Distributed Cloud usando o comando
kubectl apply:kubectl apply -f my-custom-vm.yamlPara verificar se a VM foi criada, use o comando
kubectl get:kubectl get vm VM_NAME -n NAMESPACEA saída esperada mostra o status da VM. Também é possível usar o comando
kubectl describepara conferir a configuração detalhada, incluindo a CPU e a memória atribuídas.
Criar e usar tipos de VM
Quando você ativa o ambiente de execução de VM no GDC, a definição de recurso personalizado VirtualMachineType fica disponível no cluster. É possível usar esse tipo de recurso
para criar modelos reutilizáveis que definem alocações específicas de CPU e memória.
Ao criar tipos de VM personalizados para suas diferentes cargas de trabalho, é possível provisionar
várias VMs com configurações consistentes de recursos de computação.
Se o ambiente de execução de VMs no GDC estiver ativado
no Distributed Cloud Connected, um tipo de VM predefinido poderá estar
disponível. Não é possível atualizar este tipo de VM predefinido. A definição a seguir
mostra o tipo de VM padrão example-machinetype:
apiVersion: vm.cluster.gke.io/v1
kind: VirtualMachineType
metadata:
name: "example-machinetype"
labels:
vm.cluster.gke.io/predefined-machinetype: "true"
spec:
cpu:
vcpus: 2
memory:
capacity: 4G
Criar um tipo de VM
É possível criar seus próprios tipos de VM para atender às necessidades de computação das cargas de trabalho.
No editor de sua escolha, crie um manifesto
VirtualMachineType, comomy-vm-type.yaml:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: VM_TYPE_NAME spec: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE
Nesse tipo de VM, defina as seguintes configurações:
VM_TYPE_NAME: o nome do tipo de VM.VCPU_NUMBER: o número de vCPUs a serem atribuídas à VM. É possível atribuir de 1 a 96 vCPUs a uma VM.MEMORY_SIZE: a quantidade de memória a ser atribuída à VM. É possível atribuir entre 1 Mi e 1 Ti de memória a uma VM. Para mais informações, consulte Unidades de recurso de memória na documentação do Kubernetes.
Para criar o tipo de VM, aplique o manifesto ao cluster conectado do Distributed Cloud usando o comando
kubectl apply:kubectl apply -f my-vm-type.yamlPara verificar se o tipo de VM foi criado, execute o comando
kubectl get:kubectl get virtualmachinetype VM_TYPE_NAME
Criar uma VM usando um tipo de VM
Para aplicar as configurações de CPU e memória definidas em um tipo de VM à sua VM, especifique o
nome do tipo de VM na seção compute do manifesto VirtualMachine.
No editor de sua escolha, crie um manifesto
VirtualMachine, comomy-custom-vm.yaml. Nesse arquivo YAML, especifique o nome do tipo de VM personalizado que você criou na seção anterior, comomy-vm-type, como o valor devirtualMachineTypeName.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: NAMESPACE spec: compute: virtualMachineTypeName: VM_TYPE_NAME interfaces: - name: eth0 networkName: L2_NETWORK_NAME default: true disks: - virtualMachineDiskName: VM_BOOT_NAME-boot-dv boot: true
Defina as seguintes configurações:
VM_NAME: o nome da VM.NAMESPACE: o namespace de destino da VM.L2_NETWORK_NAME: o nome da rede L2 a que a VM será conectada.VM_TYPE_NAME: o nome do tipo de VM personalizada que você criou na seção anterior, comomy-vm-type.VM_BOOT_NAME: o nome do disco de inicialização da VM. O disco de inicialização já precisa existir. Para mais informações, consulte Criar um disco de máquina virtual com base em uma imagem de máquina virtual.
A VM conecta a interface
eth0à rede L2 especificada.Para criar a VM, aplique o manifesto ao cluster conectado do Distributed Cloud usando o comando
kubectl apply:kubectl apply -f my-custom-vm.yamlPara verificar se a VM está usando o tipo de VM, execute o comando
kubectl getcom a opção-o jsonpath:kubectl get vm VM_NAME -n NAMESPACE -o jsonpath='{.spec.compute.virtualMachineTypeName}'A saída esperada mostra o nome do tipo de VM.