Configura políticas de disponibilidad de instancia

Compute Engine realiza un mantenimiento regular de su infraestructura. En esta página, se describen los tipos de eventos de mantenimiento y sus frecuencias aproximadas, y el modo en que puedes configurar las opciones de disponibilidad de instancias a fin de establecer el comportamiento de las instancias de VM cuando ocurren estos eventos. También se describe cómo configurar una instancia para que realice una migración en vivo cuando tiene lugar un evento de este tipo.

Antes de comenzar

Eventos de mantenimiento

Los eventos de mantenimiento de Compute Engine involucran actualizaciones de hardware y software. Algunos de estos eventos de mantenimiento requieren que Google aleje su VM del host que está en mantenimiento. Compute Engine administra automáticamente el comportamiento de la programación de estas instancias. Compute Engine llevará a cabo la migración en vivo de las instancias de VM si configuraste la política de disponibilidad de la instancia para que utilice este tipo de migración. Esto evita que tus aplicaciones sufran interrupciones durante estos eventos. De manera alternativa, también puedes optar por finalizar las instancias durante estos eventos, en lugar de realizar la migración en vivo.

En la siguiente tabla, se clasifican los eventos de mantenimiento de Compute Engine en dos categorías, se ilustra cada categoría con ejemplos y se indica qué evento de mantenimiento requiere una migración en vivo de tu VM a un host diferente.

Tipo de evento de mantenimiento Ejemplos Frecuencia aproximada * Requiere migración en vivo al host nuevo
Mantenimiento de host Actualización del kernel del host, actualización o reparación del hardware Una vez al mes
Mantenimiento ligero Actualización de nivel de hipervisor, actualización de la pila de red De 1 a 2 veces por semana No

* Ten en cuenta que estas frecuencias son aproximaciones, no garantías. Puede que Compute Engine haga tareas de mantenimiento con mayor frecuencia que la mencionada aquí.

Elige políticas de disponibilidad

La política de disponibilidad de una instancia de VM determina su comportamiento cuando ocurre un evento de mantenimiento en el que Google debe transferir la instancia a otra máquina host. Puedes configurar tus instancias de VM para que continúen ejecutándose mientras Compute Engine realiza la migración en vivo de las instancias a otro host, o puedes optar por finalizar tus instancias. Es posible actualizar la política de disponibilidad de una instancia en cualquier momento con el objetivo de controlar cómo quieres que se comporten tus instancias de VM.

Para cambiar la política de disponibilidad de una instancia, establece las dos configuraciones siguientes:

  • El comportamiento de mantenimiento de la instancia de VM, que determina si la instancia se migra en vivo o se finaliza cuando ocurre un evento de mantenimiento.
  • El comportamiento de reinicio de la instancia, que determina si la instancia se reinicia de forma automática si falla o se finaliza.

El comportamiento de mantenimiento predeterminado de las instancias es la migración en vivo, pero puedes cambiarlo para finalizar la instancia durante los eventos de mantenimiento.

Migración en vivo

De forma predeterminada, las instancias estándar están configuradas para la migración en vivo, que ocurre cuando Compute Engine migra automáticamente tu instancia lejos de un evento de mantenimiento de infraestructura, y la instancia permanece en ejecución durante la migración. Esta puede experimentar un corto período de disminución del rendimiento, aunque en la mayoría de las instancias, por lo general, no debería notarse ninguna diferencia. Esto resulta ideal para las instancias que requieren un tiempo de actividad constante y pueden tolerar un corto período de disminución del rendimiento.

Cuando Compute Engine migra tu instancia, informa un evento del sistema que se publica en la lista de operaciones de zona. Puedes revisar este evento viendo las operaciones de Compute Engine para una zona específica. Los eventos de migración en vivo tienen el siguiente tipo de operación:

compute.instances.migrateOnHostMaintenance

Finaliza y (opcionalmente) reinicia la instancia

Si no deseas que tu instancia realice una migración en vivo, puedes optar por finalizarla y, de manera opcional, reiniciarla. Con esta opción, Compute Engine le indicará a tu instancia que se cierre, esperará un corto período de tiempo hasta que lo haga en forma correcta, finalizará la instancia y la reiniciará lejos del evento de mantenimiento. Esta opción es ideal para las instancias que exigen un rendimiento máximo y constante. Tu aplicación, en general, está diseñada para manejar fallas o reinicios de instancias.

Cuando Compute Engine finaliza y reinicia tus instancias, informa un evento del sistema que se publica en la lista de operaciones de zona. Puedes revisar este evento viendo las operaciones de Compute Engine para una zona específica. Los eventos de finalización tienen el siguiente tipo de operación:

compute.instances.terminateOnHostMaintenance

Cuando tu instancia se reinicia, utiliza el mismo disco de arranque persistente y vuelve a conectar cualquier disco persistente secundario que hayas configurado. Los datos en esos discos se mantienen durante la migración y el reinicio de la instancia.

