Habilita el cierre elegante en una instancia de Compute Engine

En este documento, se explica cómo habilitar el cierre ordenado en una instancia de Compute Engine nueva o existente.

Cuando habilitas el cierre ordenado en una instancia de procesamiento, puedes darle a su SO invitado hasta seis horas para que se cierre de forma ordenada cuando detengas o borres la instancia de procesamiento. Esta acción ayuda a evitar la pérdida de datos o los sistemas de archivos dañados cuando tus aplicaciones necesitan más tiempo para terminar de ejecutar las tareas. Para obtener más información sobre los requisitos y las limitaciones que se aplican cuando cierras de forma ordenada una instancia de procesamiento, consulta Acerca del cierre ordenado.

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los servicios y las APIs de Cloud de Confiance by S3NS . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Selecciona la pestaña según cómo planeas usar las muestras de esta página:

    Console

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

    gcloud

    1. Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI con el siguiente comando:

      gcloud init
  • Configura una región y una zona predeterminadas.
  • REST

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

      Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Cloud de Confiance .

Roles obligatorios

Para obtener los permisos que necesitas para habilitar el cierre ordenado en una instancia de procesamiento, pídele al 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 habilitar el cierre ordenado en 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 habilitar el cierre ordenado en una instancia de procesamiento:

  • Para crear instancias de procesamiento, sigue estos pasos:
    • 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 habilitar el cierre ordenado en una instancia de procesamiento existente, haz lo siguiente: compute.instances.update en la instancia de procesamiento

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

Habilita el cierre ordenado

Para habilitar el cierre ordenado en una instancia de procesamiento, usa uno de los siguientes métodos:

Habilita el cierre ordenado en una instancia de procesamiento existente

Si habilitas el cierre ordenado en una instancia de procesamiento existente, debes reiniciarla como se describe en esta sección.

Para habilitar el cierre ordenado en una instancia de procesamiento existente, selecciona una de las siguientes opciones:

Console

  1. En la consola de Cloud de Confiance , 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 de procesamiento en la que deseas habilitar el cierre ordenado. Se abrirá la página de detalles de la instancia de procesamiento.

  3. Haz clic en Editar.

  4. En la sección Administración, haz lo siguiente:

    1. Selecciona la casilla de verificación Cerrar la VM de forma ordenada.

    2. En el campo Duración máxima que aparece, ingresa la cantidad de minutos o segundos que deseas que dure el cierre ordenado. El valor debe ser de entre un segundo y 360 minutos (seis horas).

  5. Haz clic en Guardar.

gcloud

Para habilitar el cierre ordenado en una instancia de procesamiento existente, usa el comando gcloud compute instances update con las marcas --graceful-shutdown y --graceful-shutdown-max-duration:

gcloud compute instances update INSTANCE_NAME \
    --graceful-shutdown \
    --graceful-shutdown-max-duration=MAX_DURATION \
    --zone=ZONE

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.

  • MAX_DURATION: Es la duración máxima del cierre ordenado. El valor debe tener el formato de la cantidad de horas, minutos o segundos, seguidos de h, m y s, respectivamente. Por ejemplo, especifica 1h para una hora o 20m10s para 20 minutos y 10 segundos. El valor debe ser de entre un segundo y seis horas.

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

REST

  1. Crea un archivo JSON vacío.

  2. Para ver las propiedades de una instancia de procesamiento existente, realiza una solicitud GET al método instances.get:

    GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto en el que existe la instancia de procesamiento.

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

    • INSTANCE_NAME: Es el nombre de una instancia de procesamiento existente.

  3. En el archivo JSON vacío que creaste en los pasos anteriores, haz lo siguiente:

    1. Ingresa los detalles de configuración de la instancia de procesamiento desde el resultado de la solicitud GET.

    2. En el campo scheduling, agrega el campo gracefulShutdown de la siguiente manera:

      {
        ...
        "scheduling": {
          ...
          "gracefulShutdown": {
            "enabled": true,
            "maxDuration": {
              "seconds": "MAX_DURATION"
            }
          }
        },
        ...
      }
      

      Reemplaza MAX_DURATION por la duración máxima del cierre ordenado, en segundos. El valor debe estar entre 1 (un segundo) y 21600 (21,600 segundos o seis horas).

  4. Para actualizar la instancia de procesamiento y reiniciarla, realiza una solicitud PUT al método instances.update. En la solicitud, haz lo siguiente:

    • En la URL de la solicitud, incluye el parámetro de consulta mostDisruptiveAllowedAction configurado como RESTART.

    • En el cuerpo de la solicitud, incluye las propiedades de la instancia de procesamiento del archivo JSON que creaste y actualizaste en los pasos anteriores.

    La solicitud PUT para actualizar la instancia de procesamiento es similar a la siguiente:

    PUT https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=RESTART
    
    {
      ...
      "scheduling": {
        ...
        "gracefulShutdown": {
          "enabled": true
        }
      },
      ...
    }
    

Para obtener más información sobre cómo actualizar las propiedades de una instancia de procesamiento, consulta Actualiza las propiedades de las instancias.

Habilita el cierre ordenado mientras creas una instancia de procesamiento

Para crear una instancia de procesamiento que tenga habilitado el cierre ordenado, selecciona una de las siguientes opciones:

