Supervisa y planifica un evento de mantenimiento del host


El mantenimiento en todas las instancias de máquina virtual (VM) se determina mediante la política de mantenimiento del host que seleccionas cuando creas las VMs. Algunas VMs ofrecen la opción adicional de ver el programa de mantenimiento de la VM con anticipación.

En esta página, se explica cómo supervisar y planificar un evento de mantenimiento del host en las VMs de Compute Engine. Para ver el programa de mantenimiento de una VM, esta debe ejecutar un tipo de máquina de una de las siguientes familias de máquinas:

  • VMs C3 de uso general
  • VMs C3D de uso general
  • VMs Z3 optimizadas para almacenamiento
  • VMs M1, M2, M3 con optimización de memoria

Antes de comenzar

  • Configura la autenticación si aún no lo hiciste. 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 un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    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.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Funciones obligatorias

Para obtener los permisos que necesitas para crear VMs y administrar el mantenimiento de VMs, pídele a tu administrador que te otorgue el Administrador de instancias de Compute (v1) . (roles/compute.instanceAdmin.v1) Rol de IAM en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Este rol predefinido contiene los permisos necesarios para crear VMs y administrar el mantenimiento de las VMs. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear VMs y administrar el mantenimiento de las VMs:

  • Para obtener información sobre una VM, haz lo siguiente: compute.instances.get
  • Para crear una VM: compute.instances.create

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

Supervisa las notificaciones de mantenimiento

Google envía notificaciones sobre el próximo mantenimiento de VM a través de varios métodos. Puedes encontrar tus notificaciones si consultas las VMs, el servidor de metadatos o Cloud Logging. Cuando se abre el período de mantenimiento programado, Google Cloud realiza el mantenimiento de la VM de forma automática. Si supervisas los períodos de mantenimiento programados de la VM, puedes preparar de forma proactiva las cargas de trabajo para manejar el próximo mantenimiento con interrupciones mínimas.

Las VMs con notificaciones de eventos de mantenimiento tienen las siguientes características:

  • Menos eventos de mantenimiento: en general, las VMs con intervalos de mantenimiento recurrentes deberían ver menos eventos de mantenimiento.
  • Notificación de mantenimiento más larga: recibe notificaciones sobre eventos de mantenimiento planificados con mucha anticipación para fines de planificación.
  • Supervisión y planificación: usa Cloud Logging para realizar un seguimiento del programa de mantenimiento. Usa incidentes y alertas para mantenerte informado.
  • Control de mantenimiento a pedido: inicia el mantenimiento durante el período de notificación para actualizar las VMs cuando se ajusten a tu programa.

Verifica las VMs para ver si hay una notificación de evento de mantenimiento

Usa Google Cloud CLI, el método REST o el servidor de metadatos para ver si hay un evento de mantenimiento de VM próximo.

gcloud

Para ver el próximo período de mantenimiento de una VM, usa el comando gcloud compute instances describe. Debes incluir la --zone=[ZONE_NAME].

gcloud compute instances describe VM_NAME \
  --zone=ZONE

Reemplaza lo siguiente:

  • VM_NAME: El nombre de la VM.
  • ZONE: La zona en la que reside la VM.

La respuesta es similar a la que se muestra a continuación:

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

En esta respuesta, canReschedule se configura como True y maintenanceStatus como PENDING. El mantenimiento está programado para la fecha y hora que se muestran. Esta configuración indica que puedes activar este evento de forma manual con anticipación.

REST

Para ver si hay un próximo mantenimiento para una VM, ejecuta el comando instances.get:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME

Reemplaza lo siguiente:

  • PROJECT_NAME: El nombre del proyecto.
  • ZONE: La zona en la que reside la VM.
  • VM_NAME: El nombre de la VM.

La respuesta es similar a la que se muestra a continuación:

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

En esta respuesta, canReschedule se configura como TRUE y maintenanceStatus como PENDING. El mantenimiento está programado para la fecha y hora que se muestran.

servidor de metadatos

Desde el SO invitado, consulta el servidor de metadatos para ver el próximo evento de mantenimiento.

$ curl http://metada.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"

Revisa Cloud Logging para ver si hay una notificación de evento de mantenimiento

Google envía una notificación a Cloud Logging antes del mantenimiento de la VM. Cloud Logging genera un evento del sistema en el Explorador de registros. El mantenimiento programado de la VM aparece en Cloud Logging como: compute.instances.upcomingMaintenance.

Según la configuración de tu VM, Cloud Logging muestra el evento de la siguiente manera:

  • En las VMs configuradas para usar la migración en vivo para el mantenimiento, el evento se muestra con el nombre del método: compute.instances.migrateOnHostMaintenance.
  • En las VMs configuradas para usar la finalización y el reinicio automático para el mantenimiento, el evento se muestra con el nombre del método: compute.instances.terminateOnHostMaintenance.

Si la VM está configurada para usar la migración en vivo, aparecerá compute.instances.upcomingMaintenance después de que se complete el mantenimiento, lo que indica que se borró la notificación.

Puedes beneficiarte de la configuración de alertas para recibir notificaciones de mantenimiento. Para obtener más información, lee Configura alertas basadas en registros y Crea y administra canales de notificaciones.

Definiciones del estado de mantenimiento

Las siguientes definiciones de estado explican las respuestas a una consulta de mantenimiento de las VMs. Proporcionan información relacionada con el mantenimiento de las VMs. Google Cloud CLI, REST y el servidor de metadatos usan estas mismas respuestas:

  • windowStartTime: el inicio del período en el que se realiza el mantenimiento
  • windowEndTime: el final del período en el que se produce el mantenimiento
  • latestWindowStartTime: la primera hora a la que se puede mover el período
  • maintenanceType: el tipo de mantenimiento que se realizará
    • NONE: no hay mantenimiento programado para esta VM
    • SCHEDULED: el mantenimiento recibirá un aviso con 7 días de anticipación
    • UNSCHEDULED: el mantenimiento representa las actualizaciones críticas para las que se proporciona mucho menos aviso
  • canReschedule: Si el mantenimiento se puede activar durante el período de notificación de esta VM
    • TRUE: El mantenimiento activado por el cliente se puede realizar durante el período de notificación
    • FALSE: No se puede realizar el mantenimiento activado por el cliente en esta VM. Esto suele ocurrir durante el período en el que la VM se encuentra en mantenimiento
  • maintenanceStatus: el estado de la operación de mantenimiento actual
    • ONGOING: la operación de mantenimiento está en curso
    • PENDING: la operación de mantenimiento está programada, pero aún no se inició

Comportamientos del estado de mantenimiento

Mientras administras el programa de mantenimiento, verifica el estado de canReschedule= y maintenanceStatus=. Estas combinaciones de respuesta describen el comportamiento esperado de las características y muestran una de las siguientes combinaciones de estado:

  • Si es canReschedule=Yes y maintenanceStatus=Pending, puedes activar el mantenimiento en la VM.
  • Si canReschedule=No y maintenanceStatus=Ongoing, el mantenimiento ya está en curso.
  • Si canReschedule=No y maintenanceStatus=Pending no son compatibles con el mantenimiento activado de forma manual.

¿Qué sigue?