Simular 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 tu 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 directo en tus aplicaciones.
  • Cómo gestionan tus aplicaciones y tareas por lotes la expropiación y el apagado cuando se usan una o varias VMs de acceso puntual.
  • Cómo gestionan tus aplicaciones el proceso de apagado y reinicio de las instancias configuradas para cancelarse y reiniciarse durante los eventos de mantenimiento en lugar de migrarse automáticamente.
  • Cómo se comportan las cargas de trabajo que se ejecutan en nodos de único cliente durante un evento de mantenimiento del host y los efectos de la política de mantenimiento del host de la VM de único cliente 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 automática, la instancia se cancelará o se reiniciará, en función de la política de mantenimiento del host configurada.

Antes de empezar

  • Consulta el límite de frecuencia de la API regional de SimulateMaintenanceEventRequestsPerMinutePerProjectPerRegion.
  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos 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. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

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

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Limitaciones

  • Para simular correctamente un evento de mantenimiento en un grupo de nodos de único propietario que tenga una política de mantenimiento del host definida como migrar en el grupo de nodos, debes activar el evento de mantenimiento de forma secuencial en cada nodo.
  • En el caso de un grupo de nodos de único cliente, 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:
    • Si el número de nodos especificado es inferior o igual al número total de nodos de retención reservados, la simulación del evento de mantenimiento del host se ejecuta en todos los nodos especificados simultáneamente.
    • Si el número de nodos especificado es mayor que el número total de nodos de retención reservados, la simulación fallará.
  • El número de simulaciones de eventos de mantenimiento que puedes iniciar por minuto y por región está limitado por el límite de frecuencia de la API de la métrica simulate_maintenance_event_requests_per_region.

Simular eventos de mantenimiento del host para probar la migración activa

Puedes simular un evento de mantenimiento de una instancia de computación mediante la CLI de Google Cloud o una solicitud de API. Este evento simulado incluye las diferentes actividades de mantenimiento que se producen en un evento de mantenimiento normal. De esta forma, puedes observar el proceso integral y probar cualquier automatización que hayas implementado.

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

  1. Al inicio de la simulación, el valor de la clave de metadatos maintenance-event cambia de NONE a MIGRATE_ON_HOST_MAINTENANCE.
  2. Durante la simulación, el valor sigue siendo MIGRATE_ON_HOST_MAINTENANCE.
  3. Cuando finalice la simulación, el valor volverá a ser NONE.

Para consultar la clave del evento de mantenimiento, consulte Consultar la clave de metadatos del evento de mantenimiento.

gcloud

Usa el comando compute instances simulate-maintenance-event para simular un evento de mantenimiento de una instancia y probar sus ajustes de política de mantenimiento del host configurados:

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

Haz los cambios siguientes:

  • INSTANCE_NAME: el nombre de la instancia de proceso en la que quieres simular el evento de mantenimiento.

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

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

REST

Crea una solicitud POST para el método compute.instances.simulateMaintenanceEvent:

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

Haz los cambios siguientes:

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

Simular el mantenimiento del host de las instancias de proceso que se cancelan

Puedes simular un evento de mantenimiento de una instancia de computación mediante la CLI de Google Cloud o una solicitud de API. Este evento simulado incluye las diferentes actividades de mantenimiento que se producen en un evento de mantenimiento normal. De esta forma, puedes observar el proceso integral 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 a iniciar manualmente el mantenimiento del host durante el evento simulado.

gcloud

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

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

    Haz los cambios siguientes:

    • INSTANCE_NAME: el nombre de la instancia de proceso en la que quieres simular el evento de mantenimiento.

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

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

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

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

    Haz los cambios siguientes:

    • INSTANCE_NAME: el nombre de la instancia de proceso en la que quieres simular el evento de mantenimiento.

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

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

REST

  1. Crea una solicitud POST para el método compute.instances.simulateMaintenanceEvent. También 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
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de proyecto de esta solicitud.
    • INSTANCE_NAME: el nombre de la instancia en la que quieres simular el evento de mantenimiento.
    • ZONE: 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
    

    Haz los cambios siguientes:

    • INSTANCE_NAME: el nombre de la instancia de cálculo en la que quieres iniciar el evento de mantenimiento.

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

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

Simular eventos de mantenimiento de host en nodos de único cliente

Puedes simular un evento de mantenimiento del host en nodos de un solo inquilino mediante la CLI de Google Cloud o una solicitud a la API. Durante la simulación del evento de mantenimiento del host en una VM de un solo inquilino, el valor de la clave de metadatos maintenance-event no cambia y sigue siendo NONE durante toda la simulación.

gcloud

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

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

Haz los cambios siguientes:

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

  • NODE_NAMES: los nombres de los nodos en los que quieras simular el evento de mantenimiento. Cuando especifique varios nombres de nodo, utilice valores separados por comas, por ejemplo, node-1,node-2,node-3.

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

REST

Crea una solicitud POST para el método compute.nodeGroups.simulateMaintenanceEvent:

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

{
  "nodes": [
      "NODE_NAMES"
  ]
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID de proyecto de esta solicitud.
  • ZONE: la zona en la que se encuentran los nodos.
  • NODE_GROUP: el nombre del grupo de nodos en el que quieres simular el evento de mantenimiento.
  • NODE_NAMES: los nombres de los nodos en los que quieras simular el evento de mantenimiento. Incluye el nombre del nodo entre comillas dobles; por ejemplo, "node-1". Además, al especificar varios nombres de nodo, utilice valores separados por comas. Por ejemplo, "node-1","node-2","node-3".

Siguientes pasos