En este documento, se explica cómo evitar que las instancias de Compute Engine consuman reservas. Si quieres obtener información sobre las reservas, consulta Reservas para recursos zonales de Compute Engine.
Las reservas que se consumen automáticamente permiten que las instancias con propiedades que coinciden con las reservas las consuman automáticamente. Para evitar que las instancias consuman una reserva, haz una de las siguientes acciones:
Configura las instancias para que no consuman reservas, como se describe en este documento.
Crear o actualizar instancias con propiedades que no coinciden con la reserva
Puedes evitar consumir reservas cuando quieras usar tus instancias para tareas como pruebas, depuración o implementaciones aisladas.
Limitaciones
Solo puedes actualizar una instancia existente para que no consuma reservas si esta está configurada para consumir automáticamente reservas coincidentes.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Para crear reservas, haz lo siguiente:
compute.reservations.create
en el proyecto. -
Para crear instancias, 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 use
compute.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 plantillas de instancias, usa
compute.instanceTemplates.create
en el proyecto. Cómo evitar el consumo mientras se crean instancias de forma masiva
Cómo evitar el consumo mientras se crea una plantilla de instancias
Crea un archivo YAML vacío.
Para exportar las propiedades de una instancia al archivo YAML que acabas de crear, usa el comando
gcloud compute instances export
:gcloud compute instances export INSTANCE_NAME \ --destination=YAML_FILE \ --zone=ZONE
Reemplaza lo siguiente:
INSTANCE_NAME
: El nombre de la instancia.YAML_FILE
: Es la ruta de acceso al archivo YAML vacío que creaste en el paso anterior.ZONE
: Es la zona en la que existe la instancia.
En el archivo de configuración YAML, establece
consumeReservationType
comoNO_RESERVATION
:reservationAffinity: consumeReservationType: NO_RESERVATION
Para actualizar la instancia y reiniciarla, usa el comando
gcloud compute instances update-from-file
con la marca--most-disruptive-allowed-action
establecida enRESTART
:gcloud compute instances update-from-file INSTANCE_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONE
Reemplaza lo siguiente:
INSTANCE_NAME
: El nombre de la instancia.YAML_FILE
: Es la ruta de acceso al archivo YAML con los datos de configuración que modificaste en el paso anterior.ZONE
: Es la zona en la que existe la instancia.
Para ver las propiedades de una instancia existente, realiza una solicitud
GET
al métodoinstances.get
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto en el que creaste la instancia.ZONE
: Es la zona en la que existe la instancia.INSTANCE_NAME
: El nombre de la instancia.
Almacena el resultado de la solicitud
GET
en un archivo o editor de texto. Modifica el resultado copiado para cambiar el campoconsumeReservationType
aNO_RESERVATION
:{ ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
Para actualizar la instancia y reiniciarla, realiza una solicitud
PUT
al métodoinstances.update
. En la solicitud, haz lo siguiente:En la URL de la solicitud, incluye el parámetro de consulta
mostDisruptiveAllowedAction
configurado comoRESTART
.Para el cuerpo de la solicitud, usa el resultado de la solicitud
GET
que editaste en un paso anterior.
La solicitud es similar al siguiente ejemplo:
PUT https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central-1/instances/instance-01?mostDisruptiveAllowedAction=RESTART { ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
En la consola de Google Cloud, ve a la página Crea una instancia.
En el campo Nombre, ingresa un nombre para el instancia.
En las listas Región y Zona, selecciona la región y la zona en las que deseas crear la instancia.
Especifica el tipo de máquina que se usará para la instancia.
En el menú de navegación, haz clic en Opciones avanzadas.
En la sección Reservas, selecciona No usar una reserva.
Haz clic en Crear.
INSTANCE_NAME
: El nombre de la instancia.MACHINE_TYPE
: Es el tipo de máquina que se usará para la instancia.ZONE
: Es la zona en la que se creará la instancia.PROJECT_ID
: el ID del proyecto en el que deseas 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á para la instancia.IMAGE_PROJECT
: El proyecto de imagen que contiene la imagen del SO; 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 especificasfamily/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.
COUNT
: La cantidad de instancias que se crearán.MACHINE_TYPE
: Es el tipo de máquina que se usará para las instancias.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 usasinstance-#
para el patrón de nombre, se generan instancias con nombres que comienzan coninstance-1
,instance-2
y continúan hasta la cantidad de instancias especificadas porCOUNT
.ZONE
: Es la zona en la que se crearán las instancias de forma masiva.PROJECT_ID
: Es el ID del proyecto en el que se crearán las instancias de forma masiva.ZONE
: Es la zona en la que se crearán las instancias de forma masiva.COUNT
: 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 usasinstance-#
para el patrón de nombre, se generan instancias con nombres que comienzan coninstance-1
,instance-2
y continúan hasta la cantidad de instancias especificadas porCOUNT
.MACHINE_TYPE
: Es el tipo de máquina que se usará para las instancias.IMAGE_PROJECT
: El proyecto de imagen que contiene la imagen del SO; 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 especificasfamily/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.
Evita que las instancias de procesamiento de un grupo de instancias administrado (MIG) consuman reservas cuando hagas lo siguiente:
En la consola de Google Cloud, ve a la página Crea una plantilla de instancias.
En el campo Nombre, ingresa un nombre para la plantilla de instancias.
En la sección Ubicación, especifica si deseas crear una plantilla de instancias regional (predeterminada) o global.
En la sección Configuración de máquina, especifica el tipo de máquina que se usará para las instancias creadas con la plantilla.
Expande la sección Opciones avanzadas y sigue estos pasos:
Expande la sección Administración.
En la sección Reservas, selecciona No usar una reserva.
Haz clic en Crear.
INSTANCE_TEMPLATE_NAME
: el nombre de la plantilla de instancias.REGION
: Es la región en la que se creará la plantilla de instancias.MACHINE_TYPE
: El tipo de máquina que se usará para las instancias creadas con la plantilla de instancias.Para crear una plantilla de instancias global: método
instanceTemplates.insert
.Para crear una plantilla de instancias regional: método
regionInstanceTemplates.insert
.PROJECT_ID
: el ID del proyecto en el que se creará la plantilla de instancias.INSTANCE_TEMPLATE_NAME
: el nombre de la plantilla de instancias.MACHINE_TYPE
: El tipo de máquina que se usará para las instancias creadas con la plantilla de instancias.IMAGE_PROJECT
: El proyecto de imagen que contiene la imagen del SO; 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 especificasfamily/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.
Go
Para usar las muestras de Go de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
Node.js
Para usar las muestras de Node.js de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
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
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
Roles obligatorios
Para obtener los permisos que necesitas para evitar que una instancia de procesamiento consuma reservas, pídele a tu administrador que te otorgue el rol de IAM Administrador de instancias de Compute (v1) (
roles/compute.instanceAdmin.v1
) en el 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 evitar que una instancia de procesamiento consuma reservas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para evitar que una instancia de procesamiento consuma reservas:
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Evita el consumo de reservas
Para evitar que una instancia de procesamiento consuma reservas, configura su propiedad de afinidad de reserva (
reservationAffinity
) para que no consuma reservas. Esta propiedad controla si una instancia puede consumir reservas coincidentes, una reserva específica o ninguna reserva.Para evitar que una o más instancias consuman reservas, usa uno de los siguientes métodos:
Evita el consumo en una instancia existente
Puedes actualizar una instancia en ejecución para que ya no consuma reservas automáticamente. Debes reiniciar la instancia para que se apliquen los cambios, como se describe en esta sección.
Para evitar que una instancia existente consuma reservas, selecciona una de las siguientes opciones:
gcloud
REST
Para obtener más información sobre cómo actualizar una instancia, consulta Actualiza las propiedades de las instancias.
Evita el consumo mientras se crea una instancia
Para crear una instancia de procesamiento que no pueda consumir reservas, selecciona una de las siguientes opciones:
Console
gcloud
Para crear una instancia que no pueda consumir reservas, usa el comando
gcloud compute instances create
con la marca--reservation-affinity
establecida ennone
:gcloud compute instances create INSTANCE_NAME \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none \ --zone=ZONE
Reemplaza lo siguiente:
Go
Para crear una instancia que no pueda consumir reservas, usa el siguiente código de muestra:
Java
Para crear una instancia que no pueda consumir reservas, usa el siguiente código de muestra:
Node.js
Para crear una instancia que no pueda consumir reservas, usa el siguiente código de muestra:
Python
Para crear una instancia que no pueda consumir reservas, usa el siguiente código de muestra:
REST
Para crear una instancia que no pueda consumir reservas, realiza una solicitud
POST
al métodoinstances.insert
. En el cuerpo de la solicitud, incluye el campoconsumeReservationType
configurado comoNO_RESERVATION
: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" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" } }
Reemplaza lo siguiente:
Para obtener más información sobre cómo crear una instancia, consulta Crea y, luego, inicia una instancia de Compute Engine.
Evita el consumo mientras creas instancias de forma masiva
Para crear instancias de procesamiento de forma masiva que no puedan consumir reservas, selecciona una de las siguientes opciones:
gcloud
Para crear instancias de forma masiva que no puedan consumir reservas, usa el comando
gcloud compute instances bulk create
con la marca--reservation-affinity
establecida ennone
.Por ejemplo, para crear instancias de forma masiva en una sola zona y especificar un patrón de nombre, ejecuta el siguiente comando:
gcloud compute instances bulk create \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --reservation-affinity=none \ --zone=ZONE
Reemplaza lo siguiente:
REST
Para crear instancias de forma masiva que no puedan consumir reservas, realiza una solicitud
POST
al métodoinstances.bulkInsert
. En el cuerpo de la solicitud, incluye el campoconsumeReservationType
configurado comoNO_RESERVATION
.Por ejemplo, para crear instancias de forma masiva en una sola zona y especificar un patrón de nombre, realiza una solicitud de la siguiente manera:
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" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" } } }
Reemplaza lo siguiente:
Para obtener más información sobre cómo crear instancias de forma masiva, consulta Crea VMs de forma masiva.
Cómo evitar el consumo mientras se crea una plantilla de instancias
Después de crear una plantilla de instancias que configure instancias para que no consuman reservas, puedes usar la plantilla para hacer lo siguiente:
Para crear una plantilla de instancias que configure instancias para que no consuman reservas, selecciona una de las siguientes opciones:
Console
gcloud
Para crear una plantilla de instancias que configure instancias para que no consuman reservaciones, usa el comando
gcloud compute instances-templates create
con la marca--reservation-affinity
establecida comonone
.Para crear una plantilla de instancias regional que configure instancias para que no consuman reservas, 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 \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none
Reemplaza lo siguiente:
Go
Para crear una plantilla de instancias que configure instancias para que no consuman reservas, usa el siguiente ejemplo de código:
Java
Para crear una plantilla de instancias que configure instancias para que no consuman reservas, usa el siguiente ejemplo de código:
Node.js
Para crear una plantilla de instancias que configure instancias para que no consuman reservas, usa el siguiente código de muestra:
Python
Para crear una plantilla de instancias que configure instancias para que no consuman reservas, usa la siguiente muestra de código:
REST
Para crear una plantilla de instancias que configure instancias para que no consuman reservaciones, realiza una solicitud
POST
a uno de los siguientes métodos:En el cuerpo de la solicitud, incluye el campo
consumeReservationType
y configúralo comoNO_RESERVATION
.Por ejemplo, para crear una plantilla de instancias regional y especificar que no se consuman las reservas, realiza una solicitud de la siguiente manera:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/InstanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" } } }
Reemplaza lo siguiente:
Para obtener más información sobre cómo crear plantillas de instancias, consulta Crea plantillas de instancias.
¿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: 2025-03-04 (UTC)
-