Configura la política de mantenimiento del host para una instancia de procesamiento


En este documento, se explica cómo configurar la política de mantenimiento del host para una instancia de Compute Engine y determinar su comportamiento durante los eventos del host. Para obtener más información sobre las políticas de mantenimiento del host, consulta Política de mantenimiento del host.

Una política de mantenimiento del host determina cómo responde tu instancia cuando el host en el que se ejecuta la instancia requiere mantenimiento o encuentra un error. Configurar la política de mantenimiento del host para una instancia te ayuda a hacer lo siguiente:

  • Minimiza el tiempo de inactividad.

  • Evita la pérdida de datos.

Limitaciones

En el caso de las políticas de mantenimiento del host, se aplican las siguientes limitaciones:

  • Las instancias de máquinas virtuales que usan tipos de máquinas E2 solo pueden migrar en vivo durante los eventos de mantenimiento del host, a menos que sean VMs interrumpibles o VMs Spot.

  • Las siguientes instancias solo se pueden detener durante los eventos de mantenimiento del host:

    • Instancias que no admiten la migración en vivo, como las instancias Z3 con más de 18 TiB de SSD de Titanium conectadas, las instancias de Bare Metal o las VMs que tienen GPUs conectadas.

    • VMs Spot o VMs interrumpibles

  • Las VMs Spot y las VMs interrumpibles no se pueden reiniciar automáticamente después de errores de host o detenciones programadas.

Antes de comenzar

  • 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 APIs 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:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

      1. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      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.

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Roles obligatorios

Para obtener los permisos que necesitas para establecer la política de mantenimiento del host de una instancia de Compute, pídele a tu administrador que te otorgue el rol de IAM Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para establecer la política de mantenimiento del host de una instancia de procesamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para establecer la política de mantenimiento del host de una instancia de procesamiento:

  • Para crear una instancia, haz lo siguiente:
    • compute.instances.create en el proyecto
    • Para usar una imagen personalizada con el fin de crear la VM, sigue estos pasos: compute.images.useReadOnly en la imagen
    • Si deseas usar una instantánea para crear la VM, sigue estos pasos: compute.snapshots.useReadOnly en la instantánea
    • Para usar una plantilla de instancias a fin de crear la VM, haz lo siguiente: compute.instanceTemplates.useReadOnly en la plantilla de instancias
    • Para asignar una red heredada a la VM: compute.networks.use en el proyecto
    • Si deseas especificar una dirección IP estática para la VM; compute.addresses.use en el proyecto
    • Para asignar una dirección IP externa a la VM cuando se usa una red y punto heredado; compute.networks.useExternalIp en el proyecto
    • A fin de especificar una subred para la VM: compute.subnetworks.use en el proyecto o en la subred elegida
    • Para asignar una dirección IP externa a la VM cuando se usa una red de VPC, compute.subnetworks.useExternalIp en el proyecto o en la subred elegida
    • A fin de configurar los metadatos de la instancia de VM para la VM y los puntos, sigue estos pasos: compute.instances.setMetadata en el proyecto
    • A fin de configurar etiquetas para la VM y los puntos; compute.instances.setTags en la VM
    • Si deseas configurar etiquetas para la VM, haz lo siguiente: compute.instances.setLabels en la VM
    • A fin de configurar una cuenta de servicio para que la VM la usecompute.instances.setServiceAccount en la VM
    • Si deseas crear un disco nuevo para la VM: compute.disks.create en el proyecto
    • Para conectar un disco existente en modo de solo lectura o de lectura y escritura, haz lo siguiente: compute.disks.use en el disco
    • Para conectar un disco existente en modo de solo lectura y dos puntos, sigue estos pasos: compute.disks.useReadOnly en el disco
  • Para crear una plantilla de instancias: compute.instanceTemplates.create en el proyecto
  • Para actualizar la política de mantenimiento del host de una instancia, haz lo siguiente: compute.instances.setScheduling en la instancia

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

Propiedades de mantenimiento del host disponibles

Puedes personalizar el comportamiento de tu instancia de procesamiento durante el mantenimiento programado o los eventos inesperados del host. A menos que especifiques lo contrario, Compute Engine usa la configuración predeterminada cuando creas una instancia, instancias de forma masiva o una plantilla de instancias.

