Crea y ejecuta un trabajo que use discos de arranque personalizados

En esta página, se describe cómo personalizar los discos persistentes que se usan para iniciar cada instancia de máquina virtual (VM) en la que se ejecuta un trabajo.

En particular, puedes personalizar el tamaño, el tipo o la imagen del sistema operativo (SO) de la VM para un disco de arranque. Si solo quieres personalizar la imagen de SO de la VM, consulta Especifica la imagen de SO de la VM para un trabajo.

Para obtener más información sobre los discos de arranque y cuándo configurarlos, consulta la Descripción general del entorno del SO de la VM.

Antes de comenzar

Crea y ejecuta un trabajo que use un disco de arranque personalizado

Para especificar un disco de arranque personalizado cuando crees un trabajo, selecciona uno de los siguientes métodos:

  • Usar una plantilla de instancias de Compute Engine que especifique un disco de arranque personalizado preexistente Si deseas usar una plantilla de instancias de VM mientras creas este trabajo o utilizar un disco de arranque personalizado preexistente, completa los siguientes pasos:

    1. Crea o identifica un disco de arranque personalizado.

      Si deseas conocer los requisitos del disco de arranque para Batch, consulta este documento y la descripción general del entorno del SO de la VM. Si quieres obtener instrucciones para crear un disco de arranque, consulta Crea un disco de arranque personalizado en la documentación de Compute Engine.

    2. Crea o identifica una plantilla de instancias de VM que incluya este disco de arranque personalizado.

      Si quieres obtener instrucciones para crear una plantilla de instancias de VM, consulta Crea plantillas de instancias en la documentación de Compute Engine.

    3. Crea y ejecuta un trabajo que incluya esta plantilla de instancias de VM.

      Si deseas obtener instrucciones para crear y ejecutar el trabajo, consulta Define los recursos del trabajo mediante una plantilla de instancias de VM.

  • Usa el campo de disco de arranque para especificar un nuevo disco de arranque personalizado. Como se explica en las siguientes instrucciones, puedes definir un nuevo disco de arranque personalizado mediante el campo de disco de arranque (bootDisk) cuando creas y ejecutas un trabajo con gcloud CLI o la API de Batch.

    En particular, puedes personalizar el disco de arranque mediante la configuración de los subcampos de la imagen de SO (image), del tipo de disco persistente (type) o del tamaño (sizeGb). Batch establece un valor predeterminado para cualquiera de estos subcampos que elijas omitir.

