Créer et exécuter un job qui utilise des disques de démarrage personnalisés

Cette page explique comment personnaliser les disques persistants utilisés pour démarrer chaque instance de machine virtuelle (VM) sur laquelle une tâche s'exécute.

Plus précisément, vous pouvez personnaliser la taille, le type et/ou l'image du système d'exploitation (OS) de VM d'un disque de démarrage. Si vous souhaitez personnaliser uniquement l'image d'OS de la VM, consultez plutôt la section Spécifier l'image d'OS de la VM pour une tâche.

Pour en savoir plus sur les disques de démarrage et sur leur configuration, consultez la page Présentation de l'environnement d'OS de VM.

Avant de commencer

Créer et exécuter un job qui utilise un disque de démarrage personnalisé

Spécifiez un disque de démarrage personnalisé lorsque vous créez une tâche en sélectionnant l'une des méthodes suivantes:

  • Utilisez un modèle d'instance Compute Engine qui spécifie un disque de démarrage personnalisé préexistant. Si vous souhaitez utiliser un modèle d'instance de VM lors de la création de ce job ou un disque de démarrage personnalisé préexistant, procédez comme suit:

    1. Créez ou identifiez un disque de démarrage personnalisé.

      Pour connaître les exigences concernant les disque de démarrage Batch, consultez ce document et la page Présentation de l'environnement de système d'exploitation de VM. Pour savoir comment créer un disque de démarrage, consultez la section Créer un disque de démarrage personnalisé dans la documentation Compute Engine.

    2. Créez ou identifiez un modèle d'instance de VM incluant ce disque de démarrage personnalisé.

      Pour savoir comment créer un modèle d'instance de VM, consultez la section Créer des modèles d'instance dans la documentation Compute Engine.

    3. Créez et exécutez un job qui inclut ce modèle d'instance de VM.

      Pour savoir comment créer et exécuter le job, consultez la section Définir les ressources de la tâche à l'aide d'un modèle d'instance de VM.

  • Utilisez le champ du disque de démarrage pour spécifier un nouveau disque de démarrage personnalisé. Comme l'expliquent les instructions suivantes, vous pouvez définir un nouveau disque de démarrage personnalisé à l'aide du champ Disque de démarrage (bootDisk) lorsque vous créez et exécutez une tâche à l'aide de gcloud CLI ou de l'API Batch.

    Plus précisément, vous pouvez personnaliser le disque de démarrage en configurant les sous-champs "Image d'OS de la VM" (image), "Type de disque persistant" (type) et/ou "Taille" (sizeGb). Batch définit une valeur par défaut pour tous les sous-champs que vous choisissez d'omettre.

