创建并运行使用自定义启动磁盘的作业

本页面介绍了如何自定义用于启动每个运行作业的虚拟机 (VM) 实例的永久性磁盘。

具体而言,您可以自定义启动磁盘的大小、类型和/或虚拟机操作系统 (OS) 映像。如果您只想自定义虚拟机操作系统映像,请改为参阅为作业指定虚拟机操作系统映像

如需详细了解启动磁盘以及何时配置启动磁盘,请参阅虚拟机操作系统环境概览

准备工作

创建并运行使用自定义启动磁盘的作业

创建作业时,通过选择以下方法之一来指定自定义启动磁盘:

gcloud

  1. 创建一个 JSON 文件,用于指定作业的配置详细信息。 如需为作业的虚拟机指定新的自定义启动磁盘,请添加 bootDisk 字段和子字段

    例如,如需创建使用新的自定义启动磁盘的基本脚本作业,请创建包含以下内容的 JSON 文件:

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

    请替换以下内容:

    • VM_OS_IMAGE_URI:虚拟机操作系统映像的相对资源名称。使用以下任一选项:

      • 指定 Batch 操作系统前缀。如需使用特定 Batch 操作系统的最新映像,请使用以下格式:

        BATCH_OS_PREFIX
        

        BATCH_OS_PREFIX 替换为批处理虚拟机操作系统映像前缀之一,例如 batch-debian 是 Batch Debian OS 的前缀。

      • 指定映像系列。如需使用特定映像系列中的最新映像,请使用以下格式:

        projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
        

        请替换以下内容:

        • IMAGE_PROJECT_ID:包含映像的项目的项目 ID。例如,对于所有 Batch 映像,请指定 batch-custom-image
        • IMAGE_FAMILY:映像系列,其中包含一个或多个特定映像,表示操作系统的类型和主要版本。例如,如需查看 Batch 中的所有虚拟机操作系统映像系列,请查看虚拟机操作系统映像列表
      • 指定映像版本。如需使用特定版本的虚拟机操作系统映像,请使用以下格式:

        projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
        

        请替换以下内容:

        • IMAGE_PROJECT_ID:包含映像的项目的项目 ID。例如,对于所有 Batch 映像,请指定 batch-custom-image
        • IMAGE_NAME:映像名称,表示虚拟机操作系统映像的特定版本。例如,如需查看 Batch 中的所有虚拟机操作系统映像版本,请查看虚拟机操作系统映像列表
    • BOOT_DISK_TYPE:启动磁盘的磁盘类型,即 pd-standardpd-balancedpd-ssdpd-extreme。启动磁盘的默认磁盘类型是 pd-balanced

    • BOOT_DISK_SIZE:新永久性启动磁盘的大小(以 GB 为单位)。此值必须符合所有启动磁盘大小要求

  2. 如需创建作业,请运行以下 gcloud batch jobs submit 命令

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

    请替换以下内容:

    • JOB_NAME:此作业的名称。
    • LOCATION:此作业的位置
    • JSON_CONFIGURATION_FILE:包含作业配置详细信息的 JSON 文件的路径。

API

如需使用 Batch API 创建作业,请使用 jobs.create 方法并指定作业的配置详细信息。如需为作业指定虚拟机操作系统映像,请添加 bootDisk 字段和子字段。例如,如需创建使用新的自定义启动磁盘的基本脚本作业,请发出以下 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"
  }
}

请替换以下内容:

  • VM_OS_IMAGE_URI:虚拟机操作系统映像的相对资源名称。使用以下任一选项:

    • 指定 Batch 操作系统前缀。如需使用特定 Batch 操作系统的最新映像,请使用以下格式:

      BATCH_OS_PREFIX
      

      BATCH_OS_PREFIX 替换为批处理虚拟机操作系统映像前缀之一,例如 batch-debian 是 Batch Debian OS 的前缀。

    • 指定映像系列。如需使用特定映像系列中的最新映像,请使用以下格式:

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      请替换以下内容:

      • IMAGE_PROJECT_ID:包含映像的项目的项目 ID。例如,对于所有 Batch 映像,请指定 batch-custom-image
      • IMAGE_FAMILY:映像系列,其中包含一个或多个特定映像,表示操作系统的类型和主要版本。例如,如需查看 Batch 中的所有虚拟机操作系统映像系列,请查看虚拟机操作系统映像列表
    • 指定映像版本。如需使用特定版本的虚拟机操作系统映像,请使用以下格式:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      请替换以下内容:

      • IMAGE_PROJECT_ID:包含映像的项目的项目 ID。例如,对于所有 Batch 映像,请指定 batch-custom-image
      • IMAGE_NAME:映像名称,表示虚拟机操作系统映像的特定版本。例如,如需查看 Batch 中的所有虚拟机操作系统映像版本,请查看虚拟机操作系统映像列表
  • BOOT_DISK_TYPE:启动磁盘的磁盘类型,即 pd-standardpd-balancedpd-ssdpd-extreme。启动磁盘的默认磁盘类型是 pd-balanced

  • BOOT_DISK_SIZE:新永久性启动磁盘的大小(以 GB 为单位)。此值必须符合所有启动磁盘大小要求

后续步骤