Cómo compartir una reserva de Cloud TPU
En este documento, se describe cómo habilitar el uso compartido de reservas. El uso compartido de reservas te permite crear VMs de TPU en un proyecto (un proyecto de consumidor) y usar una reserva que pertenece a otro proyecto (el proyecto propietario). El uso compartido de reservas también te permite ejecutar trabajos de entrenamiento o predicción personalizados en Vertex AI con una reserva de TPU.
El proyecto propietario es el proyecto en el que creaste la reserva. Los proyectos de consumidor son uno o más proyectos que comparten la reserva. Puedes crear VMs de TPU en el proyecto de propietario y en los proyectos de consumidor con la reserva del proyecto de propietario.
Para obtener más información sobre cómo obtener una reserva de TPU, consulta Acerca de las reservas de Cloud TPU.
Limitaciones
Antes de compartir una reserva de TPU, ten en cuenta lo siguiente:
Solo puedes modificar una reserva compartida desde su proyecto propietario.
Puedes modificar una reserva a corto plazo en el modo de calendario o una reserva a largo plazo solo de la siguiente manera:
Solo puedes modificar la reserva después de la hora de inicio.
Puedes modificar la reserva solo para permitir o denegar que los trabajos en Vertex AI la consuman.
Cómo compartir una reserva de Cloud TPU
En las siguientes secciones, se describen los diferentes métodos para compartir una reserva.
Habilita el uso compartido de una reserva de TPU
Puedes crear VMs de TPU en un proyecto de consumidor con una reserva que sea propiedad de otro proyecto. Todos los proyectos que comparten una reserva de TPU deben formar parte de la misma organización.
Para habilitar el uso compartido de una reserva de TPU, sigue estos pasos:
Otorga permiso al proyecto del propietario para crear y modificar reservas compartidas con el comando
gcloud resource-manager org-policies allow
:gcloud resource-manager org-policies allow \ compute.sharedReservationsOwnerProjects \ projects/OWNER_PROJECT_NUMBER --organization=ORGANIZATION_ID
Reemplaza lo siguiente:
- OWNER_PROJECT_NUMBER: El número de proyecto (no el ID del proyecto) de un proyecto de tu organización al que deseas otorgarle permisos para crear y modificar reservas compartidas.
- ORGANIZATION_ID: El ID de recurso de organización de tu organización.
Habilita el uso compartido de CUD a través de la Google Cloud consola. Para obtener instrucciones, consulta Habilita el uso compartido de CUD para compromisos basados en recursos.
Para habilitar el uso compartido, usa el comando
gcloud beta compute reservations update
con las marcas--share-setting=projects
y--share-with
:gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
Reemplaza lo siguiente:
- RESERVATION_NAME: Es el nombre de la reserva.
- OWNER_PROJECT_ID: El ID del proyecto que contiene la reserva.
- CONSUMER_PROJECT_IDS: Es una lista separada por comas de los IDs de los proyectos que pueden consumir esta reserva. Por ejemplo,
project-1,project-2
Puedes incluir hasta 100 proyectos de consumidor. Estos proyectos deben estar en la misma organización que el proyecto de propietario. No incluyas el proyecto de propietario. De forma predeterminada, el proyecto propietario ya tiene permiso para consumir la reserva. - ZONE: Es la zona en la que se encuentra la reserva.
Inhabilita el uso compartido de una reserva de TPU
Para inhabilitar el uso compartido de una reserva de TPU con una lista de proyectos de consumidor, usa el comando gcloud beta compute reservations
update
con las marcas --share-setting=projects
y --remove-share-with
:
gcloud compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-setting=projects \ --remove-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
Reemplaza lo siguiente:
- RESERVATION_NAME: Es el nombre de la reserva.
- OWNER_PROJECT_ID: El ID del proyecto que contiene la reserva.
- CONSUMER_PROJECT_IDS: Es una lista separada por comas de los IDs de los proyectos con los que deseas dejar de compartir la reserva. Por ejemplo,
project-1,project-2
- ZONE: Es la zona en la que se encuentra la reserva.
Para inhabilitar el uso compartido de una reserva de TPU con todos los proyectos de consumidor, cámbiala a una reserva local con el comando gcloud beta compute reservations
update
y la marca --share-setting=local
:
gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --share-setting=local \ --zone=ZONE
Reemplaza lo siguiente:
- RESERVATION_NAME: Es el nombre de la reserva.
- OWNER_PROJECT_ID: El ID del proyecto que contiene la reserva.
- ZONE: Es la zona en la que se encuentra la reserva.
Permite que Vertex AI use una reserva de TPU
Puedes permitir que los trabajos de entrenamiento o los trabajos de predicción en Vertex AI consuman una reserva a corto plazo en modo de calendario o una reserva a largo plazo solo después de su hora de inicio.
Para permitir que Vertex AI consuma una reserva de TPU, usa el comando gcloud beta compute
reservations update
con la marca --reservation-sharing-policy=ALLOW_ALL
:
gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE \ --reservation-sharing-policy=ALLOW_ALL
Reemplaza lo siguiente:
- RESERVATION_NAME: Es el nombre de la reserva.
- OWNER_PROJECT_ID: El ID del proyecto que contiene la reserva.
- ZONE: Es la zona de la reserva.
No permitas que Vertex AI use una reserva de TPU
Antes de impedir que Vertex AI consuma una reserva de TPU, detiene los trabajos de Vertex AI que la usen. De lo contrario, se producirán errores.
Para no permitir que Vertex AI consuma una reserva de TPU, usa el comando gcloud beta compute reservations
update
con la marca --reservation-sharing-policy=DISALLOW_ALL
:
gcloud beta compute reservations update RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE \ --reservation-sharing-policy=DISALLOW_ALL
Reemplaza lo siguiente:
- RESERVATION_NAME: Es el nombre de la reserva.
- OWNER_PROJECT_ID: El ID del proyecto que contiene la reserva.
- ZONE: Es la zona de la reserva.
Cómo obtener información sobre una reserva compartida
Solo puedes obtener información sobre una reserva compartida desde su proyecto propietario.
Para obtener información sobre una reserva compartida, usa el comando gcloud compute
reservations describe
:
gcloud compute reservations describe RESERVATION_NAME \ --project=OWNER_PROJECT_ID \ --zone=ZONE
Reemplaza lo siguiente:
- RESERVATION_NAME: Es el nombre de la reserva.
- OWNER_PROJECT_ID: El ID del proyecto que contiene la reserva.
- ZONE: Es la zona de la reserva.
La respuesta es similar al ejemplo a continuación:
aggregateReservation: [...] name: RESERVATION_NAME reservationSharingPolicy: serviceShareType: ALLOW_ALL resourceStatus: {} selfLink: https://www.googleapis.com/compute/v1/projects/OWNER_PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME shareSettings: projectMap: 'CONSUMER_PROJECT_1': projectId: 'CONSUMER_PROJECT_1' 'CONSUMER_PROJECT_2': projectId: 'CONSUMER_PROJECT_2' shareType: SPECIFIC_PROJECTS specificReservationRequired: true status: READY zone: https://www.googleapis.com/compute/v1/projects/OWNER_PROJECT_ID/zones/ZONE