gcloud

  1. Créez un fichier JSON qui spécifie les détails de configuration de votre job. Pour spécifier un nouveau disque de démarrage personnalisé pour les VM du job, incluez le champ et les sous-champs bootDisk.

    Par exemple, pour créer une tâche de script de base utilisant un nouveau disque de démarrage personnalisé, créez un fichier JSON avec le contenu suivant:

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

    Remplacez les éléments suivants :

    • VM_OS_IMAGE_URI: nom de ressource relatif de l'image de l'OS de la VM. Utilisez l'une des options suivantes :

      • Spécifiez un préfixe Batch OS. Pour utiliser la dernière image d'un Batch OS spécifique, utilisez le format suivant:

        BATCH_OS_PREFIX
        

        Remplacez BATCH_OS_PREFIX par l'un des préfixes d'image d'OS de VM par lot. Par exemple, batch-debian est le préfixe du système d'exploitation Batch Debian.

      • Spécifiez une famille d'images. Pour utiliser la dernière image d'une famille d'images spécifique, respectez le format suivant:

        projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
        

        Remplacez les éléments suivants :

        • IMAGE_PROJECT_ID: ID du projet contenant l'image. Par exemple, pour toutes les images de traitement par lot, spécifiez batch-custom-image.
        • IMAGE_FAMILY: famille d'images, qui comprend une ou plusieurs images spécifiques, et représente le type et la version majeure de l'OS. Par exemple, pour afficher toutes les familles d'images d'OS de VM de Batch, affichez la liste des images d'OS de VM.
      • Spécifiez une version d'image. Pour utiliser une version spécifique d'une image d'OS de VM, utilisez le format suivant:

        projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
        

        Remplacez les éléments suivants :

        • IMAGE_PROJECT_ID: ID du projet contenant l'image. Par exemple, pour toutes les images de traitement par lot, spécifiez batch-custom-image.
        • IMAGE_NAME: nom de l'image, qui représente une version spécifique d'une image d'OS de VM. Par exemple, pour afficher toutes les versions de l'image d'OS de VM de Batch, affichez la liste des images d'OS de VM.
    • BOOT_DISK_TYPE: type de disque du disque de démarrage (pd-standard, pd-balanced, pd-ssd ou pd-extreme). Le type de disque par défaut pour les disques de démarrage est pd-balanced.

    • BOOT_DISK_SIZE: taille du nouveau disque de démarrage persistant en Go. Cette valeur doit respecter toutes les exigences de taille du disque de démarrage.

  2. Pour créer la tâche, exécutez la commande gcloud batch jobs submit suivante:

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

    Remplacez les éléments suivants :

    • JOB_NAME: nom de la tâche.
    • LOCATION: emplacement de cette tâche.
    • JSON_CONFIGURATION_FILE: chemin d'accès au fichier JSON contenant les détails de configuration de la tâche.

API

Pour créer une tâche à l'aide de l'API Batch, utilisez la méthode jobs.create et spécifiez les détails de configuration de votre job. Pour spécifier l'image de l'OS de la VM pour le job, incluez le champ et les sous-champs bootDisk. Par exemple, pour créer une tâche de script de base qui utilise un nouveau disque de démarrage personnalisé, exécutez la requête POST suivante:

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

Remplacez les éléments suivants :

  • VM_OS_IMAGE_URI: nom de ressource relatif de l'image de l'OS de la VM. Utilisez l'une des options suivantes :

    • Spécifiez un préfixe Batch OS. Pour utiliser la dernière image d'un Batch OS spécifique, utilisez le format suivant:

      BATCH_OS_PREFIX
      

      Remplacez BATCH_OS_PREFIX par l'un des préfixes d'image d'OS de VM par lot. Par exemple, batch-debian est le préfixe du système d'exploitation Batch Debian.

    • Spécifiez une famille d'images. Pour utiliser la dernière image d'une famille d'images spécifique, utilisez le format suivant:

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      Remplacez les éléments suivants :

      • IMAGE_PROJECT_ID: ID du projet contenant l'image. Par exemple, pour toutes les images de traitement par lot, spécifiez batch-custom-image.
      • IMAGE_FAMILY: famille d'images, qui comprend une ou plusieurs images spécifiques, et représente le type et la version majeure de l'OS. Par exemple, pour afficher toutes les familles d'images d'OS de VM de Batch, affichez la liste des images d'OS de VM.
    • Spécifiez une version d'image. Pour utiliser une version spécifique d'une image d'OS de VM, utilisez le format suivant:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      Remplacez les éléments suivants :

      • IMAGE_PROJECT_ID: ID du projet contenant l'image. Par exemple, pour toutes les images de traitement par lot, spécifiez batch-custom-image.
      • IMAGE_NAME: nom de l'image, qui représente une version spécifique d'une image d'OS de VM. Par exemple, pour afficher toutes les versions de l'image d'OS de VM de Batch, affichez la liste des images d'OS de VM.
  • BOOT_DISK_TYPE: type de disque du disque de démarrage (pd-standard, pd-balanced, pd-ssd ou pd-extreme). Le type de disque par défaut pour les disques de démarrage est pd-balanced.

  • BOOT_DISK_SIZE: taille du nouveau disque de démarrage persistant en Go. Cette valeur doit respecter toutes les exigences de taille du disque de démarrage.

Étapes suivantes