Este documento explica cómo crear reservas compartidas, que son reservas compartidas en varios proyectos, y administrar qué proyectos de su organización pueden consumir las reservas compartidas.
Una reserva compartida puede ser utilizada por el proyecto que aloja la reserva (proyecto propietario) y por los proyectos con los que se comparte la reserva (proyectos de consumidor). Utilice reservas compartidas si su organización tiene varios proyectos que necesitan instancias de máquinas virtuales (VM) con las mismas propiedades reservadas. Al utilizar reservas compartidas, puede mejorar la utilización de sus reservas y reducir la cantidad de reservas que necesita crear y administrar. Para obtener más información sobre las reservas, consulta Reservas de recursos zonales de Compute Engine .
Para conocer otros métodos de creación de reservas, consulte las siguientes páginas:
Para crear una reserva que solo pueda ser utilizada por un único proyecto, consulte Crear una reserva para un único proyecto .
Para crear una reserva al comprar un compromiso basado en recursos, consulte Comprar compromisos con reservas adjuntas . Los compromisos proporcionan descuentos, conocidos como descuentos por uso comprometido (CUD), en los costos de recursos bajo demanda a cambio de comprar un nivel mínimo de recursos o gastar una cantidad mínima.
Antes de comenzar
- Revisa los requisitos y restricciones para reservaciones.
- Revise los requisitos de cuota y las restricciones para reservas compartidas.
- Asegúrese de que un administrador de políticas de la organización haya agregado el proyecto que utiliza para crear reservas compartidas a la lista de permitidos para la restricción de política de organización Proyectos de propietario de reservas compartidas (
compute.sharedReservationsOwnerProjects
). Esta lista de permitidos está vacía de forma predeterminada, por lo que no puede crear reservas compartidas hasta que su organización otorgue este permiso a uno o más proyectos. Para obtener más detalles sobre cómo ver y editar la restricción de política de la organización, consulte Permitir y restringir que los proyectos creen y modifiquen reservas compartidas en este documento. - 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.
- 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.
- Administrador de Compute (
roles/compute.admin
) en el proyecto - Para ver y editar políticas de la organización: Administrador de políticas de la organización (
roles/orgpolicy.policyAdmin
) en la organización -
compute.reservations.create
en el proyecto. - Para ver las políticas de la organización:
orgpolicy.policy.get
en la organización - Para editar las políticas de la organización:
orgpolicy.policy.set
en la organización - Para especificar una plantilla de instancia:
compute.instanceTemplates.useReadOnly
en la plantilla de instancia - Haga que el proyecto propietario cree la reserva compartida pero no la consuma.
- Para distribuir los gastos entre proyectos, se recomienda que solo los proyectos de consumo consuman una reserva compartida. El proyecto del propietario solo debe usarse para crear la reserva compartida.
- Al crear una reserva compartida, el proyecto propietario debe tener una cuota suficiente para el total de recursos a reservar. Luego, una vez creada la reserva, el proyecto propietario debe tener una cuota para los recursos reservados que desee consumir. Para obtener más información, consulte Requisitos de cuota adicionales para reservas compartidas .
- Minimice la cantidad de proyectos en su organización a los que permite crear reservas compartidas. Puede controlar esto a través de la restricción de política de organización Proyectos de propietario de reservas compartidas (
compute.sharedReservationsOwnerProjects
).- Sólo puedes enumerar las reservas creadas por cada proyecto. Esto significa que las reservas compartidas solo se enumeran en el proyecto propietario (no puede enumerar las reservas compartidas con cada proyecto ni enumerar todas las reservas compartidas en cada organización), por lo que tener solo unos pocos proyectos propietarios hace que sea más fácil monitorear y administrar sus reservas compartidas.
- Limite el uso compartido de una reserva compartida a unos pocos proyectos solo para administrar la cuota de sus recursos reservados más fácilmente.
- Para obtener más información, consulte Permitir y restringir la creación y modificación de reservas compartidas en proyectos .
- Minimice la cantidad de reservas compartidas separadas con propiedades de VM idénticas.
- Una organización puede tener hasta 100 reservas compartidas para cada combinación única de propiedades de VM . Como resultado, minimizar la cantidad de reservas compartidas con propiedades de VM idénticas que usted crea ayuda a mitigar este límite.
- Tener menos reservas compartidas mejora la capacidad de gestión.
- Comparta reservas únicamente entre proyectos con la misma cuenta de facturación de Cloud.
- Limite cada reserva compartida para que solo se comparta con proyectos de consumidores que tengan la misma cuenta de facturación de Cloud que el proyecto del propietario. Esto le facilita ver si se consumió una reserva y cómo se facturó.
- Para futuras solicitudes de reserva, revise cuidadosamente el recuento total de VM que solicita.
- Si está creando una solicitud de reserva futura , asegúrese de solicitar un recuento total de máquinas virtuales que tenga en cuenta todo lo siguiente:
- Todas las máquinas virtuales reservadas coincidentes que ya existirán en el futuro.
- Todas las máquinas virtuales no reservadas coincidentes que ya existirán en el futuro.
- Cualquier reserva a pedido coincidente no utilizada que ya exista en una fecha futura.
- El aumento en el uso que desea reservar en una fecha futura.
Por ejemplo, supongamos que necesita 10 máquinas virtuales adicionales en el futuro y ya tendrá los siguientes recursos en el futuro:
- 40 máquinas virtuales reservadas coincidentes
- 50 máquinas virtuales no reservadas coincidentes
o
- 40 máquinas virtuales reservadas coincidentes
- 50 reservas bajo demanda coincidentes no utilizadas
Debido a que su uso actual en una fecha futura ya suma 90 máquinas virtuales y reservas coincidentes, y necesita diez máquinas virtuales adicionales, debe especificar un recuento total de
100
en su solicitud de reserva futura.Para obtener más información, consulte Contar y aprovisionar recursos reservados .
- Si está creando una solicitud de reserva futura , asegúrese de solicitar un recuento total de máquinas virtuales que tenga en cuenta todo lo siguiente:
Descarga la política para tu organización como un archivo llamado
policy.yaml
, usando el comandogcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
Reemplace ORGANIZATION_ID con el ID de organización de su organización.
Utilice un editor de texto para abrir el archivo
policy.yaml
y ver la restriccióncompute.sharedReservationsOwnerProjects
. Los proyectos a los que se les permite crear y modificar reservas compartidas se enumeran en susallowedValues
:... constraint: constraints/compute.sharedReservationsOwnerProjects listPolicy: allowedValues: - projects/PROJECT_NUMBER_1 - projects/PROJECT_NUMBER_2 - projects/PROJECT_NUMBER_3 ...
donde PROJECT_NUMBER_1 , PROJECT_NUMBER_2 y PROJECT_NUMBER_3 son los números de proyecto de los únicos proyectos de su organización que pueden crear reservas compartidas.
Opcional: elimine el archivo
policy.yaml
.Si está utilizando una terminal Linux o macOS, utilice el siguiente comando:
rm policy.yaml
Si está utilizando una terminal de Windows, utilice el siguiente comando:
del policy.yaml
Para otorgar permiso a un solo proyecto para crear y modificar reservas compartidas, usa el comando
gcloud resource-manager org-policies allow
. Puede repetir este comando para cada proyecto al que desee otorgarle este permiso.gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \ --organization=ORGANIZATION_ID
Reemplace lo siguiente:
- PROJECT_NUMBER : el número de proyecto (no el ID del proyecto) de un proyecto en su organización al que desea permitirle crear y modificar reservas compartidas.
- ORGANIZATION_ID : el ID de la organización de su organización.
Para otorgar o revocar permisos para que varios proyectos creen y modifiquen reservas compartidas, reemplace la restricción de política de la organización:
Para descargar la política para tu organización como un archivo llamado
policy.yaml
, usa el comandogcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
Reemplace ORGANIZATION_ID con el ID de organización de su organización.
Utilice un editor de texto para modificar el archivo
policy.yaml
de modo que la restriccióncompute.sharedReservationsOwnerProjects
enumere todos los proyectos a los que desea que se les permita crear y modificar reservas compartidas según susallowedValues
.- Para cada proyecto al que desee otorgar permiso para crear y modificar reservas compartidas, agregue el proyecto en una nueva línea en
allowedValues
. - Para cada proyecto en el que desee revocar el permiso para crear y modificar reservas compartidas, elimine la línea de ese proyecto.
Cuando haya terminado, asegúrese de que el archivo
policy.yaml
sea similar al siguiente:... constraint: constraints/compute.sharedReservationsOwnerProjects listPolicy: allowedValues: - projects/PROJECT_NUMBER_1 - projects/PROJECT_NUMBER_2 - projects/PROJECT_NUMBER_3 ...
donde PROJECT_NUMBER_1 , PROJECT_NUMBER_2 y PROJECT_NUMBER_3 son los números de proyecto (no los ID de proyecto) de todos los proyectos de su organización a los que desea que se les permita crear y modificar reservas compartidas.
- Para cada proyecto al que desee otorgar permiso para crear y modificar reservas compartidas, agregue el proyecto en una nueva línea en
Guarde el archivo
policy.yaml
y cierre el editor de texto.Para actualizar la política de tu organización con tus cambios, usa el comando
gcloud resource-manager org-policies set-policy
:gcloud resource-manager org-policies set-policy --organization=ORGANIZATION_ID policy.yaml
Reemplace ORGANIZATION_ID con el ID de organización de su organización.
Opcional: elimine el archivo
policy.yaml
.Si está utilizando una terminal Linux o macOS, utilice el siguiente comando:
rm policy.yaml
Si está utilizando una terminal de Windows, utilice el siguiente comando:
del policy.yaml
Recomendado: especificar una plantilla de instancia
Esta sección explica cómo utilizar una plantilla de instancia para definir las propiedades de una reserva compartida. Al utilizar una plantilla de instancia, puede definir las propiedades de una reserva y las máquinas virtuales que pueden consumir la reserva en el mismo lugar. Sin embargo, debido a que las plantillas son específicas del proyecto, no puede usar la misma plantilla para crear máquinas virtuales que puedan consumir la reserva fuera del proyecto que creó la reserva. Para los proyectos con los que se comparte la reserva, debe crear plantillas similares en esos proyectos o crear máquinas virtuales especificando propiedades directamente.
Especificar una máquina virtual existente
Esta sección explica cómo utilizar una máquina virtual existente para definir las propiedades de una reserva. Al utilizar las propiedades de una máquina virtual existente, puede consumir la reserva creando máquinas virtuales con propiedades que coincidan con la máquina virtual de referencia.
Especificar propiedades directamente
Esta sección explica cómo definir directamente las propiedades de una reserva compartida. Este método requiere que usted se asegure manualmente de que las propiedades de sus máquinas virtuales y reservas coincidan exactamente (cualquiera).Las propiedades no coincidentes impiden el consumo .
Cree una reserva que solo puedan consumir las máquinas virtuales que se dirijan específicamente a ella, como se explica en las siguientes secciones de este documento. Luego, configure las máquinas virtuales para consumir esa reserva específica .
Configure las máquinas virtuales para que no consuman reservas .
Una plantilla de instancia contiene configuraciones específicas del proyecto, por lo que solo puedes acceder y usar una plantilla de instancia dentro del mismo proyecto. Si crea una reserva compartida especificando una plantilla de instancia, no podrá usar la misma plantilla para crear máquinas virtuales que puedan consumir la reserva fuera del proyecto que creó la reserva.
Cree su reserva en la misma región y zona que los recursos dentro de la plantilla de instancia. Cualquier recurso regional o zonal especificado en una plantilla de instancia, como un tipo de máquina o un volumen de disco persistente, restringe el uso de la plantilla a las ubicaciones donde existen esos recursos. Por ejemplo, si su plantilla de instancia especifica un volumen de disco persistente existente en la zona
us-central1-a
, entonces solo podrá crear su reserva en la misma zona. Para comprobar si una plantilla existente especifica algún recurso que vincule la plantilla a una región o zona específica, vea los detalles de la plantilla de instancia y busque referencias a recursos regionales o zonales dentro de ella.En la consola de Google Cloud, vaya a la página Reservas .
Aparece la página de Reservas .
Haga clic
Crear reserva .Aparece la página Crear una reserva .
Para Nombre , ingrese un nombre para su reserva.
Para Región y Zona , seleccione dónde desea reservar recursos.
En la sección Tipo de recurso compartido , haga lo siguiente:
Para especificar una reserva compartida, seleccione Compartida .
Haga clic en
Agregar proyectos y luego seleccione los proyectos de la organización del proyecto actual con los que desea compartir la reserva. Puede seleccionar hasta 100 proyectos de consumo.
Opcional: para permitir que una reserva de máquinas virtuales GPU sea consumida por trabajos de entrenamiento personalizados o trabajos de predicción en Vertex AI, en la sección Servicios de Google Cloud , seleccione Compartir reserva .
En la sección Usar con instancia de VM , seleccione una de las siguientes opciones:
Para permitir que las instancias de VM coincidentes usen automáticamente esta reserva, seleccione Usar reserva automáticamente si aún no está seleccionada.
Para consumir los recursos de esta reserva solo al crear máquinas virtuales coincidentes que se dirijan específicamente a esta reserva por nombre, seleccione Seleccionar reserva específica .
En Número de instancias de VM , ingrese la cantidad de VM que desea reservar.
En la sección Configuración de la máquina , seleccione Usar plantilla de instancia y luego seleccione la plantilla de instancia de su elección. Si selecciona una plantilla de instancia regional, solo podrá reservar recursos dentro de la misma región que la región de la plantilla.
En la sección Eliminación automática , puedes habilitar la opción de eliminación automática para permitir que Compute Engine elimine automáticamente la reserva en una fecha y hora específicas. Eliminar reservas automáticamente puede ser útil para evitar cargos innecesarios cuando dejas de consumir la reserva.
Para crear la reserva, haga clic en Crear .
Se abre la página de Reservas . La creación de la reserva compartida puede tardar hasta un minuto en completarse.
RESERVATION_NAME
: el nombre de la reserva a crear.PROJECT_ID
: el ID del proyecto donde desea reservar recursos y donde existe la plantilla de instancia.CONSUMER_PROJECT_IDS
: una lista separada por comas de ID de proyectos que pueden consumir esta reserva; por ejemplo,project-1,project-2
. Puede incluir hasta 100 proyectos de consumo. Estos proyectos deben estar en la misma organización que el proyecto propietario. No incluya el proyecto del propietario. Por defecto ya está permitido consumir la reserva.LOCATION
: la ubicación de la plantilla de instancia. Especifique uno de los siguientes valores:Para una plantilla de instancia global:
global
.Para una plantilla de instancia regional:
regions/ REGION
. ReemplaceREGION
con la región donde se encuentra la plantilla de instancia. Si especifica una plantilla de instancia regional, solo podrá reservar máquinas virtuales dentro de la misma región que la región de la plantilla.
INSTANCE_TEMPLATE_NAME
: el nombre de una plantilla de instancia existente. Si la plantilla de instancia especifica un tipo de máquina A3 Mega, A3 High o A3 Edge, debe incluir la marca--require-specific-reservation
. Esto indica que solo las máquinas virtuales que apuntan específicamente a la reserva pueden consumirla. Para obtener más información, consulte Consumir máquinas virtuales de una reserva específica .NUMBER_OF_VMS
: la cantidad de máquinas virtuales que se reservarán.ZONE
: la zona en la que reservar recursos.Para especificar que solo las máquinas virtuales que apuntan específicamente a esta reserva puedan consumirla, incluya la marca
--require-specific-reservation
.gcloud compute reservations create RESERVATION_NAME \ --require-specific-reservation \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Para permitir que una reserva de máquinas virtuales GPU sea consumida por trabajos de entrenamiento personalizados o trabajos de predicción en Vertex AI, incluya el indicador
--reservation-sharing-policy
establecido enALLOW_ALL
.gcloud compute reservations create RESERVATION_NAME \ --reservation-sharing-policy=ALLOW_ALL \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Para permitir que Compute Engine elimine automáticamente la reserva , selecciona uno de los siguientes métodos:
Para eliminar la reserva en una fecha y hora específicas, usa el comando
gcloud beta compute reservations create
con la marca--delete-at-time
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Reemplace
DELETE_AT_TIME
con una fecha y hora formateadas como marca de tiempo RFC 3339 , que debe ser la siguiente:YYYY-MM-DDTHH:MM:SSOFFSET
Reemplace lo siguiente:
YYYY-MM-DD
: una fecha con formato de año de 4 dígitos, mes de 2 dígitos y día del mes de 2 dígitos, separados por guiones (-
).HH:MM:SS
: una hora formateada como hora de 2 dígitos usando una hora de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos, separados por dos puntos (:
).OFFSET
: la zona horaria formateada como un desplazamiento de la hora universal coordinada (UTC) . Por ejemplo, para utilizar la hora estándar del Pacífico (PST), especifique-08:00
. Como alternativa, para no utilizar ningún desplazamiento, especifiqueZ
.
Para eliminar la reserva después de una duración específica, usa el comando
gcloud beta compute reservations create
con la marca--delete-after-duration
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Reemplace
DELETE_AFTER_DURATION
con una duración en días, horas, minutos o segundos. Por ejemplo, especifique30m
para 30 minutos o1d2h3m4s
para 1 día, 2 horas, 3 minutos y 4 segundos.
El campo
projectMap
.El campo
shareType
establecido enSPECIFIC_PROJECTS
.PROJECT_ID
: el ID del proyecto donde desea reservar recursos y donde existe la plantilla de instancia.ZONE
: la zona en la que reservar recursos.RESERVATION_NAME
: el nombre de la reserva a crear.CONSUMER_PROJECT_ID_1
yCONSUMER_PROJECT_ID_2
: los ID de los proyectos que pueden consumir esta reserva. Puede incluir hasta 100 proyectos de consumo. Estos proyectos deben estar en la misma organización que el proyecto propietario. No incluya el proyecto del propietario. Por defecto ya está permitido consumir la reserva.NUMBER_OF_VMS
: la cantidad de máquinas virtuales que se reservarán.LOCATION
: la ubicación de la plantilla de instancia. Especifique uno de los siguientes valores:Para una plantilla de instancia global:
global
.Para una plantilla de instancia regional:
regions/ REGION
. ReemplaceREGION
con la región donde se encuentra la plantilla de instancia. Si especifica una plantilla de instancia regional, solo podrá reservar máquinas virtuales dentro de la misma región que la región de la plantilla.
INSTANCE_TEMPLATE_NAME
: el nombre de una plantilla de instancia existente. Si la plantilla de instancia especifica un tipo de máquina A3 Mega, A3 High o A3 Edge, debe incluir el campospecificReservationRequired
en el cuerpo de la solicitud y establecer el campo entrue
. Esto indica que solo las máquinas virtuales que apuntan específicamente a esta reserva pueden consumirla. Para obtener más información, consulte Consumir máquinas virtuales de una reserva específica .Para especificar que solo las máquinas virtuales que apuntan específicamente a esta reserva puedan consumirla, incluya el
specificReservationRequired
en el cuerpo de la solicitud y establezca el campo entrue
.Por ejemplo, para crear una reserva específica especificando una plantilla de instancia y compartir la reserva con dos proyectos de consumidores, realice una solicitud de la siguiente manera:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" }, "specificReservationRequired": true }
Para permitir que una reserva de máquinas virtuales GPU sea consumida por trabajos de entrenamiento personalizados o trabajos de predicción en Vertex AI, incluya el campo
serviceShareType
y configúrelo enALLOW_ALL
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "ALLOW_ALL" }, "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
Para permitir que Compute Engine elimine automáticamente la reserva , selecciona uno de los siguientes métodos:
Para eliminar la reserva en una fecha y hora específica, realice una solicitud
POST
al métodobeta.reservations.insert
. En el cuerpo de la solicitud, incluya el campodeleteAtTime
.Por ejemplo, para crear una reserva especificando una plantilla de instancia, eliminar automáticamente la reserva en una fecha y hora específicas y compartir la reserva con dos proyectos de consumidores, realice una solicitud de la siguiente manera:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAtTime": "DELETE_AT_TIME", "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
Reemplace
DELETE_AT_TIME
con una fecha y hora formateadas como marca de tiempo RFC 3339 , que debe ser la siguiente:YYYY-MM-DDTHH:MM:SSOFFSET
Reemplace lo siguiente:
YYYY-MM-DD
: una fecha con formato de año de 4 dígitos, mes de 2 dígitos y día del mes de 2 dígitos, separados por guiones (-
).HH:MM:SS
: una hora formateada como hora de 2 dígitos usando una hora de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos, separados por dos puntos (:
).OFFSET
: la zona horaria formateada como un desplazamiento de la hora universal coordinada (UTC) . Por ejemplo, para utilizar la hora estándar del Pacífico (PST), especifique-08:00
. Como alternativa, para no utilizar ningún desplazamiento, especifiqueZ
.
Para eliminar la reserva después de una duración específica, realice una solicitud
POST
al métodobeta.reservations.insert
. En el cuerpo de la solicitud, incluya el campodeleteAfterDuration
.Por ejemplo, para crear una reserva especificando una plantilla de instancia, eliminar automáticamente la reserva después de una duración específica y compartir la reserva con dos proyectos de consumidores, realice una solicitud de la siguiente manera:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
Reemplace
DELETE_AFTER_DURATION
con una duración en segundos. Por ejemplo, especifique86400
durante 86.400 segundos (1 día).
Cree y utilice una plantilla de instancia de la siguiente manera:
Cree una plantilla de instancia basada en la VM de referencia sin anular las propiedades de la VM de referencia.
Cree máquinas virtuales utilizando la plantilla recién creada realizando una o ambas de las siguientes acciones:
Cree una máquina virtual con propiedades que coincidan exactamente con la máquina virtual de referencia de la siguiente manera:
En el proyecto propietario, cree una máquina virtual basada en la máquina virtual de referencia sin cambiar las propiedades de la máquina virtual que está creando.
En los proyectos de consumo, cree una máquina virtual mientras se asegura manualmente de que sus propiedades y las propiedades de la máquina virtual de referencia coincidan.
En la consola de Google Cloud, vaya a la página Reservas .
En la pestaña Reservas bajo demanda (predeterminada), haga clic en
Crear reserva .Se abre la página Crear una reserva .
Para Nombre , ingrese un nombre para su reserva.
Para Región y Zona , seleccione dónde desea reservar recursos.
En la sección Tipo de recurso compartido , haga lo siguiente:
Para especificar una reserva compartida, seleccione Compartida .
Haga clic en
Agregar proyectos y luego seleccione los proyectos de la organización del proyecto actual con los que desea compartir la reserva. Puede seleccionar hasta 100 proyectos de consumo.
En la sección Usar con instancia de VM , seleccione una de las siguientes opciones:
Para permitir que las máquinas virtuales coincidentes consuman automáticamente esta reserva, seleccione Usar reserva automáticamente si aún no está seleccionada.
Para consumir los recursos de esta reserva solo al crear máquinas virtuales coincidentes que se dirijan específicamente a esta reserva por nombre, seleccione Seleccionar reserva específica .
En Número de instancias de VM , ingrese la cantidad de VM que desea reservar.
En la sección Configuración de la máquina , haga lo siguiente:
Seleccione Usar VM existente .
Para VM existente , seleccione la VM cuyas propiedades desea usar para crear la reserva.
En la sección Eliminación automática , puedes habilitar la opción de eliminación automática para permitir que Compute Engine elimine automáticamente la reserva en una fecha y hora específicas. Eliminar reservas automáticamente puede ser útil para evitar cargos innecesarios cuando dejas de consumir la reserva.
Para crear la reserva, haga clic en Crear .
Se abre la página de Reservas . La creación de la reserva puede tardar hasta un minuto en completarse.
En la consola de Google Cloud, vaya a la página Reservas .
En la pestaña Reservas bajo demanda (predeterminada), haga clic en
Crear reserva .Haga clic
Crear reserva .Aparece la página Crear una reserva .
Para Nombre , ingrese un nombre para su reserva.
Para Región y Zona , seleccione dónde desea reservar recursos.
En la sección Tipo de recurso compartido , haga lo siguiente:
Para especificar una reserva compartida, seleccione Compartida .
Haga clic en
Agregar proyectos y luego seleccione los proyectos de la organización del proyecto actual con los que desea compartir la reserva. Puede seleccionar hasta 100 proyectos de consumo.
Opcional: para permitir que una reserva de máquinas virtuales GPU sea consumida por trabajos de entrenamiento personalizados o trabajos de predicción en Vertex AI, en la sección Servicios de Google Cloud , seleccione Compartir reserva .
En la sección Usar con instancia de VM , seleccione una de las siguientes opciones:
Para permitir que las máquinas virtuales coincidentes consuman automáticamente esta reserva, seleccione Usar reserva automáticamente (predeterminado).
Para consumir los recursos de esta reserva solo al crear máquinas virtuales coincidentes que se dirijan específicamente a esta reserva por nombre, seleccione Seleccionar reserva específica .
En Número de instancias de VM , ingrese la cantidad de VM que desea reservar.
En la sección Configuración de la máquina , seleccione Especificar tipo de máquina y luego especifique lo siguiente:
Para Familia de máquinas , Serie y Tipo de máquina , seleccione una familia de máquinas, una serie y un tipo de máquina.
Opcional: para especificar una plataforma de CPU mínima o conectar GPU a máquinas virtuales N1, haga lo siguiente:
Para expandir la sección Plataforma CPU y GPU , haga clic en la flecha de expansión
.Opcional: Para especificar una plataforma de CPU mínima, en Plataforma de CPU , seleccione una opción.
Opcional: para conectar GPU a máquinas virtuales N1, haga clic en
Agregar GPU . Luego, para Tipo de GPU y Número de GPU , seleccione el tipo y la cantidad de GPU que desea conectar a cada VM N1.
Opcional: Para conectar discos SSD locales a un tipo de máquina que no incluye discos SSD locales de forma predeterminada , haga lo siguiente:
Para Número de discos , seleccione la cantidad de discos SSD locales que desea conectar.
Para Tipo de interfaz , seleccione la interfaz del disco para los discos SSD locales.
En la sección Eliminación automática , puedes habilitar la opción de eliminación automática para permitir que Compute Engine elimine automáticamente la reserva en una fecha y hora específicas. Eliminar reservas automáticamente puede ser útil para evitar cargos innecesarios cuando dejas de consumir la reserva.
Para crear la reserva, haga clic en Crear .
Se abre la página de Reservas . La creación de la reserva compartida puede tardar hasta un minuto en completarse.
RESERVATION_NAME
: el nombre de la reserva a crear.MACHINE_TYPE
: un tipo de máquina a utilizar para cada VM. Si especifica un tipo de máquina A3 Mega, A3 High o A3 Edge, debe incluir la marca--require-specific-reservation
. Esto indica que solo las máquinas virtuales que apuntan específicamente a la reserva pueden consumirla. Para obtener más información, consulte Consumir máquinas virtuales de una reserva específica .CONSUMER_PROJECT_IDS
: una lista separada por comas de ID de proyectos que pueden consumir esta reserva; por ejemplo,project-1,project-2
. Puede incluir hasta 100 proyectos de consumo. Estos proyectos deben estar en la misma organización que el Proyecto del Propietario. No incluya el proyecto del propietario. Por defecto, ya se le permite consumir la reserva.NUMBER_OF_VMS
: el número de máquinas virtuales para reservar.ZONE
: la zona para reservar recursos.Para adjuntar GPU a sus máquinas virtuales N1 reservadas, incluya la bandera
--accelerator
.gcloud compute reservations create RESERVATION_NAME \ --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Reemplace lo siguiente:
NUMBER_OF_ACCELERATORS
: el número de GPU para agregar por VM reservada.ACCELERATOR_TYPE
: un modelo GPU compatible para VMS N1 . Asegúrese de que su modelo de GPU elegido esté disponible en la zona donde desea reservar recursos. De lo contrario, la creación de la reserva falla.
Para adjuntar discos SSD locales a un tipo de máquina que no incluya discos SSD locales de forma predeterminada , incluya el indicador
--local-ssd
. Solo puede adjuntar discos SSD locales de 375 GB.gcloud compute reservations create RESERVATION_NAME \ --local-ssd=count=NUMBER_OF_LOCAL_SSD_DISKS,size=375,interface=INTERFACE_TYPE \ --machine-type=MACHINE_TYPE \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Reemplace lo siguiente:
NUMBER_OF_LOCAL_SSD_DISKS
: el número de discos SSD locales para adjuntar.INTERFACE_TYPE
: el tipo de interfaz de disco que desea que use cada disco SSD local y que admita su tipo de máquina especificada . Especifique uno de los siguientes valores:Para la interfaz de disco NVME:
nvme
Para la interfaz de disco SCSI:
scsi
Para que las máquinas virtuales reservadas usen una plataforma mínima de CPU específica en lugar de la plataforma CPU predeterminada de la zona, incluya el indicador
--min-cpu-platform
.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --min-cpu-platform="MIN_CPU_PLATFORM" \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Reemplace
MIN_CPU_PLATFORM
con una plataforma mínima de CPU. Para asegurarse de que una plataforma CPU esté disponible en la zona donde está reservando recursos, vea las plataformas de CPU disponibles por zona .Para especificar que solo las máquinas virtuales que se dirigen específicamente a esta reserva pueden consumirla, incluya el indicador
--require-specific-reservation
.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --require-specific-reservation \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Para permitir que una reserva de máquinas virtuales de GPU sea consumida por trabajos de capacitación personalizados o trabajos de predicción en Vertex AI, incluya la bandera
--reservation-sharing-policy
establecida enALLOW_ALL
.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --reservation-sharing-policy=ALLOW_ALL \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Para habilitar la calculadora del motor para eliminar automáticamente la reserva , seleccione uno de los siguientes métodos:
Para eliminar la reserva en una fecha y hora específicas, use el comando
gcloud beta compute reservations create
con el indicador--delete-at-time
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Reemplace
DELETE_AT_TIME
con una fecha y hora formateada como una marca de tiempo RFC 3339 , que debe ser la siguiente:YYYY-MM-DDTHH:MM:SSOFFSET
Reemplace lo siguiente:
YYYY-MM-DD
: una fecha formateada como un año de 4 dígitos, mes de 2 dígitos y un día de 2 dígitos del mes, separado por Hyphens (-
).HH:MM:SS
: un tiempo formateado como una hora de 2 dígitos usando una hora de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos, separados por colons (:
.OFFSET
: la zona horaria formateada como un desplazamiento de tiempo universal coordinado (UTC) . Por ejemplo, para usar el tiempo estándar del Pacífico (PST), especifique-08:00
. Alternativamente, para no usar compensación, especifiqueZ
.
Para eliminar la reserva después de una duración específica, use el comando
gcloud beta compute reservations create
con el indicador--delete-after-duration
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Reemplace
DELETE_AFTER_DURATION
con una duración en días, horas, minutos o segundos. Por ejemplo, especifique30m
durante 30 minutos, o1d2h3m4s
durante 1 día, 2 horas, 3 minutos y 4 segundos.
- Establezca el campo
share_type
enSPECIFIC_PROJECTS
. - En el bloque
project_map
, especifique los ID de proyecto de los proyectos con los que desea compartir esta reserva. El campo
projectMap
.El campo
shareType
se establece enSPECIFIC_PROJECTS
.PROJECT_ID
: la identificación del proyecto donde desea reservar recursos.ZONE
: la zona para reservar recursos.RESERVATION_NAME
: el nombre de la reserva para crear.CONSUMER_PROJECT_ID_1
yCONSUMER_PROJECT_ID_2
: los ID de proyectos que pueden consumir esta reserva. Puede incluir hasta 100 proyectos de consumo. Estos proyectos deben estar en la misma organización que el Proyecto del Propietario. No incluya el proyecto del propietario. Por defecto, ya se le permite consumir la reserva.NUMBER_OF_VMS
: el número de máquinas virtuales para reservar.MACHINE_TYPE
: un tipo de máquina para usar para cada VM. Si especifica un tipo de máquina A3 MEGA, A3 High o A3 Edge, entonces debe incluir el campospecificReservationRequired
en el cuerpo de solicitudes y establecer el campo entrue
. Esto indica que solo las máquinas virtuales que se dirigen específicamente a la reserva pueden consumirla.Para adjuntar GPU a sus VMS reservadas, incluya el campo de
guestAccelerators
en el cuerpo de solicitud.Por ejemplo, para crear una reserva compartida con dos proyectos de consumo y adjuntar GPU a cualquier VMS reservada, haga una solicitud de la siguiente manera:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": NUMBER_OF_ACCELERATORS, "acceleratorType": "ACCELERATOR_TYPE" } ], "machineType": "MACHINE_TYPE" } } }
Reemplace lo siguiente:
NUMBER_OF_ACCELERATORS
: el número de GPU para agregar por VM reservada.ACCELERATOR_TYPE
: un modelo GPU compatible para VMS N1 . Asegúrese de que su modelo de GPU elegido esté disponible en la zona donde desea reservar recursos. De lo contrario, la creación de la reserva falla.
Para adjuntar discos SSD locales a un tipo de máquina que no incluya discos SSD locales de forma predeterminada , incluya el campo
localSsds
en el cuerpo de solicitud. Solo puede adjuntar discos SSD locales de 375 GB.Por ejemplo, para adjuntar dos discos SSD locales al tipo de máquina que desea reservar mientras especifica dos proyectos de consumidores, haga una solicitud de la siguiente manera:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "localSsds": [ { "diskSizeGb": "375", "interface": "INTERFACE_TYPE" }, { "diskSizeGb": "375", "interface": "INTERFACE_TYPE" } ], "machineType": "MACHINE_TYPE" } } }
Reemplace
INTERFACE_TYPE
con el tipo de interfaz de disco que desea que use cada disco SSD local y que admita su tipo de máquina especificada . Especifique uno de los siguientes valores:Para la interfaz de disco NVME:
NVME
Para la interfaz de disco SCSI:
SCSI
Para que las máquinas virtuales reservadas usen una plataforma mínima de CPU específica en lugar de la plataforma CPU predeterminada de la zona, incluya el campo
minCpuPlatform
en el cuerpo de solicitud.Por ejemplo, para crear una reserva compartida mientras especifica una plataforma mínima de CPU y dos proyectos de consumo, realice una solicitud de la siguiente manera:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE", "minCpuPlatform": "MIN_CPU_PLATFORM" } } }
Reemplace
MIN_CPU_PLATFORM
con una plataforma mínima de CPU. Para asegurarse de que una plataforma CPU esté disponible en la zona donde está reservando recursos, vea las plataformas de CPU disponibles por zona .Para especificar que solo las máquinas virtuales que se dirigen específicamente a esta reserva pueden consumirla, incluya el campo
specificReservationRequired
en el cuerpo de solicitudes y establecer el campo entrue
.Por ejemplo, para crear una reserva específica y compartirla con dos proyectos de consumo, haga una solicitud de la siguiente manera:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } }, "specificReservationRequired": true }
Para permitir que una reserva de máquinas virtuales de GPU sea consumida por trabajos de capacitación personalizados o trabajos de predicción en Vertex AI, incluya el campo
serviceShareType
y configúrelo enALLOW_ALL
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "ALLOW_ALL" }, "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
Para habilitar la calculadora del motor para eliminar automáticamente la reserva , seleccione uno de los siguientes métodos:
Para eliminar la reserva en una fecha y hora específicas, haga una solicitud
POST
al métodobeta.reservations.insert
. En el cuerpo de solicitud, incluya el campodeleteAtTime
.Por ejemplo, para crear una reserva mientras especifica una fecha y hora para eliminar una reserva y compartir la reserva con dos proyectos de consumo, haga una solicitud de la siguiente manera:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAtTime": "DELETE_AT_TIME", "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
Reemplace
DELETE_AT_TIME
con una fecha y hora formateada como una marca de tiempo RFC 3339 , que debe ser la siguiente:YYYY-MM-DDTHH:MM:SSOFFSET
Reemplace lo siguiente:
YYYY-MM-DD
: una fecha formateada como un año de 4 dígitos, mes de 2 dígitos y un día de 2 dígitos del mes, separado por Hyphens (-
).HH:MM:SS
: un tiempo formateado como una hora de 2 dígitos usando una hora de 24 horas, minutos de 2 dígitos y segundos de 2 dígitos, separados por colons (:
.OFFSET
: la zona horaria formateada como un desplazamiento de tiempo universal coordinado (UTC) . Por ejemplo, para usar el tiempo estándar del Pacífico (PST), especifique-08:00
. Alternativamente, para no usar compensación, especifiqueZ
.
Para eliminar la reserva después de una duración específica, haga una solicitud
POST
al métodobeta.reservations.insert
. En el cuerpo de solicitud, incluya el campodeleteAfterDuration
.Por ejemplo, para crear una reserva que calcule el motor elimine después de una duración específica y comparta la reserva con dos proyectos de consumo, haga una solicitud de la siguiente manera:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
Reemplace
DELETE_AFTER_DURATION
con una duración en segundos. Por ejemplo, especifique86400
por 86,400 segundos (1 día).
Aprenda a ver sus reservas .
Aprenda a adjuntar reservas a los compromisos .
Aprenda a consumir reservas .
Aprenda a monitorear el consumo de reservas .
Terraform
Para usar las muestras de Terraform 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.
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 crear reservas compartidas, solicite a su administrador que le otorgue los siguientes roles de IAM:
Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .
Estos roles predefinidos contienen los permisos necesarios para crear reservas compartidas. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :
Permisos requeridos
Se requieren los siguientes permisos para crear reservas compartidas:
Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .
Mejores prácticas
Al crear reservas compartidas, se recomiendan las siguientes mejores prácticas. Si los sigue, puede ayudar a optimizar la capacidad de administración y utilización de las reservas compartidas en su organización.
Permitir y restringir que los proyectos creen y modifiquen reservas compartidas
De forma predeterminada, ningún proyecto puede crear o modificar reservas compartidas en una organización. Agregue proyectos a la restricción de política de organización Proyectos de propietario de reservas compartidas (
compute.sharedReservationsOwnerProjects
) para permitirles crear y modificar reservas compartidas. Para obtener más información sobre las restricciones de políticas de la organización, consulte Introducción al servicio de políticas de la organización .Utilice los siguientes pasos para ver y editar la restricción de política de organización de proyectos de propietario de reservas compartidas (
compute.sharedReservationsOwnerProjects
).Ver la restricción de política de la organización de reservas compartidas
Para ver qué proyectos tienen permiso para crear y modificar reservas compartidas, use la consola de Google Cloud o la CLI de gcloud.
Consola
Siga los pasos para Ver políticas de organización usando la restricción Proyectos de propietario de reservas compartidas .
nube de gcloud
Para ver qué proyectos la restricción
compute.sharedReservationsOwnerProjects
permite crear y modificar reservas compartidas:Editar la restricción de política de la organización de reservas compartidas
Para editar qué proyectos pueden crear y modificar reservas compartidas, use la consola de Google Cloud o la CLI de gcloud.
Consola
Siga los pasos para Personalizar políticas para restricciones de lista utilizando la restricción Proyectos de propietario de reservas compartidas .
nube de gcloud
Para editar qué proyectos la restricción
compute.sharedReservationsOwnerProjects
permite crear y modificar reservas compartidas, utilice uno de los siguientes métodos:Es posible que tengas que esperar unos minutos para que la edición surta efecto.
Crear una reserva compartida
Esta sección explica cómo crear reservas compartidas. Después de crear una reserva compartida, solo el proyecto propietario puede modificarla, pero los recursos para una reserva compartida pueden ser consumidos por el proyecto propietario o por cualquier proyecto consumidor.
Para consumir una reserva, una VM debe tener propiedades que coincidan exactamente con esa reserva. Para especificar las propiedades de las máquinas virtuales que desea reservar, seleccione una de las siguientes secciones de este documento:
De forma predeterminada, cualquier máquina virtual con propiedades que coincidan puede consumir automáticamente una reserva. Si desea controlar el consumo de reservas, realice una o más de las siguientes acciones:
Especificar una plantilla de instancia
Antes de crear una reserva especificando una plantilla de instancia, asegúrese de lo siguiente:
Para crear una reserva compartida especificando una plantilla de instancia, seleccione una de las siguientes opciones:
Consola
nube de gcloud
Para crear una reserva compartida, usa el comando
gcloud compute reservations create
con las marcas--share-setting=projects
y--share-with
.Para crear una reserva compartida especificando una plantilla de instancia y sin incluir ningún indicador opcional, ejecute el siguiente comando:
gcloud compute reservations create RESERVATION_NAME \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Reemplace lo siguiente:
Por ejemplo, para crear una reserva especificando una plantilla de instancia global en la zona
us-central1-a
, compartir la reserva con los proyectosproject-1
yproject-2
y reservar diez máquinas virtuales, cada una de las cuales usa un tipo de máquina predefinido N2 con 4 vCPU, ejecute el siguiente comando:gcloud compute reservations create my-reservation \ --share-setting=projects \ --share-with=project-1,project-2 \ --source-instance-template=projects/example-project/global/example-instance-template \ --vm-count=10 \ --zone=us-central1-a
Opcionalmente, puede realizar una o más de las siguientes acciones:
Ir
Java
Nodo.js
Pitón
DESCANSAR
Para crear una reserva compartida, realice una solicitud
POST
al métodoreservations.insert
. En el cuerpo de la solicitud, incluya lo siguiente:Por ejemplo, para crear una reserva compartida especificando una plantilla de instancia sin incluir ningún campo opcional y compartir la reserva con dos proyectos de consumidores, realice la siguiente solicitud
POST
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
Reemplace lo siguiente:
Por ejemplo, para crear una reserva para diez máquinas virtuales en la zona
us-central1-a
especificando una plantilla de instancia global y compartir la reserva con los proyectosproject-1
yproject-2
, realice la siguiente solicitudPOST
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "my-reservation", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "project-1": { "projectId": "project-1" }, "project-2": { "projectId": "project-2" } } }, "specificReservation": { "count": "10", "sourceInstanceTemplate": "projects/example-project/global/instanceTemplates/example-instance-template" } }
Opcionalmente, puede realizar una o más de las siguientes acciones:
Especificar una máquina virtual existente
Solo puede crear una reserva compartida basada en una máquina virtual existente en el mismo proyecto y zona que la máquina virtual.
Después de crear la reserva, puede consumirla creando máquinas virtuales con propiedades que coincidan con la máquina virtual de referencia. Puede hacerlo realizando una de las siguientes acciones:
Para crear una reserva compartida que utilice las propiedades de una máquina virtual existente, haga lo siguiente:
Especificar propiedades directamente
Para crear una reserva compartida especificando propiedades directamente, seleccione una de las siguientes opciones:
Consola
nube de gcloud
Para crear una reserva compartida, usa el comando
gcloud compute reservations create
con las marcas--share-setting=projects
y--share-with
.Para crear una reserva compartida especificando propiedades directamente y sin incluir ninguna marca opcional, ejecute el siguiente comando:
gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Reemplace lo siguiente:
Por ejemplo, para crear una reserva en la Zona
us-central1-a
para diez VM que usan un tipo de máquina N2 predefinido con 4 VCPUS, y comparta la reserva con Projectproject-1
yproject-2
, ejecute el siguiente comando:gcloud compute reservations create my-reservation \ --machine-type=n2-standard-4 \ --share-setting=projects \ --share-with=project-1,project-2 \ --vm-count=10 \ --zone=us-central1-a
Opcionalmente, puede hacer uno o más de los siguientes:
Terraformar
Para crear una reserva, use el recurso
google_compute_reservation
Terraform . Para especificar una reserva compartida, defina el bloqueshare_settings
:Para obtener más información sobre cómo usar Terraform, consulte Uso de Terraform con Google Cloud .
DESCANSAR
Para crear una reserva compartida, haga una solicitud
POST
al métodoreservations.insert
. Insert. En el cuerpo de solicitud, incluya lo siguiente:Por ejemplo, para crear una reserva compartida sin incluir campos opcionales y compartir la reserva con dos proyectos de consumo, haga la siguiente solicitud
POST
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
Reemplace lo siguiente:
Por ejemplo, para crear una reserva especificando una plantilla de instancia global en la zona
us-central1-a
, comparta la reserva conproject-1
yproject-2
, y reserva diez VMS que usan un tipo de máquina N2 predefinido con 4 VCPU, realice la siguiente solicitudPOST
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "my-reservation", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "project-1": { "projectId": "project-1" }, "project-2": { "projectId": "project-2" } } }, "specificReservation": { "count": "10", "instanceProperties": { "machineType": "n2-standard-4", } } }
Opcionalmente, puede hacer uno o más de los siguientes:
Solución de problemas
Aprenda a solucionar problemas de la creación de reservas .
¿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).
-