Configura i criteri di espulsione per le VM in Google Distributed Cloud

Questo documento è rivolto agli amministratori della piattaforma che eseguono macchine virtuali (VM) su Google Distributed Cloud. Questo documento mostra come configurare il criterio di espulsione che controlla in che modo le VM che utilizzano il runtime VM su GDC possono eseguire automaticamente la migrazione su altri host durante gli eventi di manutenzione. Queste impostazioni di configurazione consentono alle VM di continuare a funzionare su altri host quando esegui l'upgrade di un cluster o la manutenzione di un host.

Prima di iniziare

Per completare questo documento, devi avere 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 la panoramica della creazione dei cluster.

Impostazioni dei criteri di espulsione

Google Distributed Cloud ti consente di configurare il comportamento dei nodi quando esegui upgrade dei cluster o metti i nodi in modalità di manutenzione. Il runtime della VM su GDC utilizza un criterio di espulsione che controlla il modo in cui il cluster gestisce le VM in esecuzione durante questi eventi.

Se abilitato, il runtime VM su GDC utilizza la migrazione live per spostare i carichi di lavoro VM su un altro host per impostazione predefinita. Questo comportamento riduce al minimo la potenziale interruzione dei carichi di lavoro delle VM. Con la migrazione live, le VM migrabili passano da un host all'altro senza interruzioni del sistema operativo guest.

È possibile configurare le seguenti impostazioni dei criteri di espulsione:

Proprietà Predefinito Valori validi
evictionStrategy LiveMigrate LiveMigrate, Restart
maxMigrationAttemptsPerVM 3 Numeri interi nell'intervallo [1,5]
migrationTargetInitializationTimeout 30s Qualsiasi stringa di durata valida, ad esempio 1m, 2h o 1h30m

evictionStrategy

Se questo valore è impostato su LiveMigrate, il runtime VM su GDC tenta di eseguire la migrazione di qualsiasi VM migrabile da un nodo per eseguirne l'espulsione. La VM viene posizionata su un altro nodo del cluster e continua a funzionare.

Se questo valore è impostato su Restart, il runtime della VM su GDC non tenta di eseguire la migrazione delle VM. Le VM vengono invece interrotte quando il nodo viene messo in modalità di manutenzione e riavviate quando il nodo viene rimosso dalla modalità di manutenzione. La VM non è disponibile durante l'evento di manutenzione dell'host.

Quando scegli la strategia LiveMigrate, il runtime VM su GDC torna alla strategia Restart per le VM non migrabili.

maxMigrationAttemptsPerVM

Questa impostazione controlla il numero massimo di tentativi di migrazione che possono verificarsi per una determinata VM prima dell'applicazione della strategia Restart.

Questa impostazione viene ignorata se evictionStrategy è impostato su Restart.

migrationTargetInitializationTimeout

Questa impostazione controlla il tempo massimo necessario per avviare una migrazione prima che venga considerata non riuscita. Una migrazione che richiede troppo tempo per avviarsi viene conteggiata ai fini del budget per le migrazioni non riuscite per un carico di lavoro VM.

Questa impostazione viene ignorata se evictionStrategy è impostato su Restart.

Attiva e configura il criterio di espulsione

Per utilizzare il criterio di espulsione in VM Runtime su GDC, l'impostazione evictionPolicy deve essere definita nell'oggetto VMRuntime del cluster. Questa impostazione è attiva per impostazione predefinita. Se esegui l'upgrade da una versione precedente, devi attivare questa impostazione manualmente.

Un oggetto vuoto, come evictionPolicy: {}, attiva il criterio di espulsione con le impostazioni predefinite. Per modificare il comportamento predefinito, aggiungi opzioni di configurazione aggiuntive all'oggetto evictionPolicy.

Per attivare e configurare il criterio di espulsione, completa i seguenti passaggi:

  1. Modifica la risorsa personalizzata VMRuntime:

    kubectl edit vmruntime vmruntime
    
  2. Aggiungi o aggiorna la sezione evictionPolicy con un oggetto vuoto per utilizzare le impostazioni predefinite del criterio di espulsione oppure aggiungi le impostazioni che preferisci:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      disableCDIUploadProxyVIP: false
      enabled: true
      evictionPolicy: {}
      useEmulation: false
    

    Se il campo evictionPolicy non è compilato, ad esempio evictionPolicy: null o non è incluso nel file manifest, non viene intrapresa alcuna azione speciale. Le VM vengono espulse forzatamente.

    I manifest di esempio riportati di seguito mostrano come attivare la migrazione live delle VM o riavviare le VM sullo stesso host al termine della manutenzione:

    Migrazione live

    Il seguente criterio di espulsione di esempio abilita la migrazione live delle VM. Il cluster può riprovare la migrazione live fino a 3 volte, con un timeout di 30 secondi per ogni processo di avvio:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      disableCDIUploadProxyVIP: false
      enabled: true
      evictionPolicy:
        evictionStrategy: LiveMigrate
        maxMigrationAttemptsPerVM: 3
        migrationTargetInitializationTimeout: 30s
      useEmulation: false
    

    Riavvia

    Il seguente criterio di espulsione di esempio non tenta di eseguire la migrazione di alcuna VM durante l'espulsione. Le VM vengono arrestate sull'host corrente e riavviate quando l'host termina l'evento di manutenzione:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      disableCDIUploadProxyVIP: false
      enabled: true
      evictionPolicy:
        evictionStrategy: Restart
      useEmulation: false
    
  3. Salva e chiudi la risorsa personalizzata VMRuntime nell'editor.

    Il runtime VM su GDC ora applica il criterio di espulsione alle VM nel tuo cluster.

Passaggi successivi