Puedes configurar las siguientes propiedades de mantenimiento del host:

  • Comportamiento de mantenimiento (onHostMaintenance): Qué sucede con tu instancia durante un evento de mantenimiento en su host que podría hacer que la instancia se reinicie. Puedes establecer esta propiedad en uno de los siguientes valores:

    • Migrate: Compute Engine migra en vivo automáticamente tu instancia a otro host. Esta es la configuración predeterminada para todos los tipos de instancias, excepto las VMs Spot y las VMs interrumpibles.

    • Finalizar: Compute Engine detiene tu instancia. Este es el parámetro de configuración predeterminado para las VMs Spot o las VMs interrumpibles, y es el único parámetro de configuración admitido para las instancias Z3 con más de 18 TiB de SSD de Titanium conectadas, las instancias de Bare Metal y las instancias con GPUs o TPUs conectadas.

  • Reinicio automático (automaticRestart): Indica si la instancia se reinicia si falla o si Compute Engine la detiene por una detención programada, como un evento de mantenimiento. Puedes establecer esta propiedad en uno de los siguientes valores:

    • Activado: Compute Engine reinicia la instancia automáticamente. Este es el parámetro de configuración predeterminado para todos los tipos de instancias, excepto para las VMs interrumpibles y las VMs Spot. Puedes especificar este parámetro de configuración de la siguiente manera:

      • En el panel Avanzado de la consola Google Cloud , en la lista Reinicio automático, selecciona Activado (recomendado).

      • Para Google Cloud CLI, usa la marca --restart-on-failure.

      • En REST, establece el campo automaticRestart en true.

    • Desactivado: Compute Engine no reinicia la instancia. Este es el parámetro de configuración predeterminado para las VMs Spot o las VMs interrumpibles. Puedes especificar este parámetro de configuración de la siguiente manera:

      • En la consola Google Cloud , en el panel Avanzado, en la lista Reinicio automático, selecciona Desactivado.

      • Para gcloud CLI, usa la marca --no-restart-on-failure.

      • En REST, establece el campo automaticRestart en false.

  • Tiempo de espera de recuperación de datos de SSD local (localSsdRecoveryTimeout): Este parámetro de configuración solo se aplica a las instancias que tienen discos SSD locales conectados. Determina cuánto tiempo espera Compute Engine para recuperar datos de tus discos SSD locales después de errores de host. De forma predeterminada, esta propiedad no está establecida. Puedes establecer esta propiedad en uno de los siguientes valores:

    • Sin establecer: Compute Engine usa el tiempo de espera predeterminado:

      • En el caso de las VMs Z3, 6 horas

      • Para todos los demás tipos de instancias, 1 hora

    • Un número entero del 0 al 168: Es la cantidad de horas que se debe esperar. Si configuras esta propiedad en 0, Compute Engine no recuperará los datos de SSD locales y reiniciará la instancia de inmediato.

  • Tiempo de espera por error de host (hostErrorTimeoutSeconds): Esta propiedad determina cuánto tiempo espera Compute Engine para reiniciar una instancia que no responde. Debes configurar este parámetro antes de que la instancia deje de responder. Usa un tiempo de espera lo suficientemente largo para que una instancia se recupere de la falta de respuesta. Puedes establecer esta propiedad en uno de los siguientes valores:

    • Sin establecer: Compute Engine espera hasta 330 segundos (5 minutos y 30 segundos). Este es el parámetro de configuración predeterminado para cualquier tipo de instancia.

    • Un número entero del 90 al 330: Es el tiempo de espera en segundos, en incrementos de 30 segundos.

Cómo establecer la política de mantenimiento del host para una instancia

De forma predeterminada, las instancias de procesamiento usan la configuración predeterminada para su política de mantenimiento del host. Para personalizar estos parámetros de configuración, usa uno de los siguientes métodos:

Configura la política para una instancia existente

Antes de cambiar la política de mantenimiento del host de una instancia existente, asegúrate de lo siguiente:

  • No puedes cambiar el comportamiento de mantenimiento (onHostMaintenance) de los siguientes tipos de instancias:

  • No puedes configurar las VMs Spot ni las VMs interrumpibles para que se reinicien automáticamente después de errores de host o detenciones programadas.

Para cambiar el tiempo de espera de recuperación de datos del SSD local en una instancia que tiene discos SSD locales conectados, usa gcloud CLI o la API de REST. De lo contrario, selecciona una de las siguientes opciones:

