为确保虚拟机资源在 Dataflow 作业需要时可用,您可以使用 Compute Engine 预留。预留为获取 Compute Engine 可用区级资源的容量提供了较高的保障。
如需将 Compute Engine 预留与 Dataflow 搭配使用,请执行以下步骤:
创建 Compute Engine 预留。它可以是单项目预留或共享预留。如需了解详情,请参阅以下文档:
预留可以包含 GPU 加速器。
提交 Dataflow 作业时,请根据您使用的 Beam SDK 版本传递以下服务选项之一:
- Beam 版本 < 2.29:
--experiments=skip_gce_quota_verification
- Beam 版本 >= 2.29:
--dataflow_service_options=automatically_use_created_reservation
- Beam 版本 < 2.29:
为了防止同一项目中的低优先级工作负载使用 Dataflow 进行预留争用,请在为这些工作负载创建虚拟机时将预留亲和性设置为 none
。如需了解详情,请参阅使用预留实例。
如需使用预留,Dataflow 工作器必须与预留配置匹配。您可能需要为作业设置工作器机器类型。如需了解详情,请参阅工作器。
限制
当 Dataflow 工作器使用预留时,需要遵循 Compute Engine 预留的所有限制。请参阅预留的工作原理。
此外,Dataflow 依赖于 Compute Engine 中的默认使用顺序。因此,需要遵循以下限制:
- Dataflow 不会使用通过
--require-specific-reservation
标志创建的预留。 - 同一项目或组织中未指定
--reservation
标志的其他工作负载可能会与 Dataflow 工作负载争用项目专用预留或共享预留。 - Dataflow Prime 作业不会使用 Compute Engine 预留。
价格
预留的 Compute Engine 虚拟机在 Dataflow 作业运行时由 Dataflow 计费,而在 Dataflow 未使用虚拟机时由 Compute Engine 计费。
后续步骤
如需详细了解 Compute Engine 预留,请参阅 Compute Engine 可用区级资源的预留。