Configura i criteri di rimozione per le VM in GKE su Bare Metal

Questo documento è rivolto agli amministratori di piattaforma che eseguono macchine virtuali (VM) in GKE su Bare Metal. Questo documento mostra come configurare il criterio di rimozione, che controlla in che modo le VM che utilizzano VM Runtime su Google Distributed Cloud possono eseguire la migrazione automatica ad altri host durante gli eventi di manutenzione. Queste impostazioni di configurazione consentono di continuare a eseguire le VM su altri host quando esegui l'upgrade di un cluster o la manutenzione su un host.

Prima di iniziare

Per completare questo documento, devi accedere al cluster GKE su Bare Metal versione 1.12.0 (anthosBareMetalVersion: 1.12.0) o successiva. Puoi usare qualsiasi tipo di cluster in grado di eseguire carichi di lavoro. Se necessario, prova GKE su Bare Metal su Compute Engine o consulta la panoramica sulla creazione dei cluster.

Impostazioni dei criteri di rimozione

GKE su Bare Metal consente di configurare il comportamento dei nodi quando esegui upgrade del cluster o imposti i nodi in modalità di manutenzione. Il runtime VM su Google Distributed Cloud utilizza un criterio di rimozione che controlla in che modo il cluster gestisce le VM in esecuzione durante questi eventi.

Se abilitato, il runtime VM su Google Distributed Cloud utilizza la migrazione live per spostare i carichi di lavoro delle VM in un altro host per impostazione predefinita. Questo comportamento riduce al minimo le potenziali interruzioni dei carichi di lavoro delle VM. Con la migrazione live, le VM di cui è possibile eseguire la migrazione si spostano da un host all'altro senza interruzioni del sistema operativo guest.

È possibile configurare le seguenti impostazioni dei criteri di rimozione:

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

evictionStrategy

Se questo valore è impostato su LiveMigrate, il runtime VM su Google Distributed Cloud tenta di eseguire la migrazione di qualsiasi VM di cui è possibile eseguire la migrazione da un nodo per rimuoverla. La VM si trova su un altro nodo nel cluster e continua a essere eseguita.

Se questo valore è impostato su Restart, il runtime VM su Google Distributed Cloud non tenta di migrare le VM. Le VM vengono arrestate quando il nodo viene messo in modalità di manutenzione e vengono riavviate quando il nodo viene disattivato. La VM non è disponibile durante l'evento di manutenzione dell'host.

Quando scegli la strategia LiveMigrate, il runtime VM su Google Distributed Cloud utilizza la strategia Restart per le VM non idonee alla migrazione.

maxMigrationAttemptsPerVM

Questa impostazione controlla il numero massimo di tentativi di migrazione che possono verificarsi per una determinata VM prima che venga applicata la strategia Restart.

Questa impostazione viene ignorata se il criterio evictionStrategy viene 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 essere avviata viene conteggiata ai fini del budget di migrazione non riuscito per un carico di lavoro VM.

Questa impostazione viene ignorata se il criterio evictionStrategy viene impostato su Restart.

Abilita e configura il criterio di rimozione

Per utilizzare il criterio di rimozione nel runtime VM su Google Distributed Cloud, è necessario definire l'impostazione evictionPolicy nell'oggetto VMRuntime del cluster. Questa impostazione è abilitata per impostazione predefinita in Anthos clusters on bare metal versione 1.12 e successive. Se esegui l'upgrade da una versione precedente, devi abilitare questa impostazione manualmente.

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

Per attivare e configurare il criterio di rimozione:

  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 rimozione 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 viene compilato, ad esempio evictionPolicy: null, o non è incluso nel file manifest, non viene intrapresa alcuna azione speciale. Le VM vengono rimosse forzatamente.

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

    Migrazione live

    Il criterio di rimozione di esempio riportato di seguito consente la migrazione live delle VM. Il cluster può riprovare la migrazione live fino a 3 volte, con un timeout di 30 secondi nel processo ogni volta per l'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
    

    Riavvio

    Il criterio di rimozione dell'esempio seguente non esegue alcun tentativo di migrazione delle VM durante l'eliminazione. Le VM vengono arrestate sull'host attuale 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.

    Ora il runtime VM su Google Distributed Cloud applica il criterio di rimozione alle VM nel tuo cluster.

Passaggi successivi