Console

  1. En la Google Cloud consola, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. En la columna Nombre, haz clic en el nombre de la instancia que deseas actualizar. Aparecerá una página con los detalles de la instancia.

  3. Haz clic en  Editar. Aparecerá una página que te permitirá editar las propiedades de la instancia.

  4. En la sección Administración, puedes realizar una o más de las siguientes acciones:

    • Para cambiar el comportamiento durante los eventos de mantenimiento, selecciona otra opción en la lista Mantenimiento en el host.

    • Para cambiar el período de espera antes de reiniciar una instancia que no responde, selecciona otra opción en la lista Tiempo de espera por error del host.

    • Para cambiar si se reiniciará la instancia o no después de errores del host o detenciones programadas, selecciona otra opción en la lista Reinicio automático.

  5. Haz clic en Guardar.

gcloud

Para cambiar la política de mantenimiento del host en una instancia existente, usa el comando gcloud compute instances set-scheduling con una o más de las siguientes marcas:

  • Para cambiar el comportamiento del mantenimiento del host, incluye la marca --maintenance-policy.

  • Para cambiar el comportamiento de reinicio automático, realiza una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye la marca --restart-on-failure.

    • Para evitar que la instancia se reinicie automáticamente, incluye la marca --no-restart-on-failure.

  • Para cambiar el tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye la marca --local-ssd-recovery-timeout.

  • Para cambiar el tiempo de espera de errores del host, incluye la marca --host-error-timeout-seconds.

Por ejemplo, para cambiar el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de errores del host o detenciones programadas, cambiar el tiempo de espera de recuperación de datos de SSD local y cambiar el tiempo de espera de error del host, ejecuta el siguiente comando:

gcloud compute instances set-scheduling INSTANCE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure \
    --zone=ZONE

Reemplaza lo siguiente:

  • INSTANCE_NAME: el nombre de tu instancia

  • ERROR_DETECTION_TIMEOUT: Es la cantidad de segundos que transcurren antes de que Compute Engine reinicie una instancia que no responde. El valor debe estar entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • MAINTENANCE_POLICY: Es el comportamiento de mantenimiento de la instancia. El valor puede ser TERMINATE o MIGRATE.

  • LOCAL_SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que se dedicarán a recuperar datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si configuras este campo como 0, significa que Compute Engine no recuperará los datos de SSD locales.

  • ZONE: Es la zona en la que existe tu instancia.

REST

Para cambiar la política de mantenimiento del host en una instancia existente, realiza una solicitud POST al método instances.setScheduling. En el cuerpo de la solicitud, incluye uno o más de los siguientes campos:

  • Para cambiar el comportamiento del mantenimiento del host, incluye el campo onHostMaintenance.

  • Para cambiar el comportamiento de reinicio automático, realiza una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye el campo automaticRestart.

    • Para evitar que la instancia se reinicie automáticamente, incluye el campo automaticRestart.

  • Para cambiar el tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye el campo localSsdRecoveryTimeout.

  • Para cambiar el tiempo de espera de errores del host, incluye el campo hostErrorTimeoutSeconds.

Por ejemplo, para cambiar el comportamiento del mantenimiento del host, reiniciar automáticamente la instancia después de errores del host o detenciones programadas, cambiar el tiempo de espera de recuperación de datos del SSD local y cambiar el tiempo de espera de error del host, realiza una solicitud de la siguiente manera:

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

