Simula un evento de mantenimiento de host


En esta página, se describe cómo probar los efectos de la política de mantenimiento del host de la instancia de Compute Engine en tus aplicaciones.

Puedes simular un evento de mantenimiento en tus VMs para probar lo siguiente:

  • Los efectos de la migración en vivo en tus aplicaciones
  • Cómo tus aplicaciones y trabajos por lotes manejan la interrupción y el cierre cuando usas una o más VM Spot
  • Cómo tus aplicaciones manejan el proceso de apagado y reinicio de las instancias que están configuradas para finalizar y reiniciarse durante los eventos de mantenimiento en lugar de migrar en vivo
  • Cómo se comportan las cargas de trabajo que se ejecutan en nodos de usuario único durante un evento de mantenimiento del host y ver los efectos de la política de mantenimiento del host de las VM de usuario único en las aplicaciones que se ejecutan en las VMs.

Si intentas simular un evento de mantenimiento del host en una instancia que no admite la migración en vivo, la instancia se finaliza o se reinicia, según la política de mantenimiento del host configurada.

Antes de comenzar

  • Revisa el límite de frecuencia de la API regional para SimulateMaintenanceEventRequestsPerMinutePerProjectPerRegion.
  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Limitaciones

  • Para simular de forma correcta un evento de mantenimiento en un grupo de nodos de usuario único que tiene configurada una política de mantenimiento del host para migrar dentro del grupo de nodos, debes activar el evento de mantenimiento de forma secuencial en cada nodo.
  • En el caso de un grupo de nodos de usuario único, cuando intentas simular un evento de mantenimiento del host y el grupo de nodos tiene una política de mantenimiento del host configurada para migrar dentro del grupo de nodos, ocurre lo siguiente:
    • Si la cantidad de nodos especificada es menor o igual a la cantidad total de nodos de retención reservados, la simulación de eventos de mantenimiento del host se ejecuta para todos los nodos especificados de forma simultánea.
    • Si la cantidad de nodos especificada es mayor que la cantidad total de nodos de retención reservados, la simulación falla.
  • La cantidad de simulaciones de eventos de mantenimiento que puedes iniciar por minuto por región está limitada por el límite de frecuencia de la API para la métrica simulate_maintenance_event_requests_per_region.

Simula eventos de mantenimiento del host para probar la migración en vivo

Puedes simular un evento de mantenimiento para una instancia de procesamiento con Google Cloud CLI o una solicitud a la API. Este evento simulado incluye las diferentes actividades de mantenimiento que se producen en un evento de mantenimiento normal. Esto te permite observar el proceso de extremo a extremo y probar cualquier automatización que hayas implementado.

Durante la simulación del evento de mantenimiento del host para una instancia que usa la migración en vivo, la clave de metadatos maintenance-event de la instancia pasa por los siguientes cambios:

  1. Al comienzo de la simulación, el valor de la clave de metadatos maintenance-event cambia de NONE a MIGRATE_ON_HOST_MAINTENANCE.
  2. Durante la duración del evento de simulación, el valor permanece como MIGRATE_ON_HOST_MAINTENANCE.
  3. Cuando la simulación finaliza, el valor vuelve a ser NONE.

Para consultar la clave del evento de mantenimiento, consulta Consulta la clave de metadatos del evento de mantenimiento.

gcloud

Usa el comando compute instances simulate-maintenance-event para simular un evento de mantenimiento para una instancia y probar la configuración de la política de mantenimiento del host configurada:

gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
    --zone=ZONE --with-extended-notifications=True

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia de procesamiento en la que deseas simular el evento de mantenimiento.

    Puedes especificar varios nombres de instancias separados por un solo espacio para simular los eventos de mantenimiento en más de una instancia en la misma zona. Por ejemplo, instance-1 instance-2 instance-3.

  • ZONE: Es la zona en la que se encuentra la instancia.

REST

Realiza una solicitud POST al método compute.instances.simulateMaintenanceEvent:

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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de esta solicitud.
  • INSTANCE_NAME: Es el nombre de la instancia para la que deseas simular el evento de mantenimiento.
  • ZONE: Es la zona en la que se encuentra la instancia.

Simula el mantenimiento del host para las instancias de procesamiento que finalizan

