Acerca de la reparación de las VMs para alta disponibilidad


En este documento, se describe cómo un grupo de instancias administrado (MIG) proporciona alta disponibilidad de tu aplicación a través de la reparación de las VMs con errores y en mal estado del grupo.

Un MIG mantiene tu aplicación en funcionamiento y disponible a través del mantenimiento proactivo de la cantidad de VMs en ejecución en el grupo. Si una VM del grupo falla, el MIG repara la VM. Para ello, la vuelve a crear de las siguientes maneras:

  • Reparación automática de una VM con errores: Si una VM falla o se borra a través de una acción que no inició el MIG, el MIG repara automáticamente la VM con errores. En este documento, consulta Repara una VM con errores automáticamente.
  • Repara una VM según una verificación de estado de la aplicación: Una forma opcional de mejorar aún más la alta disponibilidad a través de la reparación de las VMs en mal estado. Si configuras una verificación de estado basada en la aplicación y tu aplicación falla en la verificación de estado, el MIG marca esa VM como en mal estado y la repara. La reparación de una VM basada en una verificación de estado de la aplicación también se denomina reparación automática. En este documento, consulta Repara una VM según una verificación de estado de la aplicación.

Reparación automática de una VM con errores

Si una VM de un MIG falla, este repara la VM con errores automáticamente a través de su recreación. Una VM puede fallar por los siguientes motivos:

  • Motivos inesperados, como una falla de hardware.
  • Acciones que inicia el MIG, como las siguientes:
    • Interrupción de una VM Spot.
    • Eventos de mantenimiento de infraestructura cuando la instancia de VM no está configurada para migrar en vivo.
    • Eliminación de una VM del grupo con el método instances.delete o el comando gcloud compute instances delete.

Si el MIG detiene una VM de forma intencional (por ejemplo, cuando un escalador automático borra una VM), el MIG no repara esa VM.

Repara automáticamente una VM según una verificación de estado de la aplicación

Además de la reparación automática de las VMs con errores, es posible que desees reparar una VM si la aplicación que se ejecuta en la VM se congela, falla o se queda sin memoria. Para garantizar que la aplicación responda como se espera, puedes configurar una verificación de estado basada en la aplicación.

Una verificación de estado basada en la aplicación verifica de forma periódica que la aplicación en cada VM de un MIG responda como se espera. Si la aplicación en una VM no responde, el MIG marca esa VM como en mal estado. Luego, el MIG repara la VM en mal estado. La reparación de una VM basada en la verificación de estado de la aplicación se denomina reparación automática.

Para garantizar que el MIG siga ejecutando un subconjunto de sus VMs, el grupo nunca repara automáticamente todas sus instancias. Esto es útil, por ejemplo, si una verificación de estado incorrecta activa reparaciones innecesarias, una regla de firewall mal configurada impide que una verificación de estado sondee la VM o haya problemas de infraestructura o conectividad de red que identifiquen de forma errónea que una VM en buen estado está en mal estado. Sin embargo, si un MIG zonal tiene solo una VM o un MIG regional tiene solo una VM por zona, el MIG vuelve a crear estas VMs cuando están en mal estado.

Política de reparación automática

Cada MIG tiene una política de reparación automática en la que puedes configurar una verificación de estado y también establecer un retraso inicial. El retraso inicial es el tiempo que tarda una VM nueva en inicializar y ejecutar su secuencia de comandos de inicio. El temporizador de retraso inicial comienza cuando el MIG cambia el campo currentAction de la VM a VERIFYING. Durante el período de retraso inicial de una VM, el MIG ignora las verificaciones de estado fallidas porque la VM puede estar en el proceso de inicio. Esto evita que el MIG vuelva a crear una VM de forma prematura. Si la verificación de estado recibe una respuesta en buen estado durante el retraso inicial, indica que el proceso de inicio está completo y que la VM está lista.

Para obtener más información sobre cómo configurar una política de reparación automática, consulta Configura una verificación de estado y reparación automática de la aplicación.

Supervisar los cambios de estado de la aplicación

Si configuraste una verificación de estado basada en la aplicación en tu MIG, puedes verificar el estado de cada VM en el MIG. Para obtener más información, consulta Verifica el estado.

También puedes supervisar los cambios en el estado de una VM. Para obtener más información, consulta Supervisa los cambios de estado.

Precios

Cuando configuras una verificación de estado basada en aplicaciones, de forma predeterminada, Compute Engine escribe una entrada de registro cada vez que cambia el estado de una instancia administrada. Cloud Logging proporciona una asignación gratuita por mes, después de la cual el precio de los registros se calcula según el volumen de datos. Para evitar costos, puedes inhabilitar los registros de cambios de estado.

Comportamiento durante una reparación

En las siguientes secciones, se explica el comportamiento durante las reparaciones y reparaciones automáticas según la verificación de estado de la aplicación.

