Quando crei VM che utilizzano il runtime VM su Google Distributed Cloud, puoi configurare le risorse di calcolo in due modi:
- Specifica manualmente CPU e memoria: definisci le risorse di calcolo
direttamente nel manifest
VirtualMachine. Questo approccio è utile per VM una tantum o workload personalizzati che richiedono allocazioni di risorse uniche. - Crea e utilizza tipi di VM: definisci risorse personalizzate
VirtualMachineTyperiutilizzabili che standardizzano le allocazioni di CPU e memoria. Questo approccio è utile per gestire parchi di VM, garantire la coerenza del calcolo nel cluster e semplificare il provisioning delle VM per gli sviluppatori.
Prima di iniziare
Per specificare manualmente le risorse di CPU e memoria e per creare e utilizzare i tipi di VM, devi accedere alle seguenti risorse:
- Un cluster connesso a Distributed Cloud, versione 1.9.0 o successive.
- Lo strumento a riga di comando Kubernetes,
kubectl, installato e configurato per accedere al cluster. Per saperne di più, consulta Installarekubectl. - (Facoltativo) Lo strumento client
virtctlinstallato come plug-in perkubectl. Se necessario, consulta Installare lo strumento di gestionevirtctl.
Crea una VM e specifica la CPU e la memoria
Quando crei una VM, puoi specificare manualmente i requisiti di CPU e memoria. Utilizza questa funzionalità per creare VM con le risorse di calcolo appropriate per soddisfare le esigenze della tua applicazione.
Per creare una VM e specificare la CPU e la memoria, utilizza un manifest VirtualMachine.
Nell'editor che preferisci, crea un file manifest
VirtualMachine, ad esempiomy-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
In questo file YAML, definisci le seguenti impostazioni:
VM_NAME: il nome della VM.NAMESPACE: lo spazio dei nomi di destinazione per la VM.L2_NETWORK_NAME: il nome della rete L2 a cui connettere la VM.VCPU_NUMBER: il numero di vCPU da assegnare alla VM. Puoi assegnare da 1 a 96 vCPU a una VM.MEMORY_SIZE: la quantità di memoria da assegnare alla VM. Puoi assegnare da 1 Mi a 1 Ti di memoria a una VM. Per ulteriori informazioni, consulta Unità di risorse di memoria nella documentazione di Kubernetes.VM_BOOT_NAME: il nome del disco di avvio della VM. Il disco di avvio deve esistere già. Per saperne di più, consulta Crea un disco della macchina virtuale da un'immagine della macchina virtuale.
La VM connette l'interfaccia
eth0alla rete L2 specificata.Per creare la VM, applica il manifest al cluster connesso a Distributed Cloud utilizzando il comando
kubectl apply:kubectl apply -f my-custom-vm.yamlPer verificare che la VM sia stata creata, utilizza il comando
kubectl get:kubectl get vm VM_NAME -n NAMESPACEL'output previsto mostra lo stato della VM. Puoi anche utilizzare il comando
kubectl describeper visualizzare la configurazione dettagliata, inclusi CPU e memoria assegnate.
Crea e utilizza i tipi di VM
Quando abiliti il runtime VM su GDC, la definizione di risorsa personalizzata VirtualMachineType diventa disponibile nel tuo cluster. Puoi utilizzare questo tipo di risorsa
per creare modelli riutilizzabili che definiscono allocazioni specifiche di CPU e memoria.
Creando tipi di VM personalizzati per i diversi carichi di lavoro, puoi eseguire il provisioning
di più VM con configurazioni coerenti delle risorse di calcolo.
Se il runtime delle VM su GDC è abilitato
in Distributed Cloud connesso, potrebbe essere disponibile un tipo di VM predefinito. Non puoi aggiornare questo tipo di VM predefinito. La seguente definizione
mostra il tipo di VM example-machinetype predefinito:
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
Crea un tipo di VM
Puoi creare i tuoi tipi di VM per soddisfare le esigenze di calcolo dei tuoi carichi di lavoro.
Nell'editor che preferisci, crea un file manifest
VirtualMachineType, ad esempiomy-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
In questo tipo di VM, definisci le seguenti impostazioni:
VM_TYPE_NAME: il nome del tipo di VM.VCPU_NUMBER: il numero di vCPU da assegnare alla VM. Puoi assegnare da 1 a 96 vCPU a una VM.MEMORY_SIZE: la quantità di memoria da assegnare alla VM. Puoi assegnare da 1 Mi a 1 Ti di memoria a una VM. Per ulteriori informazioni, consulta Unità di risorse di memoria nella documentazione di Kubernetes.
Per creare il tipo di VM, applica il manifest al cluster connesso Distributed Cloud utilizzando il comando
kubectl apply:kubectl apply -f my-vm-type.yamlPer verificare che il tipo di VM sia stato creato, esegui il comando
kubectl get:kubectl get virtualmachinetype VM_TYPE_NAME
Crea una VM utilizzando un tipo di VM
Per applicare le impostazioni di CPU e memoria definite in un tipo di VM alla tua VM, specifica il nome del tipo di VM nella sezione compute del manifest VirtualMachine.
Nell'editor che preferisci, crea un manifest
VirtualMachine, ad esempiomy-custom-vm.yaml. In questo file YAML, specifica il nome del tipo di VM personalizzato che hai creato nella sezione precedente, ad esempiomy-vm-type, come valore pervirtualMachineTypeName.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
Definisci le seguenti impostazioni:
VM_NAME: il nome della VM.NAMESPACE: lo spazio dei nomi di destinazione per la VM.L2_NETWORK_NAME: il nome della rete L2 a cui connettere la VM.VM_TYPE_NAME: il nome del tipo di VM personalizzato che hai creato nella sezione precedente, ad esempiomy-vm-type.VM_BOOT_NAME: il nome del disco di avvio della VM. Il disco di avvio deve esistere già. Per saperne di più, consulta Crea un disco della macchina virtuale da un'immagine della macchina virtuale.
La VM connette l'interfaccia
eth0alla rete L2 specificata.Per creare la VM, applica il manifest al cluster connesso a Distributed Cloud utilizzando il comando
kubectl apply:kubectl apply -f my-custom-vm.yamlPer verificare che la VM utilizzi il tipo di VM, esegui il comando
kubectl getcon l'opzione-o jsonpath:kubectl get vm VM_NAME -n NAMESPACE -o jsonpath='{.spec.compute.virtualMachineTypeName}'L'output previsto mostra il nome del tipo di VM.