Este documento explica cómo evitar que las instancias de Compute Engine consuman reservas. Para obtener más información sobre las reservas, consulta Reservas de recursos zonales de Compute Engine .
Las reservas consumidas automáticamente permiten que las instancias con propiedades que coincidan con las reservas las consuman automáticamente. Para evitar que las instancias consuman una reserva, realice una de las siguientes acciones:
Configure instancias para que no consuman reservas, como se describe en este documento.
Cree o actualice instancias con propiedades que no coincidan con la reserva.
Puede evitar consumir reservas cuando desee utilizar sus instancias para tareas como pruebas, depuración o implementaciones aisladas.
Limitaciones
Solo puede actualizar una instancia existente para que no consuma reservas si la instancia está configurada para consumir automáticamente reservas coincidentes.
Antes de comenzar
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. 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
-
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.
- Set a default region and zone.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Para crear reservas:
compute.reservations.create
en el proyecto. - Para crear instancias:
-
compute.instances.create
en el proyecto. - Para usar una imagen personalizada para crear la VM:
compute.images.useReadOnly
en la imagen - Para usar una instantánea para crear la VM:
compute.snapshots.useReadOnly
en la instantánea - Para usar una plantilla de instancia para crear la VM:
compute.instanceTemplates.useReadOnly
en la plantilla de instancia - Para asignar una red heredada a la VM:
compute.networks.use
en el proyecto - Para 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 heredada:
compute.networks.useExternalIp
en el proyecto - Para 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 VPC:
compute.subnetworks.useExternalIp
en el proyecto o en la subred elegida - Para configurar metadatos de instancia de VM para la VM:
compute.instances.setMetadata
en el proyecto - Para configurar etiquetas para la VM:
compute.instances.setTags
en la VM - Para configurar etiquetas para la VM:
compute.instances.setLabels
en la VM - Para configurar una cuenta de servicio para que la use la VM:
compute.instances.setServiceAccount
en la VM - Para crear un nuevo disco para la VM:
compute.disks.create
en el proyecto - Para conectar un disco existente en modo de solo lectura o lectura-escritura:
compute.disks.use
en el disco - Para conectar un disco existente en modo de solo lectura:
compute.disks.useReadOnly
en el disco
-
- Para crear plantillas de instancias:
compute.instanceTemplates.create
en el proyecto. Cree un archivo YAML vacío.
Para exportar las propiedades de una instancia al archivo YAML que acaba de crear, use el comando
gcloud compute instances export
:gcloud compute instances export INSTANCE_NAME \ --destination=YAML_FILE \ --zone=ZONE
Reemplace lo siguiente:
INSTANCE_NAME
: el nombre de la instancia.YAML_FILE
: la ruta al archivo YAML vacío que creó en el paso anterior.ZONE
: la zona donde existe la instancia.
En el archivo de configuración YAML, establezca
consumeReservationType
enNO_RESERVATION
:reservationAffinity: consumeReservationType: NO_RESERVATION
Para actualizar la instancia y reiniciarla, usa el comando
gcloud compute instances update-from-file
con el indicador--most-disruptive-allowed-action
configurado enRESTART
:gcloud compute instances update-from-file INSTANCE_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONE
Reemplace lo siguiente:
INSTANCE_NAME
: el nombre de la instancia.YAML_FILE
: la ruta al archivo YAML con los datos de configuración que modificaste en el paso anterior.ZONE
: la zona donde existe la instancia.
Para ver las propiedades de una instancia existente, realice una solicitud
GET
al métodoinstances.get
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Reemplace lo siguiente:
PROJECT_ID
: el ID del proyecto donde creaste la instancia.ZONE
: la zona donde existe la instancia.INSTANCE_NAME
: el nombre de la instancia.
Almacene el resultado de la solicitud
GET
en un archivo o editor de texto. Modifique la salida copiada para cambiar el campoconsumeReservationType
aNO_RESERVATION
:{ ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
Para actualizar la instancia y reiniciarla, realice una solicitud
PUT
al métodoinstances.update
. En la solicitud, haga lo siguiente:En la URL de solicitud, incluya el parámetro de consulta
mostDisruptiveAllowedAction
establecido enRESTART
.Para el cuerpo de la solicitud, utilice el resultado de la solicitud
GET
que editó 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, vaya a la página Crear una instancia .
En el campo Nombre , ingrese un nombre para la instancia.
En las listas Región y Zona , seleccione la región y la zona en las que crear la instancia.
Especifique el tipo de máquina que se utilizará para la instancia.
En el menú de navegación, haga clic en Avanzado .
En la sección Reservas , seleccione No utilizar una reserva .
Haga clic en Crear .
INSTANCE_NAME
: el nombre de la instancia.MACHINE_TYPE
: el tipo de máquina que se utilizará para la instancia.ZONE
: la zona en la que crear la instancia.PROJECT_ID
: el ID del proyecto donde desea crear la instancia.ZONE
: la zona en la que crear la instancia.INSTANCE_NAME
: el nombre de la instancia.MACHINE_TYPE
: el tipo de máquina que se utilizará para la instancia.IMAGE_PROJECT
: el proyecto de imagen que contiene la imagen del sistema operativo; por ejemplo,debian-cloud
. Para obtener más información sobre los proyectos de imágenes admitidos, consulte Imágenes públicas .IMAGE
: especifique uno de los siguientes:Una versión específica de la imagen del sistema operativo; por ejemplo,
debian-12-bookworm-v20240617
.Una familia de imágenes , que debe tener el formato
family/ IMAGE_FAMILY
. Esto especifica la imagen del sistema operativo más reciente y no obsoleta. Por ejemplo, si especificafamily/debian-12
, se utiliza la última versión de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .
COUNT
: el número de instancias a crear.MACHINE_TYPE
: el tipo de máquina que se utilizará para las instancias.NAME_PATTERN
: el patrón de nombre de las instancias. Para reemplazar una secuencia de números en el nombre de una instancia, utilice una secuencia de caracteres almohadilla (#
). Por ejemplo, el uso deinstance-#
para el patrón de nombre genera instancias con nombres que comienzan coninstance-1
,instance-2
y continúan hasta el número de instancias especificado porCOUNT
.ZONE
: la zona en la que crear instancias de forma masiva.PROJECT_ID
: el ID del proyecto en el que crear instancias de forma masiva.ZONE
: la zona en la que crear instancias de forma masiva.COUNT
: el número de instancias a crear.NAME_PATTERN
: el patrón de nombre de las instancias. Para reemplazar una secuencia de números en el nombre de una instancia, utilice una secuencia de caracteres almohadilla (#
). Por ejemplo, el uso deinstance-#
para el patrón de nombre genera instancias con nombres que comienzan coninstance-1
,instance-2
y continúan hasta el número de instancias especificado porCOUNT
.MACHINE_TYPE
: el tipo de máquina que se utilizará para las instancias.IMAGE_PROJECT
: el proyecto de imagen que contiene la imagen del sistema operativo; por ejemplo,debian-cloud
. Para obtener más información sobre los proyectos de imágenes admitidos, consulte Imágenes públicas .IMAGE
: especifique uno de los siguientes:Una versión específica de la imagen del sistema operativo; por ejemplo,
debian-12-bookworm-v20240617
.Una familia de imágenes , que debe tener el formato
family/ IMAGE_FAMILY
. Esto especifica la imagen del sistema operativo más reciente y no obsoleta. Por ejemplo, si especificafamily/debian-12
, se utiliza la última versión de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de familias de imágenes .
Evite que las instancias informáticas en un grupo de instancias administrado (MIG) consuman reservas cuando hace lo siguiente:
En la consola de Google Cloud, vaya a la página Crear una plantilla de instancia .
En el campo Nombre , ingrese un nombre para la plantilla de instancia.
En la sección Ubicación , especifique si desea crear una plantilla de instancia regional (predeterminada) o global.
En la sección Configuración de la máquina , especifique el tipo de máquina que se usará para las instancias creadas usando la plantilla.
Expanda la sección Opciones avanzadas y luego haga lo siguiente:
Expanda la sección Gestión .
En la sección Reservas , seleccione No utilizar una reserva .
Haga clic en Crear .
INSTANCE_TEMPLATE_NAME
: el nombre de la plantilla de instancia.REGION
: la región en la que se creará la plantilla de instancia.MACHINE_TYPE
: el tipo de máquina que se utilizará para las instancias creadas utilizando la plantilla de instancia.Para crear una plantilla de instancia global:
instanceTemplates.insert
.Para crear una plantilla de instancia regional: método
regionInstanceTemplates.insert
.PROJECT_ID
: el ID del proyecto en el que crear la plantilla de instancia.INSTANCE_TEMPLATE_NAME
: el nombre de la plantilla de instancia.MACHINE_TYPE
: el tipo de máquina que se utilizará para las instancias creadas utilizando la plantilla de instancia.IMAGE_PROJECT
: el proyecto de imagen que contiene la imagen del sistema operativo; por ejemplo,debian-cloud
. Para obtener más información sobre los proyectos de imágenes admitidos, consulte Imágenes públicas .IMAGE
: especifique uno de los siguientes:Una versión específica de la imagen del sistema operativo; por ejemplo,
debian-12-bookworm-v20240617
.Una familia de imágenes , que debe tener el formato
family/ IMAGE_FAMILY
. Esto especifica la imagen del sistema operativo más reciente y no obsoleta. Por ejemplo, si especificafamily/debian-12
, se utiliza la última versión de la familia de imágenes de Debian 12. Para obtener más información sobre el uso de familias de imágenes, consulte Mejores prácticas de 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.
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.
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
Roles requeridos
Para obtener los permisos que necesita para evitar que una instancia informática consuma reservas, solicite a su administrador que le otorgue el rol de IAM de Administrador de instancia informática (v1) (
roles/compute.instanceAdmin.v1
) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .Esta función predefinida contiene los permisos necesarios para evitar que una instancia informática consuma reservas. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :
Permisos requeridos
Se requieren los siguientes permisos para evitar que una instancia informática consuma reservas:
Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .
Prevenir el consumo de reservas
Para evitar que una instancia informática consuma reservas, establezca su propiedad de afinidad de reservas (
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, utilice uno de los siguientes métodos:
Evitar el consumo en una instancia existente
Puede actualizar una instancia en ejecución para que ya no consuma reservas automáticamente. Debe reiniciar la instancia para que los cambios sean efectivos, como se describe en esta sección.
Para evitar que una instancia existente consuma reservas, seleccione una de las siguientes opciones:
nube de gcloud
DESCANSAR
Para obtener más información sobre cómo actualizar una instancia, consulte Actualizar propiedades de instancia .
Evitar el consumo al crear una instancia
Para crear una instancia informática que no pueda consumir reservas, seleccione una de las siguientes opciones:
Consola
nube de gcloud
Para crear una instancia que no pueda consumir reservas, usa el comando
gcloud compute instances create
con el indicador--reservation-affinity
establecido ennone
:gcloud compute instances create INSTANCE_NAME \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none \ --zone=ZONE
Reemplace lo siguiente:
Ir
Para crear una instancia que no pueda consumir reservas, utilice el siguiente código de ejemplo:
Java
Para crear una instancia que no pueda consumir reservas, utilice el siguiente código de ejemplo:
Nodo.js
Para crear una instancia que no pueda consumir reservas, utilice el siguiente código de ejemplo:
Pitón
Para crear una instancia que no pueda consumir reservas, utilice el siguiente código de ejemplo:
DESCANSAR
Para crear una instancia que no pueda consumir reservas, realice una solicitud
POST
al métodoinstances.insert
. En el cuerpo de la solicitud, incluya el campoconsumeReservationType
establecido enNO_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" } }
Reemplace lo siguiente:
Para obtener más información sobre la creación de una instancia, consulte Crear e iniciar una instancia de Compute Engine .
Evite el consumo mientras crea instancias de forma masiva
Para crear instancias informáticas de forma masiva que no puedan consumir reservas, seleccione una de las siguientes opciones:
nube de 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
configurada ennone
.Por ejemplo, para crear instancias de forma masiva en una sola zona y especificar un patrón de nombre, ejecute el siguiente comando:
gcloud compute instances bulk create \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --reservation-affinity=none \ --zone=ZONE
Reemplace lo siguiente:
DESCANSAR
Para crear instancias de forma masiva que no puedan consumir reservas, realice una solicitud
POST
al métodoinstances.bulkInsert
. En el cuerpo de la solicitud, incluya el campoconsumeReservationType
establecido enNO_RESERVATION
.Por ejemplo, para crear instancias de forma masiva en una sola zona y especificar un patrón de nombre, realice 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" } } }
Reemplace lo siguiente:
Para obtener más información sobre la creación de instancias de forma masiva, consulte Crear máquinas virtuales de forma masiva .
Evite el consumo al crear una plantilla de instancia
Después de crear una plantilla de instancias que configura instancias para que no consuman reservas, puede usar la plantilla para hacer lo siguiente:
Para crear una plantilla de instancias que configure instancias para que no consuman reservas, seleccione una de las siguientes opciones:
Consola
nube de gcloud
Para crear una plantilla de instancias que configure instancias para que no consuman reservas, use el comando
gcloud compute instances-templates create
con el indicador--reservation-affinity
establecido ennone
.Para crear una plantilla de instancia regional que configure instancias para que no consuman reservas, ejecute el siguiente comando. Si desea crear una plantilla de instancia global, utilice el mismo comando sin el indicador
--instance-template-region
.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none
Reemplace lo siguiente:
Ir
Para crear una plantilla de instancias que configure instancias para que no consuman reservas, utilice el siguiente código de ejemplo:
Java
Para crear una plantilla de instancias que configure instancias para que no consuman reservas, utilice el siguiente código de ejemplo:
Nodo.js
Para crear una plantilla de instancias que configure instancias para que no consuman reservas, utilice el siguiente código de ejemplo:
Pitón
Para crear una plantilla de instancias que configure instancias para que no consuman reservas, utilice el siguiente código de ejemplo:
DESCANSAR
Para crear una plantilla de instancia que configure instancias para que no consuman reservas, realice una solicitud
POST
a uno de los siguientes métodos:En el cuerpo de la solicitud, incluya el campo
consumeReservationType
y configúrelo enNO_RESERVATION
.Por ejemplo, para crear una plantilla de instancia regional y especificar que no se consuman reservas, realice 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" } } }
Reemplace lo siguiente:
Para obtener más información sobre la creación de plantillas de instancias, consulte Crear plantillas de instancias .
¿Qué sigue?
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-17 (UTC).
-