Crea una VM con risorse CPU e di memoria specifiche

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 VirtualMachineType riutilizzabili 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 Installare kubectl.
  • (Facoltativo) Lo strumento client virtctl installato come plug-in per kubectl. Se necessario, consulta Installare lo strumento di gestione virtctl.

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.

  1. Nell'editor che preferisci, crea un file manifest VirtualMachine, ad esempio my-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 eth0 alla rete L2 specificata.

  2. Per creare la VM, applica il manifest al cluster connesso a Distributed Cloud utilizzando il comando kubectl apply:

    kubectl apply -f my-custom-vm.yaml
    
  3. Per verificare che la VM sia stata creata, utilizza il comando kubectl get:

    kubectl get vm VM_NAME -n NAMESPACE
    

    L'output previsto mostra lo stato della VM. Puoi anche utilizzare il comando kubectl describe per 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.

  1. Nell'editor che preferisci, crea un file manifest VirtualMachineType, ad esempio my-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.
  2. 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.yaml
    
  3. Per 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.

  1. Nell'editor che preferisci, crea un manifest VirtualMachine, ad esempio my-custom-vm.yaml. In questo file YAML, specifica il nome del tipo di VM personalizzato che hai creato nella sezione precedente, ad esempio my-vm-type, come valore per virtualMachineTypeName.

    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 esempio my-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 eth0 alla rete L2 specificata.

  2. Per creare la VM, applica il manifest al cluster connesso a Distributed Cloud utilizzando il comando kubectl apply:

    kubectl apply -f my-custom-vm.yaml
    
  3. Per verificare che la VM utilizzi il tipo di VM, esegui il comando kubectl get con 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.

Passaggi successivi