gcloud

  1. Crea un archivo JSON que especifique los detalles de configuración de tu trabajo. Si quieres especificar un nuevo disco de arranque personalizado para las VMs del trabajo, incluye el campo bootDisk y los subcampos.

    Por ejemplo, para crear un trabajo de secuencia de comandos básico que use un nuevo disco de arranque personalizado, crea un archivo JSON con el siguiente contenido:

    {
        "taskGroups": [
            {
                "taskSpec": {
                    "runnables": [
                        {
                            "script": {
                                "text": "echo Hello world from task ${BATCH_TASK_INDEX}."
                            }
                        }
                    ]
                },
                "taskCount": 3,
                "parallelism": 1
            }
        ],
        "allocationPolicy": {
          "instances": [
            {
              "policy": {
                "bootDisk": {
                  "image": "VM_OS_IMAGE_URI",
                  "type": "BOOT_DISK_TYPE",
                  "sizeGb": BOOT_DISK_SIZE
                }
              }
            }
          ]
        },
        "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    

    Reemplaza lo siguiente:

    • VM_OS_IMAGE_URI: Es un nombre de recurso relativo de la imagen de SO de la VM. Usa una de las siguientes opciones:

      • Especifica un prefijo de SO de Batch. Para usar la imagen más reciente de un SO de Batch específico, usa el siguiente formato:

        BATCH_OS_PREFIX
        

        Reemplaza BATCH_OS_PREFIX por uno de los prefijos de imagen de SO de VM de Batch; por ejemplo, batch-debian es el prefijo del SO de Debian de Batch.

      • Especifica una familia de imágenes. Para usar la imagen más reciente de una familia de imágenes específica, usa el siguiente formato:

        projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
        

        Reemplaza lo siguiente:

      • Especifica una versión de la imagen. Para usar una versión específica de una imagen de SO de VM, usa el siguiente formato:

        projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
        

        Reemplaza lo siguiente:

        • IMAGE_PROJECT_ID: Es el ID del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes por lotes, especifica batch-custom-image.
        • IMAGE_NAME: Es el nombre de la imagen, que representa una versión específica de una imagen de SO de la VM. Por ejemplo, para ver todas las versiones de imagen de SO de la VM de Batch, consulta una lista de las imágenes del SO de la VM.
    • BOOT_DISK_TYPE: Es el tipo de disco del disco de arranque, ya sea pd-standard, pd-balanced, pd-ssd o pd-extreme. El tipo de disco predeterminado para los discos de arranque es pd-balanced.

    • BOOT_DISK_SIZE: Es el tamaño del nuevo disco de arranque persistente en GB. Este valor debe cumplir con todos los requisitos de tamaño del disco de arranque.

  2. Para crear el trabajo, ejecuta el siguiente comando gcloud batch jobs submit:

    gcloud batch jobs submit JOB_NAME \
        --location LOCATION \
        --config JSON_CONFIGURATION_FILE
    

    Reemplaza lo siguiente:

    • JOB_NAME: Es el nombre de este trabajo.
    • LOCATION: Es la ubicación de este trabajo.
    • JSON_CONFIGURATION_FILE: Es la ruta al archivo JSON con los detalles de configuración del trabajo.

API

Para crear un trabajo con la API de Batch, usa el método jobs.create y especifica los detalles de configuración de tu trabajo. Si deseas especificar la imagen de SO de la VM para el trabajo, incluye el campo bootDisk y los subcampos. Por ejemplo, para crear un trabajo de secuencia de comandos básico que use un nuevo disco de arranque personalizado, realiza la siguiente solicitud POST:

POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME

{
    "taskGroups": [
        {
            "taskSpec": {
                "runnables": [
                    {
                        "script": {
                            "text": "echo Hello world from task ${BATCH_TASK_INDEX}."
                        }
                    }
                ]
            },
            "taskCount": 3,
            "parallelism": 1
        }
    ],
    "allocationPolicy": {
      "instances": [
        {
          "policy": {
            "bootDisk": {
              "image": "VM_OS_IMAGE_URI",
              "type": "BOOT_DISK_TYPE",
              "sizeGb": BOOT_DISK_SIZE
            }
          }
        }
      ]
    },
    "logsPolicy": {
    "destination": "CLOUD_LOGGING"
  }
}

Reemplaza lo siguiente:

  • VM_OS_IMAGE_URI: Es un nombre de recurso relativo de la imagen de SO de la VM. Usa una de las siguientes opciones:

    • Especifica un prefijo de SO de Batch. Para usar la imagen más reciente de un SO de Batch específico, usa el siguiente formato:

      BATCH_OS_PREFIX
      

      Reemplaza BATCH_OS_PREFIX por uno de los prefijos de imagen de SO de VM de Batch; por ejemplo, batch-debian es el prefijo del SO de Debian de Batch.

    • Especifica una familia de imágenes. Para usar la imagen más reciente de una familia de imágenes específica, usa el siguiente formato:

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      Reemplaza lo siguiente:

    • Especifica una versión de la imagen. Para usar una versión específica de una imagen de SO de VM, usa el siguiente formato:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      Reemplaza lo siguiente:

      • IMAGE_PROJECT_ID: Es el ID del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes por lotes, especifica batch-custom-image.
      • IMAGE_NAME: Es el nombre de la imagen, que representa una versión específica de una imagen de SO de la VM. Por ejemplo, para ver todas las versiones de imagen de SO de la VM de Batch, consulta una lista de las imágenes del SO de la VM.
  • BOOT_DISK_TYPE: Es el tipo de disco del disco de arranque, ya sea pd-standard, pd-balanced, pd-ssd o pd-extreme. El tipo de disco predeterminado para los discos de arranque es pd-balanced.

  • BOOT_DISK_SIZE: Es el tamaño del nuevo disco de arranque persistente en GB. Este valor debe cumplir con todos los requisitos de tamaño del disco de arranque.

¿Qué sigue?