Questo documento è rivolto ai proprietari di applicazioni e agli amministratori della piattaforma che eseguono Google Distributed Cloud. Questo documento mostra come creare e utilizzare i tipi di VM o specificare manualmente le risorse CPU e memoria quando crei VM che utilizzano il runtime VM su GDC.
Prima di iniziare
Per completare questo documento, devi disporre dell'accesso alle seguenti risorse:
- Accesso al cluster Google Distributed Cloud versione 1.12.0 (
anthosBareMetalVersion: 1.12.0
) o successiva. Puoi utilizzare qualsiasi tipo di cluster in grado di eseguire carichi di lavoro. Se necessario, prova Google Distributed Cloud su Compute Engine o consulta le Panoramica della creazione del cluster. - Lo strumento client
virtctl
installato come plug-in perkubectl
. Se necessario, installa lo strumento client virtctl.
Crea una VM
Quando crei una VM, puoi specificare manualmente i requisiti di CPU e memoria. Questa capacità consente di creare VM con le risorse di computing appropriate da abbinare necessarie alla tua applicazione.
Per creare una VM e specificare manualmente i requisiti di CPU e memoria, segui i passaggi riportati di seguito.
Interfaccia a riga di comando
Utilizza
kubectl
per creare una VM:kubectl virt create vm VM_NAME \ --image ubuntu20.04 \ --cpu CPU_NUMBER \ --memory MEMORY_SIZE
Sostituisci i seguenti valori:
VM_NAME
: il nome della VM. Per ulteriori informazioni sulle limitazioni dei nomi, consulta Nomi e ID degli oggetti.CPU_NUMBER
: il numero di CPU virtuali (vCPU) da da assegnare alla VM.- A una VM puoi assegnare da 1 a 96 vCPU.
MEMORY_SIZE
: la quantità di memoria da assegnare alla VM.- Puoi assegnare a una VM da 1 M a 1 T di memoria. Per maggiori informazioni le informazioni, vedi Unità di risorse di memoria.
Manifest
Crea un manifest
VirtualMachine
, ad esempio my-custom-vm.yaml, nella un editor di tua scelta:nano my-custom-vm.yaml
Copia e incolla il seguente manifest YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true
In questo file YAML, definisci le seguenti impostazioni:
VM_NAME
: il nome della VM. Per ulteriori informazioni sulle limitazioni dei nomi, consulta Nomi e ID degli oggetti.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 a una VM da 1 M a 1 T di memoria. Per maggiori informazioni le informazioni, vedi Unità di risorse di memoria.
La VM connette
eth0
alla retepod-network
predefinita.Il disco di avvio denominato
VM_NAME-boot-dv
deve già esistere. Per saperne di più, consulta Creare e gestire i dischi virtuali.Salva e chiudi il manifest della VM nell'editor.
Crea la VM utilizzando
kubectl
:kubectl apply -f my-custom-vm.yaml
Creare e utilizzare i tipi di VM
Quando attivi il runtime della VM su GDC, è disponibile una nuova definizione di risorsa personalizzata VirtualMachineType. Questa definizione viene utilizzata per specificare le risorse della CPU e della memoria di una VM. Puoi creare tipi di VM per i diversi carichi di lavoro di cui hai bisogno e applica un set coerente di risorse di calcolo alle VM in base di testo.
Se il runtime VM su GDC è abilitato in Google Distributed Cloud,
vm-controller-manager
installa un tipo di VM predefinita. 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
Non puoi aggiornare questo tipo di VM predefinito. Questo tipo di VM predefinito viene reinstallato se non esiste nel cluster ogni volta che vm-controller-manager
viene avviato o riavviato, ad esempio se hai eliminato il tipo di VM.
Crea un tipo di VM
Puoi creare i tuoi tipi di VM in base alle esigenze di calcolo dei tuoi carichi di lavoro.
Crea un file manifest
VirtualMachineType
, ad esempio my-vm-type.yaml, nell'editor che preferisci:nano my-vm-type.yaml
Copia e incolla il seguente manifest YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: my-vm-type spec: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE
In questo tipo di VM, definisci le seguenti impostazioni:
VM_NAME
: il nome della VM. Per ulteriori informazioni sulle limitazioni dei nomi, consulta Nomi e ID degli oggetti.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 a una VM da 1 M a 1 T di memoria. Per ulteriori informazioni, consulta Unità di risorse di memoria.
Salva e chiudi il manifest del tipo di VM nell'editor.
Crea il tipo di VM utilizzando
kubectl
:kubectl apply -f my-vm-type.yaml
Crea una VM utilizzando un tipo di VM
Specifica un tipo di VM nel file manifest VirtualMachine
per applicare le impostazioni compute
predefinite alla VM.
Crea un manifest
VirtualMachine
, ad esempio my-custom-vm.yaml, nell'editor che preferisci.nano my-custom-vm.yaml
Copia e incolla il seguente manifest YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: virtualMachineTypeName: my-vm-type interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true
In questo file YAML, specifica il nome del tipo di VM personalizzata che hai creato nella sezione precedente, ad esempio
my-vm-type
, come valore pervirtualMachineTypeName
.La VM si connette a
eth0
alla retepod-network
predefinita.Il disco di avvio denominato
VM_NAME-boot-dv
deve già esistono. Per ulteriori informazioni, vedi Creare e gestire dischi virtuali.Salva e chiudi il manifest della VM nell'editor.
Crea la VM utilizzando
kubectl
:kubectl apply -f my-custom-vm.yaml
Passaggi successivi
- Modifica una VM in Google Distributed Cloud.
- Quando non hai più bisogno delle VM, elimina una VM in Google Distributed Cloud.