Los datos en SSD locales no se conservan durante la finalización de la instancia. Cuando la instancia se reinicia, crea un SSD local nuevo que debes formatear y activar.

Reinicio automático

Si tu instancia se configuró para que se finalice cuando ocurre un evento de mantenimiento, o si esta falla debido a un problema subyacente en el hardware, puedes configurar Compute Engine para que la reinicie de forma automática mediante la configuración del campo automaticRestart como true. Esta configuración no se aplica si la instancia se desconecta debido a la acción de un usuario, como la llamada a sudo shutdown, o durante una interrupción en la zona.

Cuando Compute Engine reinicia tu instancia de forma automática, informa un evento del sistema que se publica en la lista de operaciones de zona. Puedes revisar este evento viendo las operaciones de Compute Engine para una zona específica. Los eventos de reinicio automático tienen el siguiente tipo de operación:

compute.instances.automaticRestart

Ve las operaciones de Compute Engine

Puedes ver una lista de las operaciones completas mediante Google Cloud Platform Console, la herramienta de línea de comandos de gcloud o la API de Compute Engine.

Console

Si deseas ver una lista de operaciones para tu proyecto, ve a la página Operaciones.

  1. Ir a la página Operaciones

  2. Para obtener más detalles sobre una operación, haz clic en el resumen de la operación. Por ejemplo, para ver los detalles de migración de la instancia my-instance, haz clic en la operación Migrar una instancia de forma automática. Captura de pantalla de la página de operaciones que muestra la migración en vivoCaptura de pantalla de los detalles de la migración en vivo

gcloud

Si deseas ver una lista de operaciones para tu proyecto con gcloud compute, usa el subcomando operations list.

Para ver la lista de operaciones en una zona específica, agrega la marca --filter.

gcloud compute operations list --filter="zone:(ZONE)"

Por ejemplo, si quieres ver la lista de operaciones en us-cental1-c, ejecuta el siguiente comando:

gcloud compute operations list --filter="zone:(us-central1-c)"

NAME                            TYPE                                        TARGET                                HTTP_STATUS  STATUS  TIMESTAMP
systemevent-1543845145000...    compute.instances.migrateOnHostMaintenance  us-central1-c/instances/my-instance   200          DONE    2018-12-03T05:52:25.000-08:00

API

Las solicitudes a la API para las operaciones deben especificarse a nivel global, regional o zonal. La migración en vivo, la finalización de instancias y los reinicios automáticos son todas operaciones a nivel zonal.

Para las operaciones zonales, haz una solicitud GET al método zoneOperations.list.

GET https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/operations

en la que:

  • [PROJECT_ID] es el ID del proyecto de esta solicitud.
  • [ZONE] es el nombre de la zona para esta solicitud.

    Deja el cuerpo de la solicitud vacío.

El siguiente es un resultado de muestra de una solicitud de operación de zona. En este resultado, se muestran los detalles de una migración de host.

{
 "kind": "compute#operation",
 "id": "3216798767364213712",
 "name": "systemevent-1543845145000-57c1e7574b840-a195b637-5ff74d9b",
 "zone": "https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c",
 "operationType": "compute.instances.migrateOnHostMaintenance",
 "targetLink": "https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/instances/my-instance",
 "targetId": "3070988523247098025",
 "status": "DONE",
 "statusMessage": "Instance migrated during Compute Engine maintenance.",
 "user": "system",
 "progress": 100,
 "insertTime": "2018-12-03T05:52:25.000-08:00",
 "startTime": "2018-12-03T05:52:25.000-08:00",
 "endTime": "2018-12-03T05:52:25.000-08:00",
 "selfLink": "https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/operations/systemevent-1543845145000-57c1e7574b840-a195b637-5ff74d9b"
}

Configura políticas de disponibilidad

Configura el comportamiento de mantenimiento de una instancia y la configuración de reinicio automático mediante las propiedades onHostMaintenance y automaticRestart. Todas las instancias se configuran con valores predeterminados, a menos que especifiques lo contrario de forma explícita.

  • onHostMaintenance: Determina el comportamiento cuando ocurre un evento de mantenimiento que podría hacer que la instancia se reinicie.

    • [Predeterminado]migrate: Hace que Compute Engine realice la migración en vivo una instancia cuando se produce un evento de mantenimiento.
    • terminate: Finaliza una instancia en lugar de migrarla.
  • automaticRestart: Determina el comportamiento cuando una instancia falla o el sistema la finaliza.

    • [Predeterminado]true: Compute Engine reinicia una instancia si esta falla o se finaliza.
    • false: Compute Engine no reinicia la instancia si esta falla o se finaliza.

Puedes cambiar las políticas de disponibilidad de una instancia la primera vez que creas una instancia o después de crear la instancia mediante el método setScheduling.

Opciones de configuración durante la creación de instancias

