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 concreto, 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 en su lugar.

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

Antes de comenzar

  1. Si nunca usaste Batch, revisa Comienza a usar Batch y habilitar Batch completando el requisitos previos para los proyectos y usuarios.
  2. A fin de obtener los permisos que necesitas para crear un trabajo, solicita a tu administrador que te otorgue el los siguientes roles de IAM:

    Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

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 quieres usar una plantilla de instancias de VM mientras creas este trabajo o usar una un disco de arranque personalizado preexistente, completa los siguientes pasos:

    1. Crea o identifica un disco de arranque personalizado.

      Para conocer los requisitos del disco de arranque de Batch, consulta este documento y la descripción general del entorno del SO de la VM. Para obtener instrucciones sobre cómo 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 necesitas 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.

      Para obtener instrucciones sobre cómo crear y ejecutar la tarea, consulta Cómo definir recursos de trabajo con una plantilla de instancia 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 con el campo de disco de arranque (bootDisk) cuando creas y ejecutas un trabajo con la CLI de gcloud o la API de Batch.

    Específicamente, puedes personalizar el disco de arranque configurando los subcampos de la imagen del SO de la VM (image), el tipo de disco persistente (type) o el tamaño (sizeGb). Batch establece un valor predeterminado para cualquiera de estos subcampos que 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 archivo Campo y subcampos de bootDisk.

    Por ejemplo, para crear un trabajo de secuencia de comandos básico que utiliza un nuevo arranque personalizado disco, 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: Un nombre de recurso relativo de la imagen del SO de la VM. Usa una de las siguientes opciones:

      • Especifica un prefijo de SO por lotes. Para usar la versión más reciente de un SO de Batch específico, usa el con el siguiente formato:

        BATCH_OS_PREFIX
        

        Reemplaza BATCH_OS_PREFIX por uno de los siguientes elementos: Prefijos de imagen de SO de VM por lotes para ejemplo, batch-debian es el prefijo para el SO Batch Debian.

      • Especifica una familia de imágenes. Para usar la última imagen de un familia de imágenes específica, usa el siguiente formato:

        projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
        

        Reemplaza lo siguiente:

        • IMAGE_PROJECT_ID: el ID del proyecto del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes de lotes, especifica batch-custom-image.
        • IMAGE_FAMILY: Es la familia de imágenes, que incluye una o más imágenes específicas y representa el tipo y versión principal del SO. Por ejemplo, para ver todas las familias de imágenes de SO de VM desde Batch, consulta una lista de imágenes de SO de VM.
      • Especifica una versión de imagen. Para usar una versión específica de una imagen del SO de la 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 de lotes, especifica batch-custom-image.
        • IMAGE_NAME: El nombre de la imagen, que representa una versión específica de una imagen de SO de VM. Por ejemplo, para ver todas las versiones de imagen de SO de la VM Batch, consulta una lista de imágenes de 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 de la un 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: 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: La ubicación de este trabajo.
    • JSON_CONFIGURATION_FILE: Es la ruta de acceso a la 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. Para especificar la imagen de SO de la VM para el trabajo, incluye la Campo y subcampos de bootDisk. Por ejemplo, para crear un trabajo de secuencia de comandos básico que utiliza un nuevo arranque personalizado disco, 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: un nombre de recurso relativo de la imagen de SO de la VM. Usa una de las siguientes opciones:

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

      BATCH_OS_PREFIX
      

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

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

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      Reemplaza lo siguiente:

      • IMAGE_PROJECT_ID: el ID del proyecto del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes de lotes, especifica batch-custom-image.
      • IMAGE_FAMILY: Es la familia de imágenes, que incluye una o más imágenes específicas y representa el tipo y versión principal del SO. Por ejemplo, para ver todas las familias de imagen de SO de la VM de Batch, consulta una lista de imágenes de SO de la VM.
    • Especifica una versión de imagen. Para usar una versión específica del SO de una VM utiliza el siguiente formato:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      Reemplaza lo siguiente:

      • IMAGE_PROJECT_ID: el ID del proyecto del proyecto que contiene la imagen. Por ejemplo, para todos Imágenes por lotes, especifica batch-custom-image.
      • IMAGE_NAME: El nombre de la imagen, que representa una versión específica de una imagen de SO de VM. Por ejemplo, para ver todas las versiones de imagen de SO de la VM Batch, consulta una lista de imágenes de 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?