{
  "automaticRestart": AUTOMATIC_RESTART,
  "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
  "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
  "onHostMaintenance": "MAINTENANCE_POLICY"
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que existe tu instancia.

  • ZONE: Es la zona en la que existe tu instancia.

  • INSTANCE_NAME: el nombre de tu instancia

  • AUTOMATIC_RESTART: Es el comportamiento de reinicio automático de la instancia si falla o si Compute Engine la detiene por una detención programada. Especifica uno de los siguientes valores:

    • Para permitir que Compute Engine reinicie automáticamente tu instancia, haz lo siguiente: true

    • Para evitar los reinicios automáticos, haz lo siguiente: false

  • ERROR_DETECTION_TIMEOUT: Es la cantidad de segundos que se espera antes de reiniciar una instancia que no responde. El valor debe estar entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que se dedicarán a recuperar datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si configuras este campo como 0, significa que Compute Engine no recuperará los datos de SSD locales.

  • MAINTENANCE_POLICY: Es el comportamiento de mantenimiento de la instancia. El valor puede ser TERMINATE o MIGRATE.

Configura la política mientras creas una instancia

Puedes establecer la política de mantenimiento del host de una instancia de procesamiento mientras la creas.

Para establecer el tiempo de espera de recuperación de datos del SSD local mientras creas una instancia que tiene discos SSD locales conectados, usa gcloud CLI o la API de REST. De lo contrario, selecciona cualquiera de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página Crear una instancia.

    Ir a Crear una instancia

  2. En el campo Nombre, ingresa un nombre para el instancia.

  3. En los campos Región y Zona, especifica en qué región y zona se creará la instancia.

  4. Especifica el tipo de máquina para la instancia.

  5. En el menú de navegación, haz clic en Opciones avanzadas.

  6. En la sección Modelo de aprovisionamiento, expande Configuración avanzada del modelo de aprovisionamiento de VM y, luego, haz una o más de las siguientes acciones:

    • Para establecer el comportamiento durante los eventos de mantenimiento, en la lista Mantenimiento en el host, selecciona una de las siguientes opciones:

      • Para migrar la instancia durante los eventos de mantenimiento del host, selecciona Migrar instancia de VM (recomendado).

      • Para detener la instancia durante los eventos de mantenimiento del host, selecciona Finalizar instancia de VM.

    • Para establecer el período de espera antes de reiniciar una instancia que no responde, en la lista Tiempo de espera por error del host, selecciona una de las siguientes opciones:

      • Para no especificar un tiempo de espera de error del host, selecciona Sin especificar (predeterminado).

      • Para especificar un tiempo de espera por error del host, selecciona una de las opciones disponibles, hasta 5 minutos y 30 segundos.

    • Para configurar si se debe reiniciar la instancia si falla o se detiene, en la lista Reinicio automático, selecciona una de las siguientes opciones:

      • Para reiniciar automáticamente la instancia después de errores del host o detenciones programadas, selecciona Activado (recomendado).

      • Para evitar que la instancia se reinicie automáticamente después de errores del host o detenciones programadas, selecciona Desactivado.

  7. Haz clic en Crear.

gcloud

Para establecer la política de mantenimiento del host de una instancia mientras la creas, usa el comando gcloud compute instances create con una o más de las siguientes marcas:

  • Para establecer el comportamiento de mantenimiento del host, incluye la marca --maintenance-policy.

  • Para establecer el comportamiento de reinicio automático, realiza una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye la marca --restart-on-failure.

    • Para evitar que la instancia se reinicie automáticamente, incluye la marca --no-restart-on-failure.

  • Para establecer un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye la marca --local-ssd-recovery-timeout.

  • Para establecer un tiempo de espera de error del host, incluye la marca --host-error-timeout-seconds.

Por ejemplo, para establecer el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de errores de host o detenciones programadas, establecer un tiempo de espera para la recuperación de datos de SSD local y establecer un tiempo de espera para errores de host, ejecuta el siguiente comando:

gcloud compute instances create INSTANCE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure \
    --zone=ZONE

Reemplaza lo siguiente:

  • INSTANCE_NAME: El nombre de la instancia.

  • ERROR_DETECTION_TIMEOUT: Es la cantidad de segundos que se espera antes de reiniciar una instancia que no responde. El valor debe estar entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que se dedicarán a recuperar datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si configuras este campo como 0, significa que Compute Engine no recuperará los datos de SSD locales.

  • MACHINE_TYPE: Es el tipo de máquina que se usará.

  • MAINTENANCE_POLICY: Es el comportamiento de mantenimiento de la instancia. El valor puede ser TERMINATE o MIGRATE. Si creas una VM Spot, una VM interrumpible o una instancia que no admite la migración en vivo, solo puedes usar TERMINATE.

  • ZONE: Es la zona en la que se creará la instancia.

REST

Para establecer la política de mantenimiento del host de una instancia mientras la creas, realiza una solicitud POST al método instances.insert. En el cuerpo de la solicitud, incluye uno o más de los siguientes campos en el campo scheduling:

  • Para establecer el comportamiento de mantenimiento del host, incluye el campo onHostMaintenance.

  • Para establecer el comportamiento de reinicio automático, realiza una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye el campo automaticRestart.

    • Para evitar que la instancia se reinicie automáticamente, incluye el campo automaticRestart.

  • Para establecer un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye el campo localSsdRecoveryTimeout.

  • Para establecer un tiempo de espera de error del host, incluye el campo hostErrorTimeoutSeconds.

Por ejemplo, para establecer el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de errores de host o detenciones programadas, establecer un tiempo de espera de recuperación de datos de SSD local y establecer un tiempo de espera de error de host, realiza una solicitud de la siguiente manera:

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

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ],
  "scheduling": {
    "automaticRestart": AUTOMATIC_RESTART,
    "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
    "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
    "onHostMaintenance": "MAINTENANCE_POLICY"
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que se creará la instancia.

  • ZONE: Es la zona en la que se creará la instancia.

  • INSTANCE_NAME: El nombre de la instancia.

  • MACHINE_TYPE: Es el tipo de máquina que se usará.

  • IMAGE_PROJECT: el proyecto de imagen que contiene la imagen; por ejemplo, debian-cloud. Para obtener más información sobre los proyectos de imágenes compatibles, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

    • una versión específica de la imagen de SO; por ejemplo, debian-12-bookworm-v20240617.

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, se usa la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.

  • AUTOMATIC_RESTART: Es el comportamiento de reinicio automático de la instancia si falla o si Compute Engine la detiene por una detención programada. Especifica uno de los siguientes valores:

    • Para permitir que Compute Engine reinicie automáticamente tu instancia, haz lo siguiente: true

    • Para evitar los reinicios automáticos, haz lo siguiente: false

  • ERROR_DETECTION_TIMEOUT: Es la cantidad de segundos que se espera antes de reiniciar una instancia que no responde. El valor debe estar entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que se dedicarán a recuperar datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si configuras este campo como 0, significa que Compute Engine no recuperará los datos de SSD locales.

  • MAINTENANCE_POLICY: Es el comportamiento de mantenimiento de la instancia. El valor puede ser TERMINATE o MIGRATE. Si creas una VM Spot o una instancia que no admite la migración en vivo, solo puedes usar TERMINATE.

Para obtener más información sobre cómo crear una instancia, consulta Crea y, luego, inicia una instancia de Compute Engine.

Establece la política mientras creas instancias de forma masiva

Para configurar la política de mantenimiento del host mientras creas instancias de forma masiva, selecciona una de las siguientes opciones:

gcloud

Para establecer la política de mantenimiento del host mientras creas instancias de forma masiva, usa el comando gcloud compute instances bulk create con una o más de las siguientes marcas:

  • Para establecer el comportamiento de mantenimiento del host, incluye la marca --maintenance-policy.

  • Para establecer el comportamiento de reinicio automático, realiza una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye la marca --restart-on-failure.

    • Para evitar que la instancia se reinicie automáticamente, incluye la marca --no-restart-on-failure.

  • Para establecer un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye la marca --local-ssd-recovery-timeout.

  • Para establecer un tiempo de espera de error del host, incluye la marca --host-error-timeout-seconds.

Por ejemplo, para establecer el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de errores de host o detenciones programadas, establecer un tiempo de espera de recuperación de datos de SSD local y establecer un tiempo de espera de error de host, ejecuta el siguiente comando. En el siguiente ejemplo, también se crean instancias en una sola zona y se especifica un patrón de nombre para las instancias:

gcloud compute instances bulk create \
    --count=COUNT \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --name-pattern=NAME_PATTERN \
    --restart-on-failure \
    --zone=ZONE

Reemplaza lo siguiente:

  • COUNT: Es la cantidad de instancias que se crearán.

  • ERROR_DETECTION_TIMEOUT: Es la cantidad de segundos que se espera antes de reiniciar una instancia que no responde. El valor debe estar entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que se dedicarán a recuperar datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si configuras este campo como 0, significa que Compute Engine no recuperará los datos de SSD locales.

  • MACHINE_TYPE: Es el tipo de máquina que se usará.

  • MAINTENANCE_POLICY: Es el comportamiento de mantenimiento de las instancias. El valor puede ser TERMINATE o MIGRATE. Si creas VMs Spot, VMs interrumpibles o instancias que no admiten la migración en vivo, solo puedes usar TERMINATE.

  • NAME_PATTERN: Es el patrón del nombre de las instancias. Para reemplazar una secuencia de números en el nombre de una instancia, usa una secuencia de caracteres hash (#). Por ejemplo, si usas instance-# para el patrón de nombre, se generan instancias con nombres que comienzan con instance-1, instance-2 y continúan hasta la cantidad de instancias especificadas por COUNT.

  • ZONE: Es la zona en la que se crearán las instancias.

REST

Para establecer la política de mantenimiento del host mientras creas instancias de forma masiva, realiza una solicitud POST al método instances.bulkInsert. En el cuerpo de la solicitud, incluye uno o más de los siguientes campos en el campo scheduling:

  • Para establecer el comportamiento de mantenimiento del host, incluye el campo onHostMaintenance.

  • Para establecer el comportamiento de reinicio automático, realiza una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye el campo automaticRestart.

    • Para evitar que la instancia se reinicie automáticamente, incluye el campo automaticRestart.

  • Para establecer un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye el campo localSsdRecoveryTimeout.

  • Para establecer un tiempo de espera de error del host, incluye el campo hostErrorTimeoutSeconds.

Por ejemplo, para establecer el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de errores de host o detenciones programadas, establecer un tiempo de espera de recuperación de datos de SSD local y establecer un tiempo de espera de error de host, realiza una solicitud de la siguiente manera. En el siguiente ejemplo, también se crean instancias en una sola zona y se especifica un patrón de nombre para las instancias:

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

{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "machineType": "MACHINE_TYPE",
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "automaticRestart": AUTOMATIC_RESTART,
      "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
      "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que se crearán las instancias.

  • ZONE: Es la zona en la que se crearán las instancias.

  • COUNT: Es la cantidad de instancias que se crearán.

  • NAME_PATTERN: Es el patrón del nombre de las instancias. Para reemplazar una secuencia de números en el nombre de una instancia, usa una secuencia de caracteres hash (#). Por ejemplo, si usas instance-# para el patrón de nombre, se generan instancias con nombres que comienzan con instance-1, instance-2 y continúan hasta la cantidad de instancias especificadas por COUNT.

  • MACHINE_TYPE: Es el tipo de máquina que se usará.

  • IMAGE_PROJECT: el proyecto de imagen que contiene la imagen; por ejemplo, debian-cloud. Para obtener más información sobre los proyectos de imágenes compatibles, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

    • una versión específica de la imagen de SO; por ejemplo, debian-12-bookworm-v20240617.

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, se usa la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.

  • AUTOMATIC_RESTART: Es el comportamiento de reinicio automático de la instancia si falla o si Compute Engine la detiene por una detención programada. Especifica uno de los siguientes valores:

    • Para permitir que Compute Engine reinicie automáticamente tu instancia, haz lo siguiente: true

    • Para evitar los reinicios automáticos, haz lo siguiente: false

  • ERROR_DETECTION_TIMEOUT: Es la cantidad de segundos que se espera antes de reiniciar una instancia que no responde. El valor debe estar entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que se dedicarán a recuperar datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si configuras este campo como 0, significa que Compute Engine no recuperará los datos de SSD locales.

  • MAINTENANCE_POLICY: Es el comportamiento de mantenimiento de las instancias. El valor puede ser TERMINATE o MIGRATE. Si creas VMs Spot, VMs interrumpibles o instancias que no admiten la migración en vivo, solo puedes usar TERMINATE.

Para obtener más información sobre cómo crear instancias de forma masiva, consulta Crea VMs de forma masiva.

Configura la política cuando crees una plantilla de instancias

Puedes establecer la política de mantenimiento del host mientras creas una plantilla de instancias. Todas las instancias de procesamiento que crees con la plantilla heredarán la política de mantenimiento del host especificada en la plantilla.

Para establecer el tiempo de espera de recuperación de datos del SSD local mientras creas una plantilla de instancias que especifica discos SSD locales, usa gcloud CLI o la API de REST. De lo contrario, selecciona cualquiera de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página Plantillas de instancias.

    Ir a Plantillas de instancia

  2. Haz clic en Crear plantilla de instancias. Aparecerá la página Crear plantilla de instancias.

  3. En el campo Nombre, ingresa un nombre para la plantilla de instancias.

  4. En la sección Ubicación, selecciona una de las siguientes opciones:

    • Para crear una plantilla de instancias regional, selecciona Regional (recomendado) y, luego, la región en la que deseas crear la plantilla.

    • Para crear una plantilla de instancias global, selecciona Global.

  5. En la sección Configuración de máquina, especifica el tipo de máquina para la plantilla de instancias.

  6. En la sección Modelo de aprovisionamiento, expande Configuración avanzada del modelo de aprovisionamiento de VM y, luego, haz una o más de las siguientes acciones:

    • Para cambiar el comportamiento durante los eventos de mantenimiento, en la lista Mantenimiento en el host, selecciona una de las siguientes opciones:

      • Para migrar la instancia durante los eventos de mantenimiento del host, selecciona Migrar instancia de VM (recomendado).

      • Para detener la instancia durante los eventos de mantenimiento del host, selecciona Finalizar instancia de VM.

    • Para cambiar el período de espera antes de reiniciar una instancia que no responde, en la lista Tiempo de espera por error del host, selecciona una de las siguientes opciones:

      • Para no especificar un tiempo de espera de error del host, selecciona Sin especificar (predeterminado).

      • Para especificar un tiempo de espera por error del host, selecciona una de las opciones disponibles, hasta 5 minutos y 30 segundos.

    • Para cambiar si se reiniciará la instancia en caso de que falle o se detenga, en la lista Reinicio automático, selecciona una de las siguientes opciones:

      • Para reiniciar automáticamente la instancia después de errores del host o detenciones programadas, selecciona Activado (recomendado).

      • Para evitar que la instancia se reinicie automáticamente después de errores del host o detenciones programadas, selecciona Desactivado.

  7. Haz clic en Crear.

gcloud

Para establecer la política de mantenimiento del host mientras creas una plantilla de instancias, usa el comando gcloud compute instance-templates create con una o más de las siguientes marcas:

  • Para establecer el comportamiento de mantenimiento del host, incluye el campo onHostMaintenance.

  • Para establecer el comportamiento de reinicio automático, realiza una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye el campo automaticRestart.

    • Para evitar que la instancia se reinicie automáticamente, incluye el campo automaticRestart.

  • Para establecer un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye el campo localSsdRecoveryTimeout.

  • Para establecer un tiempo de espera de error del host, incluye el campo hostErrorTimeoutSeconds.

Por ejemplo, para establecer el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de errores de host o detenciones programadas, establecer un tiempo de espera de recuperación de datos de SSD local y establecer un tiempo de espera de error de host, ejecuta el siguiente comando. En el siguiente ejemplo, también se crea una plantilla de instancias regional. Para crear una plantilla de instancias global, usa el mismo comando sin la marca --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --host-error-timeout-seconds=ERROR_DETECTION_TIMEOUT \
    --instance-template-region=REGION \
    --local-ssd-recovery-timeout=LOCAL_SSD_RECOVERY_TIMEOUT \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=MAINTENANCE_POLICY \
    --restart-on-failure

Reemplaza lo siguiente:

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias.

  • ERROR_DETECTION_TIMEOUT: Es la cantidad de segundos que se espera antes de reiniciar una instancia que no responde. El valor debe estar entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • REGION: Es la región en la que se creará la plantilla de instancias.

  • LOCAL_SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que se dedicarán a recuperar datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si configuras este campo como 0, significa que Compute Engine no recuperará los datos de SSD locales.

  • MACHINE_TYPE: Es el tipo de máquina que se usará.

  • MAINTENANCE_POLICY: Es el comportamiento de mantenimiento de las instancias. El valor puede ser TERMINATE o MIGRATE. Si especificas una VM Spot, una VM interrumpible o un tipo de instancia que no admite la migración en vivo en la plantilla de instancias, solo puedes usar TERMINATE.

REST

Para establecer la política de mantenimiento del host mientras creas una plantilla de instancias, realiza una solicitud POST a uno de los siguientes métodos:

En el cuerpo de la solicitud, incluye uno o más de los siguientes campos en el campo scheduling:

  • Para establecer el comportamiento de mantenimiento del host, incluye el campo onHostMaintenance.

  • Para establecer el comportamiento de reinicio automático, realiza una de las siguientes acciones:

    • Para reiniciar la instancia automáticamente, incluye el campo automaticRestart.

    • Para evitar que la instancia se reinicie automáticamente, incluye el campo automaticRestart.

  • Para establecer un tiempo de espera de recuperación de datos de SSD local si tu instancia tiene discos SSD locales conectados, incluye el campo localSsdRecoveryTimeout.

  • Para establecer un tiempo de espera de error del host, incluye el campo hostErrorTimeoutSeconds.

Por ejemplo, para establecer el comportamiento de mantenimiento del host, reiniciar automáticamente la instancia después de errores de host o detenciones programadas, establecer un tiempo de espera de recuperación de datos de SSD local y establecer un tiempo de espera de error de host, realiza una solicitud de la siguiente manera. En el siguiente ejemplo, también se crea una plantilla de instancias regional.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "scheduling": {
      "automaticRestart": AUTOMATIC_RESTART,
      "hostErrorTimeoutSeconds": ERROR_DETECTION_TIMEOUT,
      "localSsdRecoveryTimeout": LOCAL_SSD_RECOVERY_TIMEOUT,
      "onHostMaintenance": "MAINTENANCE_POLICY"
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: el ID del proyecto en el que se creará la plantilla de instancias.

  • REGION: Es la región en la que se creará la plantilla de instancias.

  • INSTANCE_TEMPLATE_NAME: el nombre de la plantilla de instancias.

  • IMAGE_PROJECT: el proyecto de imagen que contiene la imagen; por ejemplo, debian-cloud. Para obtener más información sobre los proyectos de imágenes compatibles, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

    • una versión específica de la imagen de SO; por ejemplo, debian-12-bookworm-v20240617.

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas family/debian-12, se usa la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de las familias de imágenes, consulta Prácticas recomendadas para las familias de imágenes.

  • MACHINE_TYPE: Es el tipo de máquina que se usará.

  • AUTOMATIC_RESTART: Es el comportamiento de reinicio automático de la instancia si falla o si Compute Engine la detiene por una detención programada. Especifica uno de los siguientes valores:

    • Para permitir que Compute Engine reinicie automáticamente tu instancia, haz lo siguiente: true

    • Para evitar los reinicios automáticos, haz lo siguiente: false

  • ERROR_DETECTION_TIMEOUT: Es la cantidad de segundos que se espera antes de reiniciar una instancia que no responde. El valor debe estar entre 90 (90 segundos) y 330 (330 segundos, o 5 minutos y 30 segundos). Solo se permiten incrementos de 30 segundos.

  • LOCAL_SSD_RECOVERY_TIMEOUT: Es la cantidad de horas que se dedicarán a recuperar datos de los discos SSD locales conectados. El valor debe estar entre 0 (0 horas) y 168 (168 horas o 7 días). Si configuras este campo como 0, significa que Compute Engine no recuperará los datos de SSD locales.

  • MAINTENANCE_POLICY: Es el comportamiento de mantenimiento de las instancias. El valor puede ser TERMINATE o MIGRATE. Si especificas una VM Spot, una VM interrumpible o un tipo de instancia que no admite la migración en vivo en la plantilla de instancias, solo puedes usar TERMINATE.

Para obtener más información sobre cómo crear una plantilla de instancias, consulta Crea plantillas de instancias.

Visualiza la política de mantenimiento del host de una instancia

Puedes ver la política de mantenimiento del host de una instancia consultando los detalles de la instancia.

Cuando visualizas los detalles de la instancia con gcloud CLI o la API de REST, solo puedes ver los campos localSsdRecoveryTimeout y hostErrorTimeoutSeconds si los especificaste durante la creación o actualización de la instancia.

Para ver el tiempo de espera de recuperación de datos del SSD local en una instancia que tiene discos SSD locales conectados, usa gcloud CLI o la API de REST. De lo contrario, selecciona una de las siguientes opciones:

Console

  1. En la Google Cloud consola, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. En la columna Nombre, haz clic en la instancia que deseas ver. Aparecerá una página con los detalles de la instancia.

  3. En la pestaña Detalles, en la sección Administración, en la sección Políticas de disponibilidad, puedes ver lo siguiente:

    • En el campo En mantenimiento del host, puedes ver los eventos de comportamiento de mantenimiento del host de la instancia.

    • En el campo Tiempo de espera por error del host, puedes ver la cantidad de tiempo que espera la instancia antes de reiniciarla o detenerla después de detectar que no responde. Si el valor no está configurado (), el tiempo de espera predeterminado es de 5 minutos y 30 segundos.

    • En el campo de reinicio Reinicio automático, puedes ver si la instancia se reinicia automáticamente después de fallar o si Compute Engine la detiene para una detención programada.

gcloud

Para ver la política de mantenimiento del host de una instancia, usa el comando gcloud compute instances describe con la marca --flatten establecida en scheduling:

 gcloud compute instances describe INSTANCE_NAME \
    --flatten=scheduling \
    --zone=ZONE

Reemplaza lo siguiente:

  • INSTANCE_NAME: El nombre de la instancia.

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

El resultado es similar a este:

---
scheduling:
  automaticRestart: true
  hostErrorTimeoutSeconds: 120
  localSsdRecoveryTimeout:
    nanos: 0
    seconds: '10800'
  onHostMaintenance: MIGRATE
  preemptible: false
  provisioningModel: STANDARD

REST

Para ver la política de mantenimiento del host de una instancia, realiza una solicitud GET al método instances.get. En la URL de la solicitud, incluye el parámetro de búsqueda fields y configúralo como scheduling:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?fields=scheduling

Reemplaza lo siguiente:

  • PROJECT_ID: Es el proyecto en el que existe la instancia.

  • ZONE: Es la zona en la que existe la instancia.

  • INSTANCE_NAME: El nombre de la instancia.

El resultado es similar a este:

{
  "scheduling": {
    "onHostMaintenance": "MIGRATE",
    "automaticRestart": true,
    "preemptible": false,
    "provisioningModel": "STANDARD",
    "localSsdRecoveryTimeout": {
      "seconds": "10800",
      "nanos": 0
    }
  }
}

¿Qué sigue?