Este documento está dirigido a administradores de plataformas que ejecutan máquinas virtuales en Google Distributed Cloud. En este documento se explica cómo configurar la política de desalojo que controla cómo pueden migrar automáticamente a otros hosts las VMs que usan VM Runtime en GDC durante los eventos de mantenimiento. Estos ajustes de configuración permiten que tus VMs sigan ejecutándose en otros hosts cuando actualizas un clúster o realizas tareas de mantenimiento en un host.
Antes de empezar
Para completar este documento, necesitas acceso a un clúster de Google Distributed Cloud versión 1.12.0
(anthosBareMetalVersion: 1.12.0
) o posterior. Puedes usar cualquier tipo de clúster que pueda ejecutar cargas de trabajo. Si es necesario, prueba Google Distributed Cloud en Compute Engine o consulta la descripción general de la creación de clústeres.
Configuración de la política de desalojo
Google Distributed Cloud te permite configurar el comportamiento de los nodos cuando realizas actualizaciones de clústeres o pones nodos en modo de mantenimiento. El entorno de ejecución de máquinas virtuales en GDC usa una política de desalojo que controla cómo gestiona el clúster las máquinas virtuales que se ejecutan durante estos eventos.
Cuando está habilitado, VM Runtime en GDC usa la migración activa para mover las cargas de trabajo de las máquinas virtuales a otro host de forma predeterminada. Este comportamiento minimiza las posibles interrupciones de las cargas de trabajo de las VMs. Con la migración activa, las máquinas virtuales que se pueden migrar se mueven de un host a otro sin que se interrumpa el sistema operativo invitado.
Se pueden configurar los siguientes ajustes de la política de desalojo:
Propiedad | Predeterminado | Valores válidos |
---|---|---|
evictionStrategy |
LiveMigrate |
LiveMigrate , Restart |
maxMigrationAttemptsPerVM |
3 |
Enteros en el intervalo [1 ,5 ] |
migrationTargetInitializationTimeout |
30s |
Cualquier cadena de duración válida, como 1m , 2h o 1h30m |
evictionStrategy
Si este valor se define como LiveMigrate
, VM Runtime en GDC intenta migrar cualquier VM que se pueda migrar de un nodo para desalojarla. La VM se coloca en otro nodo del clúster y sigue ejecutándose.
Si este valor es Restart
, el tiempo de ejecución de máquinas virtuales de GDC no intentará migrar las máquinas virtuales. En su lugar, las VMs se detienen cuando el nodo se pone en modo de mantenimiento y se vuelven a iniciar cuando el nodo sale del modo de mantenimiento.
La VM no está disponible durante el evento de mantenimiento del host.
Si eliges la estrategia LiveMigrate
, VM Runtime en GDC volverá a la estrategia Restart
para las VMs que no se puedan migrar.
maxMigrationAttemptsPerVM
Este ajuste controla el número máximo de intentos de migración que se pueden producir en una VM concreta antes de que se aplique la estrategia Restart
.
Este ajuste se ignora si evictionStrategy
se define como Restart
.
migrationTargetInitializationTimeout
Este ajuste controla el tiempo máximo que puede tardar en iniciarse una migración antes de que se considere que ha fallado. Si una migración tarda demasiado en iniciarse, se contabilizará en el presupuesto de migraciones fallidas de una carga de trabajo de VM.
Este ajuste se ignora si evictionStrategy
se define como Restart
.
Habilitar y configurar la política de desalojo
Para usar la política de desalojo en VM Runtime en GDC, debes definir el ajuste evictionPolicy
en el objeto VMRuntime
de tu clúster.
Este ajuste está habilitado de forma predeterminada. Si actualizas desde una versión anterior, debes habilitar este ajuste manualmente.
Un objeto vacío, como evictionPolicy: {}
, habilita la política de desalojo con la configuración predeterminada. Para cambiar el comportamiento predeterminado, añade opciones de configuración adicionales al objeto evictionPolicy
.
Para habilitar y configurar la política de desalojo, sigue estos pasos:
Edita el recurso personalizado
VMRuntime
:kubectl edit vmruntime vmruntime
Añada o actualice la sección
evictionPolicy
con un objeto vacío para usar la configuración predeterminada de la política de desalojo o añada la configuración que quiera:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: disableCDIUploadProxyVIP: false enabled: true evictionPolicy: {} useEmulation: false
Si no se rellena el campo
evictionPolicy
, comoevictionPolicy: null
, o no se incluye en el manifiesto, no se lleva a cabo ninguna acción especial. Las VMs se desalojan de forma forzosa.En los siguientes ejemplos de archivos de manifiesto se muestra cómo habilitar la migración en tiempo real de las VMs o cómo reiniciar las VMs en el mismo host una vez que se haya completado el mantenimiento:
Migrar en tiempo real
La siguiente política de desalojo de ejemplo permite la migración activa de las máquinas virtuales. El clúster puede volver a intentar la migración en directo hasta 3 veces, con un tiempo de espera de 30 segundos en el proceso cada vez que se inicia:
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 desalojo de ejemplo no intenta migrar ninguna máquina virtual durante el desalojo. Las VMs se detienen en su host actual y vuelven a iniciarse cuando el host termina 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
Guarda y cierra el recurso personalizado
VMRuntime
en el editor.El tiempo de ejecución de máquinas virtuales en GDC ahora aplica la política de desalojo a las máquinas virtuales de tu clúster.