Console

  1. En GCP Console, ve a la página VM Instances.

    Ir a la página Instancias de VM

  2. Haz clic en Crear instancia.
  3. En la página Crear una instancia nueva, llena las propiedades que quieras para tu instancia.
  4. Expande la opción Administración, seguridad, discos, redes, instancia única.
  5. En Política de disponibilidad, configura las opciones de Reinicio automático y Mantenimiento en el host.
  6. Haz clic en Crear para crear la instancia.

gcloud

Para establecer las políticas de disponibilidad de una instancia nueva en gcloud compute, usa la marca --maintenance-policy a fin de especificar si la instancia debe migrarse o finalizarse. De manera predeterminada, las instancias están configuradas para reiniciarse a menos que proporciones la marca --no-restart-on-failure.

gcloud compute instances create INSTANCE .. \
    [--maintenance-policy MAINTENANCE_POLICY] \
    [--no-restart-on-failure]

API

En la API, realiza una solicitud POST a la siguiente URL, pero reemplaza el proyecto y la zona con tu ID del proyecto y la zona de la instancia:

https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances

Usa los parámetros onHostMaintenance y automaticRestart como parte del cuerpo de la solicitud:

{
  "name": "example-instance",
  "description": "Front-end for real-time ingest; don't migrate.",
  ...
  // User options for influencing this Instance’s life cycle.
  "scheduling": {
    "onHostMaintenance": "migrate",
    "automaticRestart": "true" # specifies that Compute Engine should automatically restart your instance
  }
}

Para obtener más información, consulta la documentación de referencia Instancias.

Actualiza las opciones de una instancia

Console

  1. Ve a la página Instancias de VM en Google Cloud Platform Console.

    Ir a la página Instancias de VM

  2. Haz clic en la instancia en la que deseas cambiar la configuración. Se mostrará la página de detalles de la instancia.
  3. En la página de detalles de la instancia, completa los siguientes pasos:
    1. Haz clic en el botón Editar en la parte superior de la página.
    2. En Políticas de disponibilidad, actualiza la política según sea necesario. Desde la sección Políticas de disponibilidad, puedes configurar las opciones de Reinicio automático y de Mantenimiento en el host.
    3. Haz clic en Guardar.

gcloud

Para actualizar las políticas de disponibilidad de una instancia, usa el comando instances set-scheduling con los mismos parámetros y marcas que usaste en el comando de creación de instancia anterior:

gcloud compute instances set-scheduling INSTANCE \
    [--maintenance-policy BEHAVIOR] \
    [--no-restart-on-failure | --restart-on-failure]

API

En la API, puedes realizar una solicitud a la siguiente URL, pero reemplaza el proyecto y la zona con tu ID del proyecto y la zona de la instancia:

https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/setScheduling

El cuerpo de la solicitud debe contener el valor nuevo de las políticas de disponibilidad:

{
  "onHostMaintenance": "migrate"
  "automaticRestart": "true" # specifies that Compute Engine should automatically restart your instance
}

Para obtener más información, consulta la documentación de referencia instances().setScheduling.

Prueba las políticas de disponibilidad

Después de configurar tus políticas de disponibilidad, puedes simular eventos de mantenimiento para probar los efectos de estas políticas en tus aplicaciones. Por ejemplo, podrías simular un evento de mantenimiento en tus instancias en una de las siguientes situaciones:

  • Tienes instancias configuradas para la migración en vivo durante los eventos de mantenimiento y necesitas probar los efectos de este tipo de migración en tus aplicaciones.
  • Tienes trabajos por lotes en ejecución en instancias de VM interrumpibles y necesitas probar de qué modo tus aplicaciones manejan la interrupción y el cierre de una o más instancias.
  • Tus instancias están configuradas para finalizar y reiniciarse durante los eventos de mantenimiento, en lugar de realizar la migración en vivo. Debes probar de qué forma tus aplicaciones manejan este proceso de apagado y reinicio.

Los eventos de mantenimiento simulados están sujetos a Límites de frecuencia de API específicos.

Puedes simular un evento de mantenimiento en una instancia con la herramienta de línea de comandos de gcloud o con una solicitud a la API.

gcloud

Ejecuta el comando instances simulate-maintenance-event para forzar a una instancia a activar su acción de política de mantenimiento configurada:

gcloud compute instances simulate-maintenance-event [INSTANCE_NAME] \
    --zone [ZONE]

en el que:

  • [INSTANCE_NAME] es el nombre de la instancia en la que deseas simular el evento de mantenimiento. Puedes especificar varios nombres de instancia para simular eventos de mantenimiento en más de una instancia en la misma zona.
  • [ZONE] es la zona donde se encuentra la instancia.

API

En la API, haz una solicitud al método compute.instances.simulateMaintenanceEvent en la API de Compute Engine:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/simulateMaintenanceEvent

en la que:

  • [INSTANCE_NAME] es el nombre de la instancia en la que deseas simular el evento de mantenimiento.
  • [ZONE] es la zona donde se encuentra la instancia.

    Para obtener más información sobre este método, consulta la documentación de referencia instances().simulateMaintenanceEvent.

Qué sigue

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Compute Engine