Configura las políticas de expulsión para las VM en los clústeres de Anthos en el equipo físico

Este documento está dirigido a los administradores de plataformas que ejecutan máquinas virtuales (VM) en clústeres de Anthos en equipos físicos. En este documento, se muestra cómo configurar la política de expulsión que controla cómo las VM que usan el entorno de ejecución de VM de Anthos pueden migrar automáticamente a otros hosts durante los eventos de mantenimiento. Estos parámetros de configuración te permiten seguir ejecutando las VM en otros hosts cuando actualizas un clúster o realizas mantenimiento en un host.

Antes de comenzar

Para completar este documento, necesitas acceso a un clúster de la versión 1.12.0 (anthosBareMetalVersion: 1.12.0) o superior de los clústeres de Anthos alojados en equipos físicos. Puedes usar cualquier tipo de clúster capaz de ejecutar cargas de trabajo. Si es necesario, prueba los clústeres de Anthos alojados en equipos físicos en Compute Engine o consulta la descripción general de la creación de clústeres.

Configuración de la política de expulsión

Los clústeres de Anthos alojados en Bare Metal te permiten configurar el comportamiento del nodo cuando realizas actualizaciones del clúster o colocas nodos en modo de mantenimiento. El entorno de ejecución de VM de Anthos usa una política de expulsión que controla cómo el clúster maneja las VM que se ejecutan durante estos eventos.

Cuando se habilita, el entorno de ejecución de VM de Anthos usa la migración en vivo para trasladar las cargas de trabajo de VM a otro host de forma predeterminada. Este comportamiento minimiza la posible interrupción de las cargas de trabajo de VM. Con la migración en vivo, las VM que se pueden migrar cambian de un host a otro sin interrupciones en el SO invitado.

La siguiente configuración de política de expulsión puede configurarse:

Propiedad Predeterminado Valores válidos
evictionStrategy LiveMigrate LiveMigrate, Restart
maxMigrationAttemptsPerVM 3 Números enteros en el rango [1,5]
migrationTargetInitializationTimeout 30s Cualquier string de duración válida, como 1m, 2h o 1h30m

evictionStrategy

Si este valor se establece en LiveMigrate, el entorno de ejecución de Anthos VM intenta migrar cualquier VM migrable fuera de un nodo para expulsarla. La VM se coloca en otro nodo del clúster y continúa ejecutándose.

Si este valor se establece como Restart, Anthos VM Runtime no intenta migrar las VM. En su lugar, las VM se detienen cuando el nodo se pone en modo de mantenimiento y se vuelven a iniciar cuando se desactiva el modo de mantenimiento. La VM no está disponible durante el evento de mantenimiento del host.

Cuando eliges la estrategia LiveMigrate, el entorno de ejecución de la VM de Anthos recurre a la estrategia Restart para las VM que no se pueden migrar.

maxMigrationAttemptsPerVM

Esta configuración controla la cantidad máxima de intentos de migración que pueden ocurrir para una VM en particular antes de que se aplique la estrategia de Restart.

Esta configuración se ignora si evictionStrategy se establece en Restart.

migrationTargetInitializationTimeout

Esta configuración controla el tiempo máximo que puede tardar una migración en iniciarse antes de que se considere que falló. Una migración que lleva demasiado tiempo en iniciarse se considera dentro del presupuesto de migración con errores de una carga de trabajo de VM.

Esta configuración se ignora si evictionStrategy se establece en Restart.

Habilita y configura la política de expulsión

Para usar la política de expulsión en el entorno de ejecución de VM de Anthos, la configuración evictionPolicy debe definirse en el objeto VMRuntime de tu clúster. Esta configuración está habilitada de forma predeterminada en los clústeres de Anthos en la versión 1.12 y posteriores de equipos físicos. Si actualizas desde una versión anterior, debes habilitar esta configuración de forma manual.

Un objeto vacío, como evictionPolicy: {}, habilita la política de expulsión con la configuración predeterminada. Para cambiar el comportamiento predeterminado, agrega opciones de configuración adicionales al objeto evictionPolicy.

Para habilitar y configurar la política de expulsión, completa los siguientes pasos:

  1. Edita el recurso personalizado VMRuntime:

    kubectl edit vmruntime vmruntime
    
  2. Agrega o actualiza la sección evictionPolicy con un objeto vacío para usar la configuración de la política de expulsiones predeterminada, o agrega la configuración deseada:

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

    Si el elemento evictionPolicy no se propaga, como evictionPolicy: null o no se incluye en el manifiesto, no se realiza ninguna acción especial. Las VM se expulsan a la fuerza.

    En los siguientes manifiestos de ejemplo, se muestra cómo habilitar la migración en vivo de VM o reiniciar las VM en el mismo host después de que se complete el mantenimiento:

    Migración en vivo

    En la siguiente política de expulsión de ejemplo, se habilita la migración en vivo de las VM. El clúster puede reintentar la migración en vivo hasta 3 veces y con un tiempo de espera de 30 segundos en el proceso cada vez para iniciarse:

    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
    

    Reiniciar

    La siguiente política de expulsión de ejemplo no intenta realizar una migración para ninguna VM durante la expulsión. Las VM se detienen en su host actual y se vuelven a iniciar cuando el host finaliza su evento de mantenimiento:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      disableCDIUploadProxyVIP: false
      enabled: true
      evictionPolicy:
        evictionStrategy: Restart
      useEmulation: false
    
  3. Guarda y cierra el recurso personalizado VMRuntime en el editor.

    El entorno de ejecución de VM de Anthos ahora aplica la política de expulsión a las VMs de tu clúster.

¿Qué sigue?