Abilita o disabilita Anthos VM Runtime

Questo documento mostra come abilitare o disabilitare il runtime VM di Anthos aggiornando la risorsa personalizzata VMRuntime o eseguendo i comandi bmctl.

Prima di iniziare

Per abilitare o disabilitare il runtime VM di Anthos, è necessario accedere alle seguenti risorse e strumenti:

Abilita Anthos VM Runtime

Anthos VM Runtime viene installato automaticamente nei cluster Anthos su Bare Metal versione 1.10 o successiva, ma è disabilitato per impostazione predefinita. Prima di poter eseguire risorse VM nei tuoi cluster Anthos su Bare Metal, devi abilitare Anthos VM Runtime.

mmctl

  • Per abilitare il runtime, utilizza lo strumento bmctl:

    bmctl enable vmruntime --kubeconfig KUBECONFIG_PATH
    

    Specifica il percorso del file kubeconfig per il tuo cluster. Quando crei un cluster, Cluster Anthos su Bare Metal genera il file kubeconfig sulla workstation di amministrazione. Per impostazione predefinita, il percorso è bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.

    Se il runtime VM di Anthos è già abilitato, il comando restituisce un errore.

È possibile configurare ulteriori impostazioni, ad esempio per l'emulazione o il formato dell'immagine, modificando la risorsa personalizzata VMRuntime.

Risorsa personalizzata

Per abilitare il runtime, aggiorna la risorsa personalizzata VMRuntime. Questa risorsa personalizzata è installata per impostazione predefinita.

  1. Modifica la risorsa personalizzata VMRuntime:

    kubectl edit vmruntime
    
  2. Imposta enabled:true nella specifica:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: true
      # useEmulation defaults to "false" if not set.
      useEmulation: true
      # vmImageFormat defaults to "qcow2" if not set.
      vmImageFormat: qcow2
    

    Nella sezione precedente spec è possibile impostare i seguenti valori:

    • enabled: impostalo su vero per abilitare il runtime VM di Anthos
    • useEmulation: se il nodo non supporta la virtualizzazione hardware o hai dubbi, imposta il valore su true. Se disponibile, la virtualizzazione hardware offre prestazioni migliori rispetto all'emulazione software. Se non specificato, il valore predefinito del campo useEmulation è false.
    • vmImageFormat: supporta due valori per il formato dell'immagine del disco: raw e qcow2. Se non imposti vmImageFormat, il runtime VM di Anthos utilizza il formato dell'immagine del disco raw per creare VM. Il formato raw potrebbe fornire prestazioni migliori rispetto a qcow2, una copia sul formato di scrittura, ma potrebbe utilizzare più disco. Per saperne di più sui formati delle immagini per la tua VM, consulta la pagina Formati dei file immagine del disco nella documentazione di QEMU.
  3. Salva la risorsa personalizzata nel tuo editor.

  4. Verifica che la risorsa personalizzata VMRuntime sia abilitata:

    kubectl describe vmruntime vmruntime
    

    I dettagli della risorsa personalizzata VMRuntime includono una sezione Status. Anthos VM Runtime è attivo e funzionante quando VMRuntime.Status.Ready viene visualizzato come true.

Disabilita il runtime VM di Anthos

Quando non hai più bisogno di utilizzare Anthos VM Runtime, puoi disabilitare questa funzionalità.

mmctl

  • Per disattivare il runtime, utilizza lo strumento bmctl:

    bmctl disable vmruntime --kubeconfig KUBECONFIG_PATH \
      --force=true
    

    Specifica il percorso del file kubeconfig per il cluster e i valori delle seguenti opzioni di configurazione:

    • --force: imposta su true per confermare che vuoi eliminare le risorse VM esistenti. Il valore predefinito è false.

Risorsa personalizzata

Per disabilitare il runtime, aggiorna la risorsa personalizzata VMRuntime:

  1. Modifica la risorsa personalizzata VMRuntime:

    kubectl edit vmruntime
    
  2. Imposta enabled:false nella specifica:

    apiVersion: vm.cluster.gke.io/v1`
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: false
      useEmulation: true
      vmImageFormat: qcow2
    
  3. Salva nell'editor la specifica aggiornata delle risorse personalizzate.

  4. Per verificare che la risorsa personalizzata VMRuntime sia disabilitata, visualizza i pod eseguiti nello spazio dei nomi vm-system:

    kubectl get pods --namespace vm-system
    

    Il runtime VM di Anthos è disabilitato quando solo i pod che appartengono al deployment vmruntime-controller-manager sono in esecuzione nello spazio dei nomi.

Comprendere il comportamento delle VM in esecuzione

L'annotazione baremetal.cluster.gke.io/vmrumtime-force-disable può essere utilizzata nella risorsa runtime VM di Anthos per definire il comportamento quando il runtime è disabilitato mentre le VM sono in esecuzione nel cluster.

L'esempio seguente mostra che il valore di questa annotazione è impostato su false per impostazione predefinita:

  // VM runtime yaml file
  apiVersion: vm.cluster.gke.io/v1
  kind: VMRuntime
  metadata:
    annotations:
      baremetal.cluster.gke.io/vmrumtime-force-disable: "false"
    name: vmruntime
  [...]

Se questa annotazione è impostata su false, Anthos VM Runtime cerca di proteggere le VM in esecuzione. Elimina tutte le VM in esecuzione prima della disattivazione del runtime VM di Anthos oppure specifica il parametro --force=true con il comando bmctl disable vmruntime, come mostrato nella sezione precedente.

La seguente tabella spiega cosa succede all'esecuzione delle VM quando questa annotazione è impostata su true o false e se specifichi il parametro --force=true:

Stato del cluster --force parametro annotazione vmrumtime-force-disable Comportamento
Nessuna VM N/D N/D Disabilita il runtime VM di Anthos.
VM esistenti Vero Vero Elimina tutte le VM in esecuzione e le risorse correlate. Disabilita il runtime VM di Anthos.
Vero falso. Elimina tutte le VM in esecuzione e le risorse correlate. Disabilita il runtime VM di Anthos.
falso. Vero Richiesta di eliminazione di VM in esecuzione e risorse correlate. Quando tutte le VM in esecuzione sono state eliminate, disabilita Anthos VM Runtime.
falso. falso. Non eliminare le VM in esecuzione. Non disabilitare il runtime VM di Anthos. Il comando bmctl restituisce un errore.

Passaggi successivi