Iniciar manualmente un evento de mantenimiento de host


En esta página se explica cómo iniciar manualmente un evento de mantenimiento del host en instancias de Compute Engine compatibles. Esta función te permite iniciar un evento de mantenimiento para controlar el momento en el que se realiza el mantenimiento de tu instancia. Esto es útil para cargas de trabajo que pueden verse afectadas por un rendimiento degradado o un tiempo de inactividad, y para las que necesitas que la ventana de mantenimiento empiece a una hora concreta.

Cuando inicias manualmente un evento de mantenimiento, el mantenimiento del host comienza inmediatamente. No puedes especificar una fecha ni una hora para que empiece el evento de mantenimiento. Si no usas esta función, el evento de mantenimiento se producirá a la hora indicada en la notificación de mantenimiento programado.

Si primero quieres probar cómo gestionarán tus aplicaciones un evento de mantenimiento, puedes simular un evento de mantenimiento.

Limitaciones

Puedes iniciar manualmente un evento de mantenimiento del host para las instancias que usen los siguientes tipos de máquina:

Antes de empezar

  • 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 .

Roles obligatorios

Para obtener los permisos que necesitas para gestionar el mantenimiento de las VMs, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de instancias de Compute (v. 1) (roles/compute.instanceAdmin.v1) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para gestionar el mantenimiento de las VMs. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para gestionar el mantenimiento de las VMs, se necesitan los siguientes permisos:

  • Para obtener información sobre una instancia de proceso, sigue estos pasos: compute.instances.get

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Iniciar manualmente un evento de mantenimiento de host

Compute Engine envía notificaciones sobre los próximos eventos de mantenimiento de varias formas. Con la información de las notificaciones, puede determinar el periodo en el que puede iniciar manualmente un evento de mantenimiento.

Consultar la información de la notificación

Puedes encontrar las notificaciones de eventos de mantenimiento de una de las siguientes formas:

Si la notificación sobre un evento de mantenimiento del host contiene canReschedule=True y maintenanceStatus=Pending, puedes iniciar el mantenimiento a la hora que elijas o esperar a que se produzca el evento de mantenimiento a la hora especificada por windowStartTime.

Si no hay ninguna notificación e intentas iniciar manualmente un evento de mantenimiento, se mostrará el siguiente mensaje:

There is no reschedulable upcoming maintenance.

Este mensaje indica que no se ha programado ningún evento de mantenimiento y que no es necesario que hagas nada.

Iniciar el evento de mantenimiento

Puedes iniciar el mantenimiento del anfitrión cuando quieras, en lugar de esperar a la hora programada. Usa la CLI de Google Cloud o REST para activar el evento de mantenimiento, que se iniciará inmediatamente.

gcloud

Para iniciar un evento de mantenimiento, usa el comando compute instances perform-maintenance. El mantenimiento del host comienza inmediatamente después de introducir el comando.

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

Haz los cambios siguientes:

  • INSTANCE_NAME: nombre de la instancia de computación.
  • ZONE: la zona en la que reside la instancia.

La respuesta es similar a la siguiente:

resourceStatus:
  upcomingMaintenance:
    canReschedule: false
    latestWindowStartTime: '2025-01-15T19:57:17Z'
    maintenanceStatus: ONGOING
    type: SCHEDULED
    windowEndTime: '2025-01-15T23:57:11Z'
    windowStartTime: '2025-01-15T19:57:16Z'

En la respuesta, canReschedule se define como false y maintenanceStatus se define como ONGOING, lo que indica que la operación de mantenimiento del host está en curso.

REST

Para iniciar un evento de mantenimiento, crea una solicitud POST con el método instances.performMaintenance.

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

Haz los cambios siguientes:

  • PROJECT_NAME: nombre del proyecto
  • ZONE: la zona en la que reside la instancia de computación
  • INSTANCE_NAME: nombre de la instancia.

La respuesta tiene este aspecto:

upcomingMaintenance:{
  "canReschedule":false
  "latestWindowStartTime": "2023-12-01T19:00:01Z"
  "maintenanceStatus":"ONGOING"
  "type":"SCHEDULED"
  "windowEndTime": "2023-12-01T22:00:00Z"
  "windowStartTime": "2023-12-01T19:00:00Z"
}

En la respuesta, canReschedule se define como false y maintenanceStatus se define como ONGOING, lo que indica que la operación de mantenimiento del host está en curso.

Siguientes pasos