Configurer les règles d'éviction pour les VM dans les clusters Anthos sur solution Bare Metal

Ce document s'adresse aux administrateurs de plate-forme qui exécutent des machines virtuelles (VM) dans des clusters Anthos sur solution Bare Metal. Ce document explique comment configurer la règle d'éviction qui contrôle la manière dont les VM qui utilisent l'environnement d'exécution des VM Anthos peuvent migrer automatiquement vers d'autres hôtes lors d'événements de maintenance. Ces paramètres de configuration vous permettent de continuer à exécuter des VM sur d'autres hôtes lorsque vous mettez à niveau un cluster ou effectuez une maintenance sur un hôte.

Avant de commencer

Pour suivre ce document, vous devez avoir accès aux clusters Anthos sur solution Bare Metal version 1.12.0 (anthosBareMetalVersion: 1.12.0) ou ultérieure. Vous pouvez utiliser n'importe quel type de cluster capable d'exécuter des charges de travail. Si nécessaire, essayez les clusters Anthos sur solution Bare Metal sur Compute Engine ou consultez la présentation de la création de clusters.

Paramètres des règles d'éviction

Les clusters Anthos sur solution Bare Metal vous permettent de configurer le comportement des nœuds lorsque vous effectuez des mises à niveau ou placez les nœuds en mode de maintenance. L'environnement d'exécution des VM Anthos utilise des règles d'éviction qui contrôlent la manière dont le cluster gère les VM qui s'exécutent lors de ces événements.

Lorsque cette option est activée, l'environnement d'exécution des VM Anthos utilise la migration à chaud pour déplacer les charges de travail de VM vers un autre hôte par défaut. Ce comportement minimise les perturbations potentielles des charges de travail de VM. Avec la migration à chaud, les VM pouvant être migrées passent d'un hôte à un autre sans perturbation pour le système d'exploitation invité.

Les paramètres suivants peuvent être configurés pour les règles d'éviction :

Propriété Par défaut Valeurs valides
evictionStrategy LiveMigrate LiveMigrate, Restart
maxMigrationAttemptsPerVM 3 Entiers compris dans la plage [1,5]
migrationTargetInitializationTimeout 30s Toute chaîne de durée valide, telle que 1m, 2h ou 1h30m

evictionStrategy

Si cette valeur est définie sur LiveMigrate, l'environnement d'exécution des VM Anthos tente de migrer toute VM pouvant être transférée depuis un nœud pour l'exclure. La VM est placée sur un autre nœud du cluster et continue de s'exécuter.

Si cette valeur est définie sur Restart, l'environnement d'exécution des VM Anthos ne tente pas de migrer les VM. Au lieu de cela, les VM sont arrêtées lorsque le nœud est mis en mode de maintenance, puis redémarrent lorsque les nœuds sont désactivés. La VM n'est pas disponible pendant l'événement de maintenance de l'hôte.

Lorsque vous choisissez la stratégie LiveMigrate, l'environnement d'exécution des VM Anthos revient à la stratégie Restart pour les VM ne pouvant pas être migrées.

maxMigrationAttemptsPerVM

Ce paramètre contrôle le nombre maximal de tentatives de migration pouvant être effectuées pour une VM particulière avant que la stratégie Restart ne s'applique.

Ce paramètre est ignoré si evictionStrategy est défini sur Restart.

migrationTargetInitializationTimeout

Ce paramètre contrôle le délai maximal de démarrage d'une migration avant qu'elle soit considérée comme ayant échoué. Une migration qui prend trop de temps est comptabilisée dans le budget de migration en échec pour une charge de travail de VM.

Ce paramètre est ignoré si evictionStrategy est défini sur Restart.

Activer et configurer la règle d'éviction

Pour utiliser la règle d'éviction dans l'environnement d'exécution des VM Anthos, le paramètre evictionPolicy doit être défini dans l'objet VMRuntime de votre cluster. Ce paramètre est activé par défaut dans les clusters Anthos sur solution Bare Metal version 1.12 et ultérieure. Si vous effectuez une mise à niveau à partir d'une version précédente, vous devez activer ce paramètre manuellement.

Un objet vide, tel que evictionPolicy: {}, active la règle d'éviction avec les paramètres par défaut. Pour modifier le comportement par défaut, ajoutez des options de configuration supplémentaires à l'objet evictionPolicy.

Pour activer et configurer la règle d'éviction, procédez comme suit :

  1. Modifiez la ressource personnalisée VMRuntime :

    kubectl edit vmruntime vmruntime
    
  2. Ajoutez ou mettez à jour la section evictionPolicy avec un objet vide pour utiliser les paramètres de règle d'éviction par défaut, ou ajoutez les paramètres souhaités :

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

    Si l'élément evictionPolicy n'est pas renseigné, tel que evictionPolicy: null, ou n'est pas inclus dans le fichier manifeste, aucune action spéciale n'est effectuée. Les VM sont supprimées de force.

    Les exemples de fichiers manifestes suivants montrent comment activer la migration à chaud des VM ou redémarrer les VM sur le même hôte une fois la maintenance terminée :

    Migration à chaud

    L'exemple de règle d'éviction suivant active la migration à chaud des VM. Le cluster peut relancer la migration à chaud jusqu'à trois fois, avec un délai de 30 secondes pour le processus à chaque démarrage :

    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
    

    Redémarrer

    L'exemple de règle d'éviction suivant ne tente aucune migration pour les VM pendant l'éviction. Les VM sont arrêtées sur leur hôte actuel et redémarrent une fois que l'événement de maintenance sur l'hôte est terminé :

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      disableCDIUploadProxyVIP: false
      enabled: true
      evictionPolicy:
        evictionStrategy: Restart
      useEmulation: false
    
  3. Enregistrez et fermez la ressource personnalisée VMRuntime dans votre éditeur.

    L'environnement d'exécution des VM Anthos applique désormais la règle d'éviction aux VM de votre cluster.

Étapes suivantes