Crie e execute uma tarefa que use discos de arranque personalizados

Esta página descreve como personalizar os discos persistentes usados para arrancar cada instância de máquina virtual (VM) na qual um trabalho é executado.

Em concreto, pode personalizar o tamanho, o tipo e/ou a imagem do sistema operativo (SO) da VM para um disco de arranque. Se quiser apenas personalizar a imagem do SO da VM, consulte Especifique a imagem do SO da VM para uma tarefa em alternativa.

Para saber mais sobre os discos de arranque e quando os configurar, consulte a vista geral do ambiente do SO da VM.

Antes de começar

  1. Se nunca usou o Batch, reveja o artigo Comece a usar o Batch e ative o Batch concluindo os pré-requisitos para projetos e utilizadores.
  2. Para receber as autorizações de que precisa para criar uma tarefa, peça ao seu administrador para lhe conceder as seguintes funções de IAM:

    Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

    Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Crie e execute uma tarefa que use um disco de arranque personalizado

Especifique um disco de arranque personalizado quando estiver a criar uma tarefa selecionando um dos seguintes métodos:

  • Use um modelo de instância do Compute Engine que especifique um disco de arranque personalizado pré-existente. Se quiser usar um modelo de instância de VM ao criar esta tarefa ou usar um disco de arranque personalizado pré-existente, conclua os seguintes passos:

    1. Crie ou identifique um disco de arranque personalizado.

      Para ver os requisitos do disco de arranque para o Batch, consulte este documento e a vista geral do ambiente do SO da VM. Para obter instruções sobre como criar um disco de arranque, consulte o artigo Crie um disco de arranque personalizado na documentação do Compute Engine.

    2. Crie ou identifique um modelo de instância de VM que inclua este disco de arranque personalizado.

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

    3. Crie e execute uma tarefa que inclua este modelo de instância de VM.

      Para obter instruções sobre como criar e executar a tarefa, consulte o artigo Defina recursos de tarefas com um modelo de instância de VM.

  • Use o campo do disco de arranque para especificar um disco de arranque personalizado novo. Conforme explicado nas instruções seguintes, pode definir um novo disco de arranque personalizado através do campo boot disk (bootDisk) quando cria e executa uma tarefa através da CLI gcloud ou da API Batch.

    Em concreto, pode personalizar o disco de arranque configurando os subcampos imagem do SO da VM (image), tipo de disco persistente (type) e/ou tamanho (sizeGb). O processamento em lote define um valor predefinido para qualquer um destes subcampos que optar por omitir.

gcloud

  1. Crie um ficheiro JSON que especifique os detalhes de configuração da sua tarefa. Para especificar um novo disco de arranque personalizado para as VMs da tarefa, inclua o campo bootDisk e os subcampos.

    Por exemplo, para criar uma tarefa de script básica que use um novo disco de arranque personalizado, crie um ficheiro 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 o seguinte:

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

      • Especifique um prefixo do SO em lote. Para usar a imagem mais recente de um SO de lote específico, use o seguinte formato:

        BATCH_OS_PREFIX
        

        Substitua BATCH_OS_PREFIX por um dos prefixos de imagem do SO de VM em lote. Por exemplo, batch-debian é o prefixo do SO Debian em lote.

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

        projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
        

        Substitua o seguinte:

        • IMAGE_PROJECT_ID: o ID do projeto do projeto que contém a imagem. Por exemplo, para todas as 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 a versão principal do SO. Por exemplo, para ver todas as famílias de imagens do SO de VMs do Batch, veja uma lista de imagens do SO de VMs.
      • Especifique uma versão da imagem. Para usar uma versão específica de uma imagem do SO de VM, use o seguinte formato:

        projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
        

        Substitua o seguinte:

        • IMAGE_PROJECT_ID: o ID do projeto do projeto que contém a imagem. Por exemplo, para todas as 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 de uma VM. Por exemplo, para ver todas as versões de imagens do SO de VMs do Batch, veja uma lista de imagens do SO de VMs.
    • BOOT_DISK_TYPE: o tipo de disco do disco de arranque, pd-standard, pd-balanced, pd-ssd ou pd-extreme. O tipo de disco predefinido para discos de arranque é pd-balanced.

    • BOOT_DISK_SIZE: o tamanho do novo disco de arranque persistente em GB. Este valor tem de estar em conformidade com todos os requisitos de tamanho do disco de arranque.

  2. Para criar a tarefa, execute o seguinte comando gcloud batch jobs submit:

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

    Substitua o seguinte:

    • JOB_NAME: o nome desta tarefa.
    • LOCATION: a localização para este trabalho.
    • JSON_CONFIGURATION_FILE: o caminho para o ficheiro JSON com os detalhes de configuração da tarefa.

API

Para criar uma tarefa através da API Batch, use o método jobs.create e especifique os detalhes de configuração da tarefa. Para especificar a imagem do SO da VM para a tarefa, inclua o campo bootDisk e os subcampos. Por exemplo, para criar uma tarefa de script básica que use um novo disco de arranque personalizado, faça o seguinte pedido 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 o seguinte:

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

    • Especifique um prefixo do SO em lote. Para usar a imagem mais recente de um SO de lote específico, use o seguinte formato:

      BATCH_OS_PREFIX
      

      Substitua BATCH_OS_PREFIX por um dos prefixos de imagem do SO de VM em lote. Por exemplo, batch-debian é o prefixo do SO Debian em lote.

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

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      Substitua o seguinte:

      • IMAGE_PROJECT_ID: o ID do projeto do projeto que contém a imagem. Por exemplo, para todas as 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 a versão principal do SO. Por exemplo, para ver todas as famílias de imagens do SO de VMs do Batch, veja uma lista de imagens do SO de VMs.
    • Especifique uma versão da imagem. Para usar uma versão específica de uma imagem do SO de VM, use o seguinte formato:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      Substitua o seguinte:

      • IMAGE_PROJECT_ID: o ID do projeto do projeto que contém a imagem. Por exemplo, para todas as 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 de uma VM. Por exemplo, para ver todas as versões de imagens do SO de VMs do Batch, veja uma lista de imagens do SO de VMs.
  • BOOT_DISK_TYPE: o tipo de disco do disco de arranque, pd-standard, pd-balanced, pd-ssd ou pd-extreme. O tipo de disco predefinido para discos de arranque é pd-balanced.

  • BOOT_DISK_SIZE: o tamanho do novo disco de arranque persistente em GB. Este valor tem de estar em conformidade com todos os requisitos de tamanho do disco de arranque.

O que se segue?