En este documento, se describe cómo finalizar de forma automática las máquinas virtuales (VMs) en un grupo de instancias administrado (MIG) mediante la especificación de un límite de tiempo para las VMs. También se describe cómo funciona el límite de tiempo para las VMs en un MIG.
Puedes optimizar las cargas de trabajo temporales si especificas un límite de tiempo para las VMs en un MIG. Cuando una VM alcanza su límite de tiempo, el MIG la finaliza (borra) automáticamente. Limitar el tiempo de ejecución de las VMs en un MIG con un límite de tiempo ayuda a minimizar los costos y liberar la cuota.
Para obtener información sobre cómo especificar un límite de tiempo para una VM independiente, consulta Limita el tiempo de ejecución de una VM. Si quieres que un MIG agregue o borre VMs de forma automática en función de tus cargas de trabajo, consulta Aplica el ajuste de escala automático en grupos de instancias.
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 API 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Límite de tiempo como duración de la ejecución
- Límite de tiempo como hora de finalización
Crea una plantilla de instancias con una duración de ejecución para las VMs o con un tiempo de finalización para las VMs.
Usa la plantilla de instancias para crear un MIG o actualizar un MIG existente.
Debes cumplir con las restricciones para limitar el tiempo de ejecución de las VMs independientes.
Cuando creas una plantilla de instancias para especificar un límite de tiempo para las VMs en un MIG, se aplican las siguientes limitaciones:
- No puedes establecer la acción de finalización en
STOP
. Los MIGs solo admitenDELETE
. - No puedes usar VMs Spot.
- No puedes establecer la acción de finalización en
No puedes crear una solicitud de cambio de tamaño en un MIG que use una plantilla de instancias que limite el tiempo de ejecución de la VM.
No puedes limitar el tiempo de ejecución de las VMs en un MIG regional con la forma de distribución objetivo
EVEN
y la redistribución proactiva de instancias habilitadas.En la consola de Google Cloud, ve a la página Plantillas de instancia.
Haz clic en Crear plantilla de instancias.
Selecciona la ubicación de la siguiente manera:
- Si deseas usar la plantilla de instancias entre regiones, elige Global.
- Si deseas reducir la dependencia entre regiones, elige Regional.
Si eliges regional, selecciona la región en la que deseas crear tu plantilla de instancias.
En la sección Políticas de disponibilidad, expande Configuración avanzada del modelo de aprovisionamiento de VM.
Selecciona la casilla de verificación Establecer un límite de tiempo para la VM.
En el campo Tipo de límite de tiempo, selecciona Por horas (predeterminado) para especificar el límite de tiempo como una duración. En el siguiente campo, ingresa la duración en horas.
En la lista Finalización de VM, selecciona Borrar.
En los siguientes campos, acepta los valores predeterminados o modifícalos según sea necesario.
Haz clic en Crear.
INSTANCE_TEMPLATE_NAME
: el nombre de la plantilla de instancias.DURATION
: la duración de la que deseas que se ejecuten las VMs. El MIG borra automáticamente la VM después de la duración especificada.Formatea la duración en forma de la cantidad de días, horas, minutos y segundos seguidos de
d
,h
,m
ys
, respectivamente. Por ejemplo, especifica30m
para una duración de 30 minutos o especifica1d2h3m4s
para una duración de 1 día, 2 horas, 3 minutos y 4 segundos. La duración mínima es de 30 segundos (30s
) y la máxima es de 120 días (120d
).PROJECT_ID
: Es el ID del proyecto en el que deseas crear la plantilla de instancias.INSTANCE_TEMPLATE_NAME
: el nombre de la plantilla de instancias.MACHINE_TYPE
: Es el tipo de máquina predefinido o personalizado de las VMs del grupo.IMAGE_PROJECT
: el proyecto de imagen que contiene la imagen; por ejemplo,debian-cloud
.IMAGE
oIMAGE_FAMILY
: especifica una de las siguientes opciones:IMAGE
: una versión específica de la imagen de SO; por ejemplo,debian-10-buster-v20200309
.IMAGE_FAMILY
: Es una familia de imágenes. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificasfamily/debian-10
, se usa la versión más reciente de la familia de imágenes de Debian 10.
DURATION
: la duración de la que deseas que se ejecuten las VMs. El MIG borra automáticamente la VM después de la duración especificada.Formatea la duración en forma de la cantidad de días, horas, minutos y segundos seguidos de
d
,h
,m
ys
, respectivamente. Por ejemplo, especifica30m
para una duración de 30 minutos o especifica1d2h3m4s
para una duración de 1 día, 2 horas, 3 minutos y 4 segundos. La duración mínima es de 30 segundos (30s
) y la máxima es de 120 días (120d
).En la consola de Google Cloud, ve a la página Plantillas de instancia.
Haz clic en Crear plantilla de instancias.
Selecciona la ubicación de la siguiente manera:
- Si deseas usar la plantilla de instancias entre regiones, elige Global.
- Si deseas reducir la dependencia entre regiones, elige Regional.
Si eliges regional, selecciona la región en la que deseas crear tu plantilla de instancias.
En la sección Políticas de disponibilidad, expande Configuración avanzada del modelo de aprovisionamiento de VM.
En el campo Tipo de límite de tiempo, selecciona Por fecha para especificar el límite de tiempo como una hora y una fecha. En el siguiente campo, haz clic en
Seleccionar fecha y hora y selecciona la fecha, hora y zona horaria para la finalización automática.En la lista Finalización de VM, selecciona Borrar.
En los siguientes campos, acepta los valores predeterminados o modifícalos según sea necesario.
Haz clic en Crear.
INSTANCE_TEMPLATE_NAME
: el nombre de la plantilla de instancias.TIME
: Es la hora en la que deseas que se finalice esta VM de forma automática. El tiempo que especifiques debe ser al menos 30 segundos en el futuro y 120 días como máximo. Dale formato a la hora como una marca de tiempo RFC 3339:YYYY-MM-DDTHH:MM:SSOFFSET
Reemplaza lo siguiente:
YYYY-MM-DD
: una fecha con formato de un año de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos, separado del mes por guiones.HH:MM:SS
: una hora con formato de hora de 2 dígitos con el formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntosOFFSET
: la zona horaria con formato como una compensación del horario universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), que es 8 horas antes del UTC, especifica-08:00
. Como alternativa, para no usar compensación (UTC+0), especificaZ
.
PROJECT_ID
: Es el ID del proyecto en el que deseas crear la plantilla de instancias.INSTANCE_TEMPLATE_NAME
: el nombre de la plantilla de instancias.MACHINE_TYPE
: Es el tipo de máquina predefinido o personalizado de las VMs del grupo.IMAGE_PROJECT
: el proyecto de imagen que contiene la imagen; por ejemplo,debian-cloud
.IMAGE
oIMAGE_FAMILY
: especifica una de las siguientes opciones:IMAGE
: una versión específica de la imagen de SO; por ejemplo,debian-10-buster-v20200309
.IMAGE_FAMILY
: Es una familia de imágenes. Esto especifica la imagen de SO no obsoleta más reciente. Por ejemplo, si especificasfamily/debian-10
, se usa la versión más reciente de la familia de imágenes de Debian 10.
TIME
: Es la hora en la que deseas que se finalice esta VM de forma automática. El tiempo que especifiques debe ser al menos 30 segundos en el futuro y 120 días como máximo. Dale formato a la hora como una marca de tiempo RFC 3339:YYYY-MM-DDTHH:MM:SSOFFSET
Reemplaza lo siguiente:
YYYY-MM-DD
: una fecha con formato de un año de 4 dígitos, un mes de 2 dígitos y un día de 2 dígitos, separado del mes por guiones.HH:MM:SS
: una hora con formato de hora de 2 dígitos con el formato de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos separados por dos puntosOFFSET
: la zona horaria con formato como una compensación del horario universal coordinado (UTC). Por ejemplo, para usar la hora estándar del Pacífico (PST), que es 8 horas antes del UTC, especifica-08:00
. Como alternativa, para no usar compensación (UTC+0), especificaZ
.
Límite de tiempo como duración de la ejecución (
maxRunDuration
):terminationTimestamp
de una VM = Hora de creación o inicio más reciente de la VM +maxRunDuration
Cuando especificas una duración, la marca de tiempo de finalización se establece en relación con la hora de creación o inicio más reciente de la VM. Si se vuelve a crear, reiniciar, reanudar o reemplazar la VM, se vuelve a calcular la marca de tiempo de finalización. La marca de tiempo de finalización puede variar entre las VMs de un MIG según la última vez que se creó o inició cada VM. Por ejemplo, si se repara una VM, se vuelve a calcular la marca de tiempo de finalización de la VM agregando la duración al momento en que se volvió a crear la VM durante la reparación.
Límite de tiempo como hora de finalización (
terminationTime
):terminationTimestamp
de una VM =terminationTime
Cuando especificas una hora, la marca de tiempo de rescisión se establece en esa hora, siempre que sea una hora futura. Si pasó el tiempo de finalización, cualquier acción de MIG que intente crear, reiniciar o reemplazar una VM fallará con un error. Para resolver este error, debes crear una plantilla de instancias nueva con una hora de finalización en el futuro y aplicar esa plantilla al MIG. Si deseas usar las propiedades de la plantilla existente en la nueva, entonces crea una plantilla de instancias basada en la plantilla existente.
- Obtén información sobre las situaciones básicas para crear MIG.
- Obtén información para aplicar una plantilla de instancias nueva a un MIG existente.
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Limita el tiempo de ejecución de las VMs en un MIG
Puedes limitar el tiempo de ejecución de las VMs en un MIG si especificas un límite de tiempo en la plantilla de instancias que se usa para el MIG. Cuando el MIG crea VMs según la plantilla, se aplica el límite de tiempo a cada VM.
Puedes especificar uno de los siguientes dos tipos de límites de tiempo:
Para especificar un límite de tiempo para las VMs en un MIG, sigue estos pasos:
Limitaciones
Crea una plantilla de instancias con una duración de ejecución para las VMs
Para finalizar de forma automática las VMs de un MIG después de que se ejecutan durante un período determinado, establece una duración máxima de ejecución (
maxRunDuration
) en la plantilla de instancias.Console
gcloud
Usa el comando
instance-templates create
. Para borrar automáticamente las VMs después de un período específico, incluye la marca--max-run-duration
y establece la marca--instance-termination-action
enDELETE
de la siguiente manera:gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --max-run-duration=DURATION \ --instance-termination-action=DELETE
Reemplaza lo siguiente:
Terraform
Para crear una plantilla de instancias con Terraform, usa el recurso
google_compute_instance_template
. Para crear una plantilla de instancias que borre automáticamente las VMs después de un período específico, debes incluir el argumentomax_run_duration
y establecer el argumentoinstance_termination_action
enDELETE
.Para obtener más información, consulta la documentación de Terraform para el recurso
google_compute_instance_template
.REST
Usa el método
instanceTemplates.insert
. Para borrar automáticamente las VMs después de un período específico, incluye el campomaxRunDuration
y establece el campoinstanceTerminationAction
enDELETE
de la siguiente manera:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ] "scheduling": { "maxRunDuration": { "seconds": DURATION }, "instanceTerminationAction": "DELETE" } } }
Reemplaza lo siguiente:
Crea una plantilla de instancias con un tiempo de cancelación para las VMs
Para finalizar de forma automática las VMs de un MIG en un momento específico, establece una hora de finalización (
terminationTime
) en la plantilla de instancias. Puedes establecer una fecha y una hora en las que deseas que un MIG finalice las VMs.Console
gcloud
Usa el comando
instance-templates create
. Para borrar automáticamente las VMs en un momento específico, incluye la marca--termination-time
y establece la marca--instance-termination-action
enDELETE
de la siguiente manera:gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --termination-time=TIME \ --instance-termination-action=DELETE
Reemplaza lo siguiente:
REST
Usa el método
instanceTemplates.insert
. Para borrar automáticamente las VMs en un momento específico, incluye el campoterminationTime
y establece el campoinstanceTerminationAction
enDELETE
de la siguiente manera:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ] "scheduling": { "terminationTime": TIME, "instanceTerminationAction": "DELETE" } } }
Reemplaza lo siguiente:
Cómo funciona el límite de tiempo para las VMs en un MIG
Cuando especificas un límite de tiempo para las VMs en un MIG, la hora a la que un MIG finalizará una VM se establece automáticamente en el campo de marca de tiempo de finalización (
terminationTimestamp
) de la VM.Según el tipo de límite de tiempo que especifiques, la marca de tiempo de finalización de una VM se establece de la siguiente manera:
Durante la actualización de una VM, la marca de tiempo de finalización no cambia. Por ejemplo, si configuras el nivel de interrupción para las actualizaciones en
REFRESH
, la marca de tiempo de finalización se retiene cada vez que el MIG actualiza la VM.Cuando suspendes o detienes una VM en un MIG, la marca de tiempo de finalización se borra automáticamente, independientemente del tipo de límite de tiempo. Cuando reanudas o inicias una VM, la marca de tiempo de terminación se vuelve a establecer según el tipo de límite de tiempo, como se explicó anteriormente en esta sección.
Cómo funciona el ajuste de escala automático cuando se establece un límite de tiempo
El ajuste de escala automático permite que tu MIG agregue o quite VMs de forma automática en función de los aumentos o disminuciones en la carga. Cuando un MIG borra las VMs que alcanzaron sus marcas de tiempo de finalización, el MIG crea VMs nuevas para mantener el tamaño recomendado por el escalador automático. Las VMs nuevas se ejecutan durante el límite de tiempo especificado. Si la recomendación del escalador automático es reducir la cantidad de VMs, el MIG borra las VMs incluso antes de que alcancen sus límites de tiempo.
Si configuraste programaciones de escalamiento, las VMs se ejecutan solo hasta el final de una programación o hasta que una VM alcanza su marca de tiempo de finalización, lo que ocurra primero.
¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-12-22 (UTC)
-