Criar e executar um job que use discos de inicialização personalizados

Esta página descreve como personalizar os discos permanentes usados para inicializar cada da máquina virtual (VM) em que um job é executado.

Especificamente, você pode personalizar o tamanho, o tipo e/ou a Imagem do sistema operacional (SO) da VM para um disco de inicialização. Se você quiser personalizar apenas a imagem do SO da VM, consulte Especificar a imagem do SO da VM para um job como alternativa.

Para saber mais sobre discos de inicialização e quando configurá-los, consulte Visão geral do ambiente do SO da VM.

Antes de começar

Criar e executar um job que usa um disco de inicialização personalizado

Selecione um disco de inicialização personalizado ao criar um job dos seguintes métodos:

  • Usar um modelo de instância do Compute Engine que especifique um disco de inicialização personalizado pré-existente. Se você quiser usar um modelo de instância de VM ao criar esse job ou um disco de inicialização personalizado pré-existente, siga estas etapas:

    1. Crie ou identifique um disco de inicialização personalizado.

      Para requisitos de disco de inicialização para o Batch, consulte este documento e consulte a visão geral do ambiente do SO da VM. Para instruções sobre como criar um disco de inicialização, consulte Criar um disco de inicialização personalizado na documentação do Compute Engine.

    2. Crie ou identifique um modelo de instância de VM que inclua esse disco de inicialização personalizado.

      Para instruções sobre como criar um modelo de instância de VM, consulte Criar modelos de instâncias na documentação do Compute Engine.

    3. Crie e execute um job que inclua esse modelo de instância de VM.

      Para instruções sobre como criar e executar o job, consulte Defina recursos de job usando um modelo de instância de VM.

  • Use o campo "Disco de inicialização" para especificar um novo disco de inicialização personalizado. Como explicado nas instruções a seguir, é possível definir um novo disco de inicialização personalizado usando o campo de disco de inicialização (bootDisk) quando você cria e executa um job usando o CLI gcloud ou API Batch.

    Você pode personalizar o disco de inicialização configurando Imagem do SO da VM (image), tipo de disco permanente (type) e/ou subcampos de tamanho (sizeGb). O Batch define um valor padrão para qualquer um desses subcampos que que você optar por omitir.

gcloud

  1. Crie um arquivo JSON que especifique os detalhes de configuração do job. Para especificar um novo disco de inicialização personalizado para as VMs do job, inclua o Campo e subcampos bootDisk.

    Por exemplo, para criar um job de script básico que usa uma nova inicialização disco, crie um arquivo JSON com o seguinte conteúdo:

    {
        "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"
      }
    }
    

    Substitua:

    • VM_OS_IMAGE_URI: um nome de recurso relativo da imagem do SO da VM. Use uma das seguintes opções:

      • Especificar um prefixo do SO do Batch. Para usar a versão mais recente imagem de um SO do Batch específico, use o formato:

        BATCH_OS_PREFIX
        

        Substitua BATCH_OS_PREFIX por uma das Prefixos de imagens do SO da VM em lote: para Por exemplo, batch-debian é o prefixo o Batch Debian OS.

      • Especifique uma família de imagens. Para usar a imagem mais recente de um família de imagens específica, use o seguinte formato:

        projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
        

        Substitua:

        • IMAGE_PROJECT_ID: o ID do projeto do projeto que contém a imagem. Por exemplo, para todos os Imagens em lote, especifique batch-custom-image.
        • IMAGE_FAMILY: a família de imagens, que inclui uma ou mais imagens específicas e representa o tipo e versão principal do SO. Por exemplo, para ver todas as famílias de imagens do SO da VM da Lote, veja uma lista de imagens do SO da VM.
      • Especifique uma versão da imagem. Para usar uma versão específica de um SO de VM use o seguinte formato:

        projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
        

        Substitua:

        • IMAGE_PROJECT_ID: o ID do projeto do projeto que contém a imagem. Por exemplo, para todos os Imagens em lote, especifique batch-custom-image.
        • IMAGE_NAME: o nome da imagem, que representa uma versão específica de uma imagem do SO da VM. Por exemplo, para ver todas as versões de imagem do SO da VM da Lote, veja uma lista de imagens do SO da VM.
    • BOOT_DISK_TYPE: o tipo de disco do disco de inicialização, seja pd-standard, pd-balanced pd-ssd ou pd-extreme. O tipo de disco padrão para discos de inicialização é pd-balanced.

    • BOOT_DISK_SIZE: o tamanho do um novo disco permanente de inicialização em GB. Esse valor precisa obedecer às todos os requisitos de tamanho do disco de inicialização.

  2. Para criar o job, execute o seguinte Comando gcloud batch jobs submit:

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

    Substitua:

    • JOB_NAME: o nome do job.
    • LOCATION: o location do job.
    • JSON_CONFIGURATION_FILE: o caminho para o Arquivo JSON com os detalhes de configuração do job.

API

Para criar um job usando a API Batch, use o Método jobs.create e especifique os detalhes de configuração dele. Para especificar a imagem do SO da VM para o job, inclua o Campo e subcampos bootDisk. Por exemplo, para criar um job de script básico que usa uma nova inicialização disco, faça a seguinte solicitação 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"
  }
}

Substitua:

  • VM_OS_IMAGE_URI: um nome de recurso relativo da imagem do SO da VM. Use uma das seguintes opções:

    • Especificar um prefixo do SO do Batch. Para usar a versão mais recente imagem de um SO do Batch específico, use o formato:

      BATCH_OS_PREFIX
      

      Substitua BATCH_OS_PREFIX por uma das Prefixos de imagens do SO da VM em lote: para Por exemplo, batch-debian é o prefixo o Batch Debian OS.

    • Especifique uma família de imagens. Para usar a imagem mais recente de um família de imagens, use o seguinte formato:

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      Substitua:

      • IMAGE_PROJECT_ID: o ID do projeto do projeto que contém a imagem. Por exemplo, para todos os Imagens em lote, especifique batch-custom-image.
      • IMAGE_FAMILY: a família de imagens, que inclui uma ou mais imagens específicas e representa o tipo e versão principal do SO. Por exemplo, para ver todas as famílias de imagens do SO da VM da Lote, veja uma lista de imagens do SO da VM.
    • Especifique uma versão da imagem. Para usar uma versão específica de um SO de VM use o seguinte formato:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      Substitua:

      • IMAGE_PROJECT_ID: o ID do projeto do projeto que contém a imagem. Por exemplo, para todos os Imagens em lote, especifique batch-custom-image.
      • IMAGE_NAME: o nome da imagem, que representa uma versão específica de uma imagem do SO da VM. Por exemplo, para ver todas as versões de imagem do SO da VM da Lote, veja uma lista de imagens do SO da VM.
  • BOOT_DISK_TYPE: o tipo de disco do disco de inicialização, seja pd-standard, pd-balanced pd-ssd ou pd-extreme. O tipo de disco padrão para discos de inicialização é pd-balanced.

  • BOOT_DISK_SIZE: o tamanho do um novo disco permanente de inicialização em GB. Esse valor precisa obedecer às todos os requisitos de tamanho do disco de inicialização.

A seguir