Console

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

    Ir a Instancias de VM

  2. Haz clic en Crear instancia. Se abrirá la página Crea una instancia.

  3. En el campo Nombre, ingresa un nombre para la instancia de procesamiento.

  4. En las listas Región y Zona, ingresa la región y la zona en las que deseas crear la instancia de procesamiento.

  5. Especifica el tipo de máquina para tu instancia de procesamiento.

  6. Expande la sección Configuración avanzada del modelo de aprovisionamiento de VM y, luego, haz lo siguiente:

    1. Selecciona la casilla de verificación Cerrar la VM de forma ordenada.

    2. En el campo Duración máxima que aparece, ingresa la cantidad de minutos o segundos que deseas que dure el cierre ordenado. El valor debe ser de entre un segundo y 360 minutos (seis horas).

  7. Haz clic en Crear.

gcloud

Para crear una instancia de procesamiento que tenga habilitado el cierre ordenado, usa el comando gcloud compute instances create con la marca --graceful-shutdown:

gcloud compute instances create INSTANCE_NAME \
    --graceful-shutdown \
    --graceful-shutdown-max-duration=MAX_DURATION \
    --machine-type=MACHINE_TYPE \
    --zone=ZONE

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.

  • MAX_DURATION: Es la duración máxima del cierre ordenado. El valor debe tener el formato de la cantidad de horas, minutos o segundos, seguidos de h, m y s, respectivamente. Por ejemplo, especifica 1h para una hora o 20m10s para 20 minutos y 10 segundos. El valor debe ser de entre un segundo y seis horas.

  • MACHINE_TYPE: Es el tipo de máquina que se usará para la instancia de procesamiento.

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

REST

Para crear una instancia de procesamiento que tenga habilitado el cierre ordenado, realiza una solicitud POST al método instances.insert. En el cuerpo de la solicitud, incluye el campo gracefulShutdown:

POST https://compute.s3nsapis.fr/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": {
    "gracefulShutdown": {
      "enabled": true,
      "maxDuration": {
        "seconds": "MAX_DURATION"
      }
    }
  }
}

Reemplaza lo siguiente:

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

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

  • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.

  • MACHINE_TYPE: Es el tipo de máquina para la instancia de procesamiento.

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

  • MAX_DURATION: Es la duración máxima del cierre ordenado, en segundos. El valor debe estar entre 1 (un segundo) y 21600 (21,600 segundos o seis horas).

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

Habilita el cierre ordenado cuando crees una plantilla de instancias

Cuando creas una plantilla de instancias que tiene habilitado el cierre ordenado, el período predeterminado para el cierre ordenado es de 10 minutos. De manera opcional, puedes especificar un período personalizado de entre un segundo y seis horas. Todas las instancias de procesamiento que creas con la plantilla de instancias tienen habilitado el cierre ordenado.

Para crear una plantilla de instancias que tenga habilitado el cierre ordenado, selecciona una de las siguientes opciones:

Console

  1. En la consola de Cloud de Confiance , 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 Crea una plantilla de instancias.

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

  4. En la sección Ubicación, selecciona si deseas crear una plantilla de instancias regional o global según tu caso de uso:

    • Para reducir la dependencia entre regiones, crea una plantilla de instancias regional completando los siguientes pasos:

      1. Selecciona Regional.

      2. En el campo Región, selecciona la región en la que deseas crear tu plantilla de instancias.

    • Para usar la plantilla de instancias entre regiones, selecciona Global.

  5. En la sección Configuración de la máquina, especifica un tipo de máquina.

  6. Expande la sección Configuración avanzada del modelo de aprovisionamiento de VM y, luego, haz lo siguiente:

    1. Selecciona la casilla de verificación Cerrar la VM de forma ordenada.

    2. En el campo Duración máxima que aparece, ingresa la cantidad de minutos o segundos que deseas que dure el cierre ordenado. El valor debe ser de entre un segundo y 360 minutos (seis horas).

  7. Haz clic en Crear.

gcloud

Para crear una plantilla de instancias que tenga habilitado el cierre ordenado, usa el comando gcloud compute instance-templates create con la marca --graceful-shutdown.

Por ejemplo, para crear una plantilla de instancias regional que tenga habilitado el cierre ordenado, ejecuta el siguiente comando. Si deseas crear una plantilla de instancias global, usa el mismo comando sin la marca --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --graceful-shutdown \
    --graceful-shutdown-max-duration=MAX_DURATION
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE

Reemplaza lo siguiente:

  • INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias de procesamiento.

  • MAX_DURATION: Es la duración máxima del cierre ordenado. El valor debe tener el formato de la cantidad de horas, minutos o segundos, seguidos de h, m y s, respectivamente. Por ejemplo, especifica 1h para una hora o 20m10s para 20 minutos y 10 segundos. El valor debe ser de entre un segundo y seis horas.

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

  • MACHINE_TYPE: Es el tipo de máquina para las instancias de procesamiento que creas con la plantilla de instancias.

REST

Para crear una plantilla de instancias que tenga habilitado el cierre ordenado, realiza una solicitud POST a uno de los siguientes métodos:

Por ejemplo, para crear una plantilla de instancias regional que tenga habilitado el cierre ordenado, realiza una solicitud POST de la siguiente manera:

POST https://compute.s3nsapis.fr/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": {
      "gracefulShutdown": {
        "enabled": true,
        "maxDuration": {
          "seconds": "MAX_DURATION"
        }
      }
    }
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es 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 de procesamiento.

  • INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias de procesamiento.

  • 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. Este formato 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 para las instancias de procesamiento que creas con la plantilla de instancias.

  • MAX_DURATION: Es la duración máxima del cierre ordenado, en segundos. El valor debe estar entre 1 (un segundo) y 21600 (21,600 segundos o seis horas).

Para obtener más opciones de configuración cuando crees una plantilla de instancias, consulta Crea plantillas de instancias.

¿Qué sigue?