Crea un MIG con porciones de Cloud TPU de host único
En este documento, se describe cómo crear un grupo de instancias administrado (MIG) con varias porciones de TPU de host único independientes.
Requisitos previos
Completa los siguientes requisitos previos:
- Crea un proyecto para tus TPU como se describe en Configura un proyecto para TPU.
- Determina tus requisitos de TPU como se describe en Planifica tus recursos.
Crea un MIG con varias porciones de TPU de host único
Para crear varias VMs de TPU independientes en un MIG, sigue estos pasos:
- Crea una plantilla de instancias.
- Crea el MIG.
Crea una plantilla de instancias
Las configuraciones de las plantillas de instancias varían según la opción de consumo que uses: a pedido, Spot, reservas o inicio flexible. Para obtener más información sobre las opciones de consumo, consulta Planifica tus recursos TPU .
Crea una plantilla de instancias para una VM de TPU a pedido
Con el siguiente comando, se crea una plantilla de instancias que usa la opción de consumo on-demand:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias.MACHINE_TYPE: Es el tipo de máquina de la VM de TPU (por ejemplo,ct6e-standard-8t).IMAGE_FAMILY: Es la familia de imágenes de SO para la VM de TPU. Si quieres instalar una versión específica del SO, usa la marca--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO.IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, esubuntu-os-accelerator-images.
Crea una plantilla de instancias para una VM Spot de TPU
Con el siguiente comando, se crea una plantilla de instancias que usa la opción de consumo Spot:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=STOP \
--provisioning-model=SPOT \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT",
"instanceTerminationAction": "STOP"
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias.MACHINE_TYPE: Es el tipo de máquina de la VM de TPU (por ejemplo,ct6e-standard-8t).IMAGE_FAMILY: Es la familia de imágenes de SO para la VM de TPU. Si deseas instalar una versión específica del SO, usa la marca--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO.IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, esubuntu-os-accelerator-images.
Crea una plantilla de instancias para una VM de TPU vinculada a una reserva
Con el siguiente comando, se crea una plantilla de instancias que usa la opción de consumo vinculada a la reserva:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--reservation-affinity=specific \
--provisioning-model=reservation-bound \
--reservation=RESERVATION_NAME \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "RESERVATION_BOUND",
"instanceTerminationAction": "DELETE"
},
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_NAME"
]
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias.MACHINE_TYPE: Es el tipo de máquina para la VM de TPU (por ejemplo,ct6e-standard-8t).RESERVATION_NAME: Es el nombre de una reserva específica que deseas consumir. En el caso de las reservas en el modo All Capacity, puedes orientar un bloque o subbloque especificando la URL de reserva de la siguiente manera:Especifica un bloque:
RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAMEEspecifica un subbloque:
RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME/reservationSubBlocks/RESERVATION_SUBBLOCK_NAME
IMAGE_FAMILY: Es la familia de imágenes de SO para la VM de TPU. Si quieres instalar una versión específica del SO, usa la marca--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO.IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, esubuntu-os-accelerator-images.
Crea una plantilla de instancias para una VM de TPU de inicio flexible
Con el siguiente comando, se crea una plantilla de instancias que usa la opción de consumo Inicio flexible:
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--instance-termination-action=DELETE \
--provisioning-model=FLEX_START \
--max-run-duration=DURATION \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
}
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START",
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": "DURATION"
}
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .INSTANCE_TEMPLATE_NAME: Es el nombre de la plantilla de instancias.MACHINE_TYPE: Es el tipo de máquina para la VM de TPU (por ejemplo,ct6e-standard-8t).DURATION: Es la duración máxima de la ejecución de la VM de TPU. En REST, especifica esto como una cadena que contenga la cantidad de segundos seguida de "s" (por ejemplo,3600spara 1 hora o604800spara 7 días).IMAGE_FAMILY: Es la familia de imágenes de SO para la VM de TPU. Si deseas instalar una versión específica del SO, usa la marca--image. Para obtener más información sobre las imágenes de SO, consulta Imágenes de SO.IMAGE_PROJECT: Es el proyecto que contiene la imagen de SO. Para las imágenes de TPU, esubuntu-os-accelerator-images.
Crear un MIG
Para crear un MIG zonal que contenga una porción de TPU de host único, usa el siguiente comando:
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL"
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .MIG_NAME: Es el nombre de tu MIG.MIG_SIZE: Es el tamaño del MIG.INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear instancias en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancias. Especifica uno de los siguientes valores:- Para una plantilla de instancias regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Para una plantilla de instancias global:
INSTANCE_TEMPLATE_ID
- Para una plantilla de instancias regional:
ZONE: Es la zona del MIG.
Para crear un MIG regional que contenga una porción de TPU de host único, usa el siguiente comando:
gcloud
gcloud compute instance-groups managed create MIG_NAME \
--size=MIG_SIZE \
--template=INSTANCE_TEMPLATE_URL \
--region=REGION \
--target-distribution-shape=ANY_SINGLE_ZONE \
--instance-redistribution-type=none
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"name": "MIG_NAME",
"targetSize": MIG_SIZE,
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"distributionPolicy": {
"targetShape": "ANY_SINGLE_ZONE"
},
"updatePolicy": {
"instanceRedistributionType": "NONE"
}
}' \
"https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers"
Reemplaza los marcadores de posición que se indican más abajo:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .MIG_NAME: Es el nombre de tu MIG.MIG_SIZE: Es la cantidad de VMs en el MIG.INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear instancias en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancias. Especifica uno de los siguientes valores:- Para una plantilla de instancias regional:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Para una plantilla de instancias global:
INSTANCE_TEMPLATE_ID
- Para una plantilla de instancias regional:
ZONE: Es la zona en la que deseas que se aprovisione el MIG.REGION: Es la región en la que deseas que se aprovisione el MIG.
Crea VMs con nombres personalizados en un MIG
Puedes crear VMs en un MIG especificando nombres personalizados para cada VM. Esto es útil para depurar y garantizar que las instancias se creen en un orden específico.
gcloud
Crea una VM con un nombre personalizado con el
comando create-instance
y especifica la marca --instance. Para crear varias VMs, repite el comando
para cada una. De lo contrario, usa el método de la API de REST para especificar varias VMs
en una sola solicitud.
Para un MIG zonal, usa el siguiente comando:
gcloud compute instance-groups managed create-instance MIG_NAME \ --zone=ZONE \ --instance=INSTANCE_NAMEPara un MIG regional, usa el siguiente comando:
gcloud compute instance-groups managed create-instance MIG_NAME \ --region=REGION \ --instance=INSTANCE_NAME
Reemplaza los marcadores de posición que se indican más abajo:
REST
Crea VMs con nombres personalizados con uno de los siguientes métodos de la API de REST:
Para un MIG zonal, usa el
instanceGroupManagers.createInstances.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }Para un MIG regional, usa el
regionInstanceGroupManagers.createInstances.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" }, ... ] }
Reemplaza los marcadores de posición que se indican más abajo:
¿Qué sigue?
- Obtén información sobre las VMs de TPU y los MIG.
- Aprende a crear un MIG con una porción de Cloud TPU de varios hosts.
- Aprende a administrar las VMs de TPU.
- Obtén información sobre las TPU en GKE.