Puedes simular un evento de mantenimiento para una instancia de procesamiento con Google Cloud CLI o una solicitud a la API. Este evento simulado incluye las diferentes actividades de mantenimiento que se producen en un evento de mantenimiento normal. Esto te permite observar el proceso de extremo a extremo y probar cualquier automatización que hayas implementado.

Además, si usas el parámetro --with-extended-notifications con un tipo de máquina compatible, puedes probar el inicio manual del mantenimiento del host durante el evento simulado.

gcloud

  1. Usa el comando compute instances simulate-maintenance-event para simular un evento de mantenimiento para una instancia y probar su configuración de la política de mantenimiento del host configurada. De manera opcional, puedes incluir la marca --with-extended-notifications.

    gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
       --zone=ZONE --with-extended-notifications=True
    

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia de procesamiento en la que deseas simular el evento de mantenimiento.

      Puedes especificar varios nombres de instancias separados por un solo espacio para simular los eventos de mantenimiento en más de una instancia en la misma zona. Por ejemplo, instance-1 instance-2 instance-3.

    • ZONE: Es la zona en la que se encuentra la instancia.

  2. Opcional: Para iniciar de forma manual el evento de mantenimiento simulado, usa el comando compute instances perform-maintenance.

    gcloud compute instances perform-maintenance INSTANCE_NAME \
       --zone=ZONE
    

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia de procesamiento en la que deseas simular el evento de mantenimiento.

      Puedes especificar varios nombres de instancias separados por un solo espacio para simular los eventos de mantenimiento en más de una instancia en la misma zona. Por ejemplo, instance-1 instance-2 instance-3.

    • ZONE: Es la zona en la que se encuentran las instancias.

REST

  1. Realiza una solicitud POST al método compute.instances.simulateMaintenanceEvent. De manera opcional, puedes incluir el parámetro de consulta withExtendedNotifications.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/simulateMaintenanceEvent?withExtendedNotifications=True
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto de esta solicitud.
    • INSTANCE_NAME: Es el nombre de la instancia para la que deseas simular el evento de mantenimiento.
    • ZONE: Es la zona en la que se encuentra la instancia.
  2. Opcional: Para iniciar manualmente el evento de mantenimiento simulado, crea una solicitud POST al método compute.instances.performMaintenance.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/performMaintenance
    

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia de procesamiento en la que deseas iniciar el evento de mantenimiento.

      Puedes especificar varios nombres de instancias separados por un solo espacio para realizar eventos de mantenimiento en más de una instancia en la misma zona. Por ejemplo, instance-1 instance-2 instance-3.

    • ZONE: Es la zona en la que se encuentran las instancias.

Simula eventos de mantenimiento del host en nodos de usuario único

Puedes simular un evento de mantenimiento del host en nodos de usuario único con Google Cloud CLI o una solicitud a la API. Durante la simulación del evento de mantenimiento del host en una VM de usuario único, el valor de la clave de metadatos maintenance-event no cambia y permanece NONE durante toda la simulación.

gcloud

Ejecuta el comando sole-tenancy node-groups simulate-maintenance-event para forzar a los nodos de usuario único a activar su política de mantenimiento configurada:

 gcloud compute sole-tenancy node-groups simulate-maintenance-event NODE_GROUP \
    --nodes=NODE_NAMES \
    --zone=ZONE \
    --async

Reemplaza lo siguiente:

  • NODE_GROUP: Es el nombre del grupo de nodos en el que deseas simular el evento de mantenimiento.

  • NODE_NAMES: Son los nombres de los nodos en los que deseas simular el evento de mantenimiento. Además, mientras especificas varios nombres de nodos, usa valores separados por comas, por ejemplo, node-1,node-2,node-3.

  • ZONE: Es la zona en la que se encuentran los nodos.

REST

Realiza una solicitud POST al método compute.nodeGroups.simulateMaintenanceEvent:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/NODE_GROUP/simulateMaintenanceEvent

{
  "nodes": [
      "NODE_NAMES"
  ]
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de esta solicitud.
  • ZONE: Es la zona en la que se encuentran los nodos.
  • NODE_GROUP: Es el nombre del grupo de nodos en el que deseas simular el evento de mantenimiento.
  • NODE_NAMES: Son los nombres de los nodos en los que deseas simular el evento de mantenimiento. Encierra el nombre del nodo entre comillas dobles, por ejemplo, "node-1". Además, mientras especificas varios nombres de nodos, usa valores separados por comas, por ejemplo, "node-1","node-2","node-3".

¿Qué sigue?