Actualización en la reparación

De forma predeterminada, durante una reparación, un MIG vuelve a crear una VM con la plantilla de instancias original que se usó para crear la VM. Por ejemplo, si se creó una VM con instance-template-a y, luego, actualizas el MIG para usar instance-template-b en modo OPPORTUNISTIC, el MIG aún usa instance-template-a para volver a crear la VM.

Si deseas que el MIG use la plantilla de instancias más reciente y la configuración por instancia durante la reparación de la VM, puedes configurar el grupo para Aplicar actualizaciones de configuración durante las reparaciones.

Manipulación de los discos

Durante una reparación, cuando se vuelve a crear una VM en función de su plantilla, el MIG maneja diferentes tipos de discos de manera diferente. Algunos parámetros de configuración de disco pueden causar una falla en la reparación cuando se intenta volver a crear una VM.

Tipo de disco autodelete Comportamiento durante una reparación
Disco persistente nuevo true Se vuelve a crear el disco según lo especificado en la plantilla de instancias. Se perderá cualquier dato escrito en ese disco cuando se vuelva a crear el disco y su VM.
Disco persistente nuevo false Se conserva el disco y se lo vuelve a conectar cuando el MIG vuelve a crear la VM.
Disco persistente existente true Se borra el disco antiguo. La operación de recreación de VM falla porque Compute Engine no puede volver a conectar un disco borrado en la VM. Sin embargo, para los discos de lectura y escritura existentes, un MIG puede tener solo una VM porque no se puede conectar un disco persistente a varias VM en modo de lectura y escritura.
Disco persistente existente false Se vuelve a conectar el disco antiguo según lo especificado en la plantilla de instancias. Se conservan los datos en el disco. Sin embargo, para los discos de lectura y escritura existentes, un MIG puede tener solo una VM porque no se puede conectar un disco persistente a varias VM en modo de lectura y escritura.
Disco SSD local nuevo N/A Se vuelve a crear el disco según lo especificado en la plantilla de instancias. Los datos en un SSD local se pierden cuando se vuelve a crear o se borra una VM.

El MIG no vuelve a conectar los discos que no se especificaron en la plantilla de instancias o la configuración por instancia, como los discos que conectaste a una VM de forma manual después de que se creó la VM.

Para conservar los datos importantes escritos en un disco, toma las siguientes precauciones:

Si tus VM tienen parámetros de configuración importantes que deseas conservar, Google también recomienda que uses una imagen personalizada en tu plantilla de instancia. Una imagen personalizada contiene cualquier configuración personalizada que necesites. Cuando especificas una imagen personalizada en tu plantilla de instancia, el MIG vuelve a crear las VMs con la imagen personalizada que contiene la configuración personalizada que necesitas.

Desactiva las reparaciones

Puedes desactivar las reparaciones que realiza un MIG automáticamente. Cuando desactivas las reparaciones, se desactivan las reparaciones de las VMs con errores y las reparaciones basadas en una verificación de estado de la aplicación.

Es posible que desees desactivar las reparaciones en un MIG en situaciones como las siguientes:

  • Investigar o depurar una VM con errores sin interrupciones de la reparación automática
  • Para reparar las VMs de forma manual o implementar tu propia lógica de reparación.
  • Para evitar registrar nuevas VMs mientras un trabajo por lotes está en curso.
  • Para observar el estado de la aplicación sin reparar una VM en mal estado.
  • Para ajustar la configuración de la verificación de estado sin reparaciones de activación falsa.

Cuando desactivas las reparaciones, el MIG no realiza ninguna acción si una VM del grupo falla o está en mal estado. Las VMs con errores y en mal estado continúan en el grupo, y la cantidad objetivo de VM en ejecución en el MIG (targetSize) sigue siendo la misma.

Si el tipo de actualización del MIG está configurado como proactive y hay una plantilla de instancias nueva disponible, el MIG intenta actualizar las VM con errores y en mal estado.

Si configuraste una verificación de estado basada en la aplicación, desactivar las reparaciones no afecta el funcionamiento de la verificación de estado. La verificación de estado continúa sondeando la aplicación y proporciona los estados de la VM. Esto te permite supervisar los estados de la aplicación y, al mismo tiempo, evitar que el MIG repare las VMs en mal estado.

Si el MIG es parte de un servicio de backend de un balanceador de cargas y desactivas las reparaciones en el MIG, las VMs con errores y sin reparación no responden a la verificación de estado del balanceador de cargas. Si la cantidad de estas VMs con errores o en mal estado en el MIG aumenta, el balanceador de cargas puede reducir el tráfico a ese MIG o cambiar a otro backend, si está configurado. Cuando las VMs con errores vuelven a estar disponibles, el balanceador de cargas reanuda el tráfico hacia el MIG.

Para obtener más información, consulta Desactiva las reparaciones en un MIG.

¿Qué sigue?