本页面介绍了如何开始使用 Batch for Google Cloud。
概览
Batch 是一项全代管式服务,可让您在 Google Cloud 资源上安排、排队和执行批处理工作负载。 例如,考虑将 Batch 用于高性能计算 (HPC)、机器学习 (ML) 和数据处理工作负载。 Batch 会代表您预配资源并管理容量,使批处理工作负载能够大规模运行。
使用 Batch 时,您无需配置和管理第三方作业调度程序,无需预配和取消预配资源,也无需一次请求一个可用区的资源。如需运行作业,请为工作负载所需的资源指定参数,然后 Batch 获取资源并将作业加入队列以执行。Batch 提供与其他 Google Cloud 服务的原生集成,有助于安排、执行、存储和分析批处理作业,因此您可以专注于提交作业和使用结果。
批次由以下组件组成:
作业:一个计划程序,它可以运行一组任务,而不需要任何用户互动,通常适用于计算工作负载。 例如,一个作业可能是单个 Shell 脚本或复杂的多部分计算。
具体而言,Batch 作业表示一个或多个任务的数组以及运行这些任务的环境。您可以将作业的程序定义为一个或多个可运行对象的序列。每个任务都会在作业的资源上运行一系列可运行对象。您可以将作业的任务配置为并行运行或按顺序运行。
任务:作业的可运行序列的一次执行。当作业包含多个任务时,您可以通过在作业的可运行对象中引用任务索引的环境变量,指定每次执行的差异。
可运行对象:您定义为作业一部分的可执行脚本或容器。
资源:运行作业所需的基础架构。您只需指定每个任务所需的计算资源(CPU 核心数、内存和 [如果需要] 额外的启动磁盘存储空间)。您还可以选择为作业指定其他资源选项。 在作业的运行期间,Batch 会自动创建和删除符合您规范的资源。
具体而言,每个 Batch 作业都在区域级代管式实例组 (MIG) 上运行,该实例组包含一个或多个匹配的 Compute Engine 虚拟机 (VM) 实例,每个实例都位于包含的某个可用区中。每个虚拟机都有专用的硬件,用于 CPU 核心和内存(会影响作业的性能)以及启动磁盘(用于存储操作系统 [OS] 映像和运行作业的指令)。如果指定了其他资源,作业可能还会包含或访问这些资源,例如 GPU 或外部存储卷。为作业配置的虚拟机数量取决于您指定的硬件要求和任务调度选项。
总而言之,Batch 可让您创建和运行作业,每个作业都会自动预配并利用执行其任务所需的资源。
如需详细了解作业行为和选项,请参阅作业创建和执行概览页面。
价格
使用 Batch 无需额外付费。您只需支付执行作业所需的底层资源费用。
如需详细了解与 Batch 相关的费用以及如何过滤 Cloud Billing 报告以查看 Batch 费用,请参阅价格。
限制
批次具有以下限制:
- 您不得超出项目的 Batch 配额和限制。
- 每个作业只能指定一种机器类型,可以是预定义的,也可以是自定义的。
- 每个作业只能指定一个任务组。所有作业都只有一个名为
group0
的任务组。
前提条件
如需开始使用 Batch,请完成以下前提条件:
- 如果您的项目之前未使用过 Batch,请为项目启用 Batch。
- 为每位新用户设置 Batch。
为项目启用 Batch
如需开始在项目中使用 Batch,请执行以下操作:
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Verify that billing is enabled for your Google Cloud project.
确保您的项目已启用 Batch:
使用Google Cloud 控制台或 Google Cloud CLI 为 Batch 启用 API。
控制台
Enable the Batch, Compute Engine, and Cloud Logging APIs.
gcloud
Enable the Batch, Compute Engine, and Cloud Logging APIs.
确保您的项目拥有一个或多个服务账号,这些账号具有创建和访问资源以运行 Batch 作业所需的权限。
请务必注意,您必须向要允许在项目中创建和运行 Batch 作业的任何用户授予使用这些服务账号的权限。因此,请勿选择权限超出您要授予这些用户的服务账号。
默认情况下,每个作业使用的服务账号是 Compute Engine 默认服务账号,但您也可以自定义作业使用的服务账号。
除非您计划仅为作业的服务账号使用默认配置,否则请向您的项目用于 Batch 作业的所有服务账号授予以下 IAM 角色。
- 项目的 Batch Agent Reporter (
roles/batch.agentReporter
) - 如需让作业在 Cloud Logging 中生成日志,请授予项目 Logs Writer (
roles/logging.logWriter
) 角色
您为作业使用的服务账号可能还需要其他角色,具体取决于您要为作业使用的配置选项。请参阅各项任务的文档,了解是否需要其他权限。如需详细了解如何向服务账号授予角色,请参阅限制服务账号和管理对服务账号的访问权限。
- 项目的 Batch Agent Reporter (
确保您熟悉项目的 Batch 服务代理:
创建 Batch 作业后,系统会自动为您的项目创建 Batch 服务代理,其名称如下:
service-PROJECT_NUMBER@gcp-sa-cloudbatch.iam.gserviceaccount.com
将
PROJECT_NUMBER
替换为您的项目编号。Batch 服务代理会自动获得 Google Batch Service Agent (
roles/batch.serviceAgent
) IAM 角色。您的项目必须进行此配置才能使用 Batch。不过,在某些使用情形下(例如在共享 VPC 网络上运行作业),您需要向项目的 Batch 服务代理授予额外的权限。
如需了解详情,请参阅服务代理。
为新用户设置 Batch
如需开始以用户身份使用 Batch,请执行以下操作:
如需获得使用 Batch 所需的权限,请让您的管理员为您授予项目的必需 IAM 角色。请参阅各项任务的文档,了解其所需的权限。
例如,如果您想通过创建基本作业来开始学习如何使用 Batch,请考虑为以下任务请求角色:
- 如需创建作业,请执行以下操作:
- 项目中的 Batch Job Editor (
roles/batch.jobsEditor
) - 作业的服务账号(默认情况下为默认 Compute Engine 服务账号)的 Service Account User 角色 (
roles/iam.serviceAccountUser
)
- 项目中的 Batch Job Editor (
- 列出和描述作业:项目的 Batch Job Editor (
roles/batch.jobsEditor
) 或 Batch Job Viewer (roles/batch.jobsViewer
) - 如需查看作业的日志:项目的 Logs Viewer (
roles/logging.viewer
) - 如需删除作业,请在项目中打开 Batch Job Editor (
roles/batch.jobsEditor
)
如需详细了解如何授予角色,请参阅管理访问权限。
- 如需创建作业,请执行以下操作:
如果您想使用 Batch 的命令行示例,请按以下步骤设置 Google Cloud CLI。详细了解 Google Cloud CLI 的身份验证。
安装 Google Cloud CLI。 安装完成后,运行以下命令初始化 Google Cloud CLI:
gcloud init
如果您使用的是外部身份提供方 (IdP),则必须先 使用联合身份登录 gcloud CLI。
建议:使用
gcloud config set project
命令设置默认项目:gcloud config set project PROJECT_ID
将
PROJECT_ID
替换为您的项目的项目 ID。
如果您想使用 Batch 的 API 示例或客户端库示例,请参阅向 Batch 进行身份验证。
获取支持
您可以在 Cloud 论坛上使用 Batch 标签与社区讨论 Batch。
如果您在使用 Batch 时遇到问题,请参阅问题排查文档。
如需获得 Batch 支持或提供反馈,请使用以下资源:
如果 Google Cloud存在结算问题,请与结算支持团队联系。
如果您有付费支持套餐,请直接与 Google Cloud 支持团队联系,以解决 Batch 相关问题。
Google Cloud 提供多种支持套餐以满足不同的需要,例如全天候支持、手机支持以及技术支持经理对接。如需了解详情,请参阅 Google Cloud 支持团队。
如需针对 Batch 提供任何反馈或功能请求,或者在没有付费支持套餐的情况下报告 Batch 的问题,请点击发送反馈按钮。您可以在每个 Batch 文档页面的开头和结尾处找到该按钮。 然后,选择以下选项之一:
- 如需提供与 Batch 文档相关的反馈,请选择“文档反馈”。
- 对于有关 Batch 的所有其他反馈,请选择“产品反馈”。
后续步骤
详细了解 Batch:
详细了解如何创建作业。
了解相关 Google Cloud 产品: