Compute Engine 为您的可预测工作负载提供基于资源的承诺使用折扣 (CUD),可帮助您降低所需资源的费用。 您可以购买和续订基于资源的承诺使用合约或承诺来换取大幅度的虚拟机使用折扣价格。
本文档介绍了基于资源的承诺、如何购买这些承诺以及产生的 CUD。
如需了解 Compute Engine 的基于支出的 CUD,请参阅计算灵活 CUD。
基于资源的承诺非常适合可预测的稳定使用量。这些承诺无需预付费用。Compute Engine 允许您购买以下类别的基于资源的承诺:
- 硬件承诺:您可以为特定机器系列购买硬件承诺,并承诺为该机器系列提供可用的资源,例如 vCPU、内存、GPU、本地 SSD 磁盘和单租户节点。如需了解详情,请参阅购买不包含附加预留的承诺和购买包含附加预留的承诺。
- 软件许可承诺:您可以为适用的付费操作系统 (OS) 许可购买许可承诺。如需了解详情,请参阅为许可购买承诺。
硬件资源的承诺与许可的承诺是分开的。您可以为虚拟机实例同时购买这两种类别的承诺,但不能购买单个承诺来同时涵盖硬件资源和许可。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
-
承诺使用折扣说明
购买承诺使用合约后,您可以按折扣价购买 Compute Engine 资源(例如 vCPU、内存、GPU、本地 SSD 磁盘和单租户节点),以享受因承诺为这些资源支付 1 年或 3 年的费用获得的回报。对于大多数资源(如机器类型或 GPU),折扣可高达 55%。对于内存优化机器类型而言,折扣可高达 70%。 如需了解不同机器类型的承诺使用价格,请参阅虚拟机实例价格。
在承诺期限内,您会自动开始获得项目中符合条件的资源用量(与承诺中指定的资源类型、机器类型和区域匹配)的 CUD。在承诺到期之前,您将继续获得这些符合条件的资源用量的 CUD。
Compute Engine 会为项目中购买承诺的每个区域维护项目安全锁。当您为项目中的任何区域购买新承诺时,Compute Engine 会将该区域的安全锁与新创建的承诺相关联。
购买承诺后,无法取消。您的承诺在指定的期限(1 年或 3 年)结束时到期。不过,您可以为承诺启用自动续订,这样一来,除非您手动停用自动续订,否则承诺会永久自动续订新期限。
承诺状态
您的承诺可以处于以下状态之一:
CREATING
:正在创建承诺。NOT_YET_ACTIVE
或PENDING
:承诺已创建但尚未生效。Compute Engine 会创建具有此状态的承诺。- 如果您使用 Google Cloud CLI 或 REST API 购买承诺,则此状态值显示为
NOT_YET_ACTIVE
。 - 如果您使用 Google Cloud 控制台购买承诺,则此状态值显示为
PENDING
。
- 如果您使用 Google Cloud CLI 或 REST API 购买承诺,则此状态值显示为
ACTIVE
:承诺处于有效状态。EXPIRED
:承诺已到期。Compute Engine 保留移除已过期 210 天或更长时间的承诺的权利。CANCELED
:Compute Engine 取消了承诺。如果您组合多个承诺以创建新的合并承诺,Compute Engine 会将多个承诺的状态更改为CANCELED
。
从承诺购买到激活的这段时间内,承诺的状态保持为 NOT_YET_ACTIVE
(在Google Cloud 控制台中保持为 PENDING
)。激活后,您的承诺状态将更改为 ACTIVE
。
例如,假设您在美国和加拿大太平洋时间(UTC-8 或 UTC-7)1 月 20 日晚上 10:00 购买了承诺。Compute Engine 会立即创建您的承诺,其状态为 NOT_YET_ACTIVE
。但是,承诺仅在美国和加拿大太平洋时间(UTC-8 或 UTC-7)1 月 21 日零点才会变为 ACTIVE
。
硬件承诺
硬件承诺仅适用于您为其购买承诺的特定区域和机器家族系列。作为回报,您可获享该区域内该机器系列所有符合条件的硬件资源的总价格折扣。这些硬件资源包括 vCPU、内存、GPU 和本地 SSD 磁盘。
购买承诺不会影响您的虚拟机配置。CUD 适用于某个区域内特定机器系列的 vCPU、内存、GPU 和本地 SSD 磁盘的总数。因此,只要资源属于承诺涵盖的范围,该承诺获享的 CUD 就不会受到虚拟机机器设置更改的影响。
在您为特定机器系列购买承诺后,无论虚拟机大小或租用模式如何,您都有资格获享所有虚拟机机器类型的 CUD,包括所有预定义和自定义机器类型以及单租户节点。如需详细了解每个机器系列符合条件的资源类型,请参阅硬件承诺类型。
高效利用承诺
如果您只有几个项目,则可以仅为计划使用的特定资源购买承诺。 例如,如果您购买了 8 个核心的承诺,而您在当月运行了 24 个核心,那么只有 8 个核心将获得承诺使用折扣。另外 16 个核心将按标准的非承诺使用费率计费。请记住,购买一定数量的承诺后,即使您并未使用,也需要按月为承诺量付费。例如,如果您购买了 8 个核心的承诺,则即使您可能仅在当月的一部分时间里运行了这些核心,您也需要按这 8 个核心在整个月内的承诺使用费率付费。因此,仅按照您清楚自己将会用到的增量来购买承诺量将对您更为有利。
不能针对用量爆发情况叠加承诺量。例如,如果您在一个月购买了 10 个核心,然后在半个月内运行了 20 个核心,则系统不会因为使用时间只有半个月而对所有 20 个核心应用承诺。
用量超额
您的承诺未涵盖的任何每小时资源用量都会根据按需费率计费,并且可能有资格获享适用的持续使用折扣 (SUD)。例如,假设承诺涵盖属于 N2 机器系列的 2 个 vCPU 和 8 GB 内存。假设您使用此承诺购买并运行 n2-standard-2
(2 个 vCPU 和 8 GB 内存)虚拟机,并在当月剩余时间运行 n2-standard-8
(8 个 vCPU 和 32 GB 内存)虚拟机。在此情况下,Compute Engine 会合并这两个虚拟机的用量,并将适用的 SUD 自动应用于您的承诺不涵盖的任何资源用量。
将预留与承诺相结合
承诺提供 1 年或 3 年期折扣价格协议,但不在特定可用区预留容量。即使预留的虚拟机未运行,预留也可确保特定可用区中保留有容量。如需以折扣价格获取可用区级资源,并确保为它们预留容量,您必须购买承诺并为这些可用区级资源创建预留。
您还可以在购买承诺时将预留附加到基于资源的承诺。将预留附加到承诺是一种高效的管理方式,可将这两个实体一起管理。当您承诺使用 GPU 或本地 SSD 资源时,您还必须预留这些资源,并将这些预留附加到您的承诺。
如需了解详情,请参阅将预留与承诺使用折扣相结合。
规格
只有在特定区域中的资源有以下两项配额时,您才能为该区域购买基于资源的承诺:
- 承诺
- 承诺资源(内存除外)
如需了解详情,请参阅承诺和承诺资源的配额。
您必须按区域购买承诺量。
如需使用 gcloud CLI 管理承诺,您必须运行
gcloud
147.0.0 版或更高版本。如需将 gcloud CLI 更新到最新版本,请运行以下命令:gcloud components update
如需检查您正在运行的 gcloud CLI 的版本,请运行以下命令:
gcloud version
限制
以下限制适用于基于资源的 CUD。
一般限制
- 处于免费层级期限内且拥有免费层级赠金的项目,以及没有任何付款记录的项目,均不符合承诺使用折扣的适用条件。
- 您只能按区域购买承诺量。
- 基于资源的 CUD 不适用于抢占式虚拟机实例、N1 共享核心机器类型或扩展内存。
- 如果您将 Compute Engine 预留与 Dataflow 或 Dataproc Serverless 搭配使用,则这些预留的资源不符合 Compute Engine CUD 的条件。
- 对于支持每个虚拟机的 Tier_1 网络性能的机器类型,较高的带宽 SKU 不在 CUD 范围内。
f1-micro
和g1-small
共享核心机器不符合 CUD 的条件。您无法更改购买承诺的项目。如果要与多个项目共享折扣,请启用 CUD 共享。
如果您将购买承诺的项目移至其他 Cloud Billing 账号,则在新的 Cloud Billing 账号中,您可以继续获享该项目的适用 CUD。了解如何更改项目的 Cloud Billing 账号。
特定于共享基于资源的 CUD 的限制
- 如果您有共享预留,并且为承诺的 Cloud Billing 账号启用了 CUD 共享,那么为了确保所使用共享预留的用量符合享受基于资源的 CUD 的资格条件,您必须仅与关联到承诺的 Cloud Billing 账号的项目共享预留。这样有助于避免您的符合 CUD 条件的用量被以按需费率计费。
- 为 Cloud Billing 账号启用 CUD 共享时,如果承诺的任何部分未使用,则剩余的承诺费用将保留在您购买该承诺的项目中。
特定于附加预留的限制
如果承诺指定任何 GPU 和/或本地 SSD 磁盘,则附加的预留(或附加预留的组合)必须指定与承诺完全相同的资源数量和类型。 如需了解详情,请参阅将预留附加到基于资源的承诺。
如果某预留附加于承诺,则您无法删除或调整该预留的大小。
您不能将同一预留附加到多个承诺。
特定于 CUD 建议的限制
- CUD 建议仅适用于硬件资源承诺。您不会收到针对操作系统许可承诺的 CUD 建议。
- 您只能查看基于您的使用情况的 vCPU 和内存资源的 CUD 建议。CUD 建议不适用于本地 SSD 磁盘或 GPU 用量。
价格
您需要按月为承诺付费,即使您未使用所有承诺的资源,也必须支付每月承诺费用。承诺费用是所有承诺的资源的折扣价格总和。Compute Engine 使用承诺生效当天的现行按需价格来计算每个资源的折扣价格。即使按需价格发生变化,在承诺期限结束之前,每月承诺费用和资源的折扣价格也会保持不变。
如果您使用您的承诺来运行自定义机器类型,则 Compute Engine 会按承诺价格收取 5% 的附加费。Compute Engine 会根据您运行这些自定义机器类型虚拟机的那部分和持续时间在承诺的基础上收取此附加费。
虚拟机实例(无论是否挂接了 GPU 和本地 SSD 磁盘)的折扣价格(也称为 CUD 价格)因区域而异。如需了解当前费率,请参阅虚拟机实例价格。
如果您将购买承诺的项目移动到其他 Cloud Billing 账号,新的 Cloud Billing 账号下会继续享受该项目的适用承诺使用折扣。了解如何更改项目的 Cloud Billing 账号。
硬件承诺的承诺类型
购买承诺时,您必须选择适用于预期资源用量的承诺类型。承诺的承诺类型决定了承诺所涵盖的机器系列(或在某些情况下,是一组特定的机器类型)。当您使用属于这些机器系列或机器类型的实例时, Google Cloud 会通过您的承诺涵盖相应用量符合条件的部分。大多数机器系列都有一种对应的专用承诺类型,能够涵盖属于该系列的所有机器类型。有以下例外情况:
加速器优化型 A3:此机器系列有多种承诺类型:
- A3 Edge 和 A3 High 机器类型资源由一种承诺类型涵盖
- A3 Mega 机器类型资源由另一种单独的承诺类型涵盖
内存优化型 M1 和 M2:这些机器系列对应一种合并承诺类型,涵盖所有 M1 和 M2 机器类型。
内存优化型 M4:此机器系列有两种承诺类型:
- 其中一种承诺类型专门用来涵盖配备 6 TB 内存的 M4 机器类型。
- 所有其他 M4 机器类型均用另一种单独的承诺类型来涵盖。
内存优化型 X4:此机器系列有三种承诺类型,其中每种承诺类型涵盖以下一组机器类型:
- 配备 16 TB 内存的所有 X4 机器类型
- 配备 24 TB 内存的所有 X4 机器类型
- 配备 32 TB 内存的所有 X4 机器类型
每种承诺类型对应的具体值因您是使用 gcloud CLI、REST 还是 Google Cloud 控制台购买承诺而异。如需了解购买时要使用的确切值,请参阅购买不含附加预留的承诺或购买包含附加预留的承诺部分中的相关说明。
下表列出了您可以为其购买基于资源的承诺的所有机器系列,及其相应的承诺类型。该表还针对每种承诺类型,列出了符合条件的机器类型以及符合 CUD 条件的资源类型。对于列出的每种机器类型,如果相应机器系列支持单租户,则适用性还会涵盖单租户节点类型。
承诺类型 | 合格资源 | 适用的机器类型 |
---|---|---|
通用 E2 |
|
所有 E2 机器类型 |
通用 N2 |
|
所有 N2 机器类型 |
通用 N2D |
|
所有 N2D 机器类型 |
通用 N4 |
|
所有 N4 机器类型 |
通用型 C3 |
|
所有 C3 机器类型 |
通用 C3D |
|
所有 C3D 机器类型 |
通用 C4 |
|
所有 C4 机器类型 |
通用 C4A |
|
所有 C4A 机器类型 |
通用 C4D |
|
所有 C4D 机器类型 |
通用 Tau T2D |
|
标准 Tau T2D 机器类型 |
通用 N1 |
|
|
存储优化型 Z3 |
|
所有 Z3 机器类型 |
计算优化型 H3 |
|
所有 H3 机器类型 |
计算优化的 C2 |
|
所有 C2 机器类型 |
计算优化的 C2D |
|
所有 C2D 机器类型 |
内存优化的 M1/M2 |
|
|
内存优化 M3 |
|
所有 M3 机器类型 |
内存优化 M4 6TB |
|
m4-ultramem-224 (配备 6 TB 内存的 M4 机器类型) |
内存优化 M4 |
|
所有其他 M4 机器类型 |
内存优化的 X4 16TB |
|
配备 16 TB 内存的所有 X4 机器类型 |
内存优化的 X4 24TB |
|
配备 24 TB 内存的所有 X4 机器类型 |
内存优化的 X4 32TB |
|
配备 32 TB 内存的所有 X4 机器类型 |
加速器优化的 A2 |
|
|
加速器优化的 A3 |
|
|
加速器优化 A3 Mega |
|
|
加速器优化型 A3 Ultra (仅适用于 AI Hypercomputer) |
|
|
加速器优化型 A4 (仅适用于 AI Hypercomputer) |
|
|
加速器优化型 G2 |
|
|
您不能为 f1-micro
或 g1-small
机器类型购买承诺量,也不能为单租户附加费用购买承诺量。
适用于 Compute Engine 机器类型的承诺
Google Cloud 为多个 Compute Engine 机器家族系列的硬件资源提供基于资源的承诺。您可以根据自己计划使用的机器类型来购买相应的承诺类型。
通用机器类型
通用机器类型的 CUD 按以下顺序应用于各资源:
- N4、N2、N2D、E2 或 N1 自定义机器类型,具体取决于您购买的承诺
- 单租户节点
- E2、N2、N2D、N4、C4、C4A、C4D、C3、C3D、Tau T2D 或 N1 预定义机器类型,具体取决于您购买的承诺。
当您为通用机器类型购买承诺时,您需要选择该承诺适用的机器系列。例如,如果您购买通用 E2 承诺,则该承诺仅适用于 E2 机器类型。同样,如果您购买通用 N2、N2D、N4、C4、C4A、C4D、C3、C3D、Tau T2D 或 N1 承诺,则这些承诺绝不会重叠。
例如,假设您的区域混合使用了以下资源:
- 10 个 N2 自定义机器类型 vCPU
- 30 GB 自定义机器类型内存
- 2 个
n2-standard-4
预定义机器类型
您为 15 个 vCPU 和 13.5 GB 内存购买了 N2 承诺。CUD 将首先应用于 N2 自定义机器类型,而任何剩余的折扣将应用于 N2 预定义机器类型。在本示例中,所有 10 个 N2 自定义机器类型 vCPU 都将按承诺使用价格付费,并且 13.5 GB 的自定义机器类型内存也将按承诺使用价格付费。
最后,承诺中剩余的 5 个 vCPU 折扣额度将随机应用于两个 n2-standard-4 machine
类型中的任意 5 个 vCPU。您的承诺未涵盖的任何资源用量都可能符合适用的 SUD 的条件。
额外,如果您使用您的承诺来运行自定义机器类型,则 Compute Engine 会按承诺价格收取 5% 的附加费。Compute Engine 会根据您运行这些自定义机器类型虚拟机的那部分和持续时间在承诺的基础上收取此附加费。
承诺按机器系列汇总。如果您不确定要购买多少承诺量,则可能需要从购买较少的承诺量起步,然后根据需要增加更多承诺量。例如,您可以为 10 个 vCPU 和零内存购买多份合约,然后为额外的内存购买单独的合约。
如需为通用机器类型购买承诺,请参阅购买不含附加预留的承诺和购买包含附加预留的承诺。
内存优化机器类型
您在为内存优化机器类型资源购买承诺时必须使用的承诺类型会因机器类型而异。以下每组机器类型都有一种独特的承诺类型:
- 适用于所有 M1 和 M2 机器类型
- 适用于所有 M3 机器类型
- 配备 6 TB 内存的 M4 机器类型
- 适用于所有其他 M4 机器类型
- 配备 16 TB 内存的 X4 机器类型
- 配备 24 TB 内存的 X4 机器类型
- 配备 32 TB 内存的 X4 机器类型
您必须购买与实例的机器系列和机器类型匹配的承诺类型。对于 X4 裸金属实例,每种机器配置都需要不同的承诺类型。
内存优化升级溢价核心和 RAM SKU 特定于 M2 机器类型,不符合 CUD 的条件。这些 SKU 的价格已纳入虚拟机实例价格页面和价格计算器中所记录的价格费率。
如果您打算使用内存优化机器类型,应购买内存优化承诺。如需为内存优化机器类型购买承诺,请参阅购买不含附加预留的承诺。
存储优化机器类型
如需为存储优化 Z3 机器类型购买承诺,请参阅购买不含附加预留的承诺和购买包含附加预留的承诺。
计算优化机器类型
如需为计算优化机器类型购买承诺,请参阅以下内容之一:
- 对于 C2 和 C2D 计算优化机器类型,请参阅购买不含附加预留的承诺。
- 对于 H3 计算优化机器类型,请参阅购买包含附加预留的承诺。
加速器优化机器类型
加速器优化虚拟机挂接了特定模型和多个 NVIDIA GPU。当您为这些机器类型购买承诺时,还必须预留承诺的 GPU,并将这些预留附加到您的承诺。
如需为这些机器类型购买承诺,请参阅以下内容:
- 对于 A2、A3 Edge、A3 High、A3 Mega 或 G2 机器类型,请参阅购买包含附加预留的承诺。
- 对于 A3 Ultra 或 A4 机器类型,请参阅 AI Hypercomputer 文档中的预留容量。
适用于 GPU 和本地 SSD 磁盘资源的承诺
为 GPU 购买承诺时,您只能为任何给定承诺指定一种 GPU 类型。因此,该承诺仅涵盖指定 GPU 类型的用量。如果您想因使用多种 GPU 类型而获得 CUD,则必须为每种 GPU 类型购买单独的承诺。例如,假设您同时使用 NVIDIA V100 GPU 和 NVIDIA P100 GPU。 如果您只有 NVIDIA P100 GPU 的承诺,那么该承诺无法涵盖您对 NVIDIA V100 GPU 的用量。如需同时获得 NVIDIA P100 GPU 用量和 NVIDIA V100 GPU 用量的 CUD,您必须为每种 GPU 类型单独购买承诺。
此外,如需为 GPU 和/或本地 SSD 磁盘购买承诺,您还必须预留这些资源,并将预留附加到承诺。 预留这些资源旨在确保它们始终可供您使用(无论您是否使用它们)。预留资源不会产生任何额外费用。
如需了解如何购买 GPU 的承诺,请参阅以下任一资源:
- 如需与 A3 Ultra 或 A4 机器类型搭配使用,请参阅 AI Hypercomputer 文档中的请求容量。
- 如需与所有其他机器类型搭配使用,请参阅本文档中的购买包含附加预留的承诺。
如需了解如何购买本地 SSD 磁盘的承诺,请参阅本文档中的购买包含附加预留的承诺。
如需详细了解包含附加预留的承诺,请参阅将预留附加到基于资源的承诺。
承诺和承诺资源的配额
只有在特定区域中的资源有以下两项配额时,您才能为该区域购买基于资源的承诺:
- 承诺
- 承诺资源(内存除外)
具体而言,如果您要为任何 vCPU、GPU 或本地 SSD 磁盘购买承诺,则在您想要购买承诺的区域,您除了需要有承诺配额,还要有您要为其购买承诺的这些特定承诺 SKU 的配额。由于内存没有配额限制,因此您不需要有单独的承诺内存配额,便可以为内存购买承诺。
例如,如需在 us-central1
区域中购买 5 个承诺(涵盖 32 个通用 N1 机器类型 vCPU、16 GB 内存、4 个 NVIDIA P4 GPU 和 2 个本地 SSD 磁盘),则必须具有以下各项的配额:
us-central1
中的 5 个承诺us-central1
中的 32 个承诺 N1 vCPUus-central1
中的 4 个承诺的 NVIDIA P4 GPUus-central1
中容量为 750 GB(或 2 个本地 SSD 磁盘)的承诺本地 SSD 磁盘可用空间
配额限制
默认情况下,Compute Engine 会为每种类型的承诺资源提供特定数量的承诺配额。这些配额限制决定了您可以购买的承诺数量以及您可以承诺使用的资源数量。如需了解如何查看您的承诺及承诺资源的当前配额限制和配额用量值,请参阅在 Google Cloud 控制台中查看配额。
如果您长期在多个区域的各项目付费使用大量的承诺 vCPU,则您有可能有资格在所有这些区域获得所有机器类型(内存优化机器类型除外)承诺 vCPU 的无限配额。
如果用完了所有承诺配额,则将无法再购买新的承诺。同样,如果您的某个承诺资源的配额用尽,则即使您还有可用的承诺配额,也无法为该资源购买新承诺。例如,如果您用完了所有承诺配额,则服务器会在您后续发出承诺购买请求时返回以下错误:
"Quota 'COMMITMENTS' exceeded. Limit: 0.0"
提高配额上限
如果您没有足够的配额用于您的承诺或承诺的资源,可以随时在“配额”页面中申请提高配额。您可以随时申请提高配额。如需了解如何提交提高资源配额上限的申请,请参阅申请配额调整。
例如,设想一个场景,您在 us-central1
区域购买了两个承诺(总共四个 NVIDIA V100
GPU),并且达到了配额限制。现在,假设您想要在同一区域中再购买 2 个新承诺,每个承诺包含 2 个 NVIDIA V100 GPUs
,则必须执行以下操作:
- 提交一个新配额申请,将您在
us-central1
中的Committed NVIDIA V100 GPUs
配额上限提高至所需的新值 (8)。 提交一个新配额申请,将您在
us-central1
中的Commitments
配额上限提高至所需的新值 (4)。关闭申请,等待获批。申请获得批准后,您在
us-central1
中的承诺及承诺 GPU 的配额便会提高,以满足您的新需求。之后,您便可以购买新承诺。
如果您对默认已拥有无限配额的资源申请提高配额上限,则该资源的配额值将仍为无限配额,并且系统会通知您请求的上限低于已获批准的上限。
限制配额上限
您可以通过创建使用方配额替换值来对承诺资源的配额值加以限制。对于默认具有无限配额的资源,创建使用方配额替换值会降低其配额值。若要将默认配额恢复为无限配额,您必须移除为承诺 SKU 设置的使用方替换值。如需了解详情,请参阅创建使用方配额替换值以及删除使用方配额替换值。
如需详细了解如何管理资源的配额,请参阅查看和管理配额。
购买不含附加预留的承诺
您可以为 vCPU 和/或内存购买承诺,而无需为这些资源附加任何预留。您可以使用Google Cloud 控制台、gcloud CLI 或 API 购买这些承诺。
如需详细了解包含附加预留的承诺,请参阅将预留附加到基于资源的承诺
如需为 GPU 和/或本地 SSD 磁盘购买承诺,请参阅购买包含附加预留的承诺。
默认情况下,项目所有者有权购买承诺使用折扣合约。不过,所有者可以创建包含或排除特定用户的自定义角色。请了解访问权限控制,以确保您有权购买承诺使用折扣合约。
购买承诺后,您的承诺将于次日美国和加拿大太平洋时间(UTC-8,或夏令时期间为 UTC-7)上午 12 点生效。 Compute Engine 会为项目中购买承诺的每个区域维护项目安全锁。当您为项目中的任何区域购买新承诺时,Compute Engine 会将该区域的安全锁与新创建的承诺相关联。
从承诺购买到激活的这段时间内,承诺的状态保持为 NOT_YET_ACTIVE
(在Google Cloud 控制台中保持为 PENDING
)。激活后,您的承诺状态将更改为 ACTIVE
。
例如,假设您在美国和加拿大太平洋时间(UTC-8 或 UTC-7)1 月 20 日晚上 10:00 购买了承诺。Compute Engine 会立即创建您的承诺,其状态为 NOT_YET_ACTIVE
。但是,承诺仅在美国和加拿大太平洋时间(UTC-8 或 UTC-7)1 月 21 日零点才会变为 ACTIVE
。
相应折扣会自动应用于您所指定区域中的适用实例以及购买这些折扣的项目。
控制台
在使用 Google Cloud 控制台购买承诺之前,先选择要用于购买承诺的项目。如果为 Cloud Billing 账号启用了 CUD 共享,则您可以使用该 Cloud Billing 账号中的任何项目购买承诺。选择项目后,请执行以下操作:
在 Google Cloud 控制台中,前往承诺使用折扣页面。
如需购买承诺,请点击
购买承诺。系统会打开购买承诺使用折扣页面,并显示硬件标签页。在名称字段中,输入承诺的名称。
在区域字段中,选择您要在其中承诺使用 Compute Engine 资源的区域。
在承诺类型字段中,选择承诺的资源的机器家族系列。 对于 vCPU 和/或内存,您可以从以下承诺类型中进行选择:
- 加速器优化的 A2,适用于 A2 机器类型资源
- 加速器优化 A3,适用于 A3 Edge 和 A3 High 机器类型资源
- 加速器优化 A3 Mega,适用于 A3 Mega 机器类型资源
- 计算优化的 C2,适用于 C2 机器类型资源
- 计算优化的 C2D,适用于 C2D 机器类型资源
- 计算优化型 H3,适用于 H3 机器类型资源
- 通用 C3,适用于 C3 机器类型资源
- 通用 C3D,适用于 C3D 机器类型资源
- 通用 C4,适用于 C4 机器类型资源
- 通用 C4A,适用于 C4A 机器类型资源
- 通用 C4D,适用于 C4D 机器类型资源
- 通用 E2,适用于 E2 机器类型资源
- 通用 N1,适用于 N1 机器类型资源
- 通用 N2,适用于 N2 机器类型资源
- 通用 N2D,适用于 N2D 机器资源
- 通用 N4,适用于 N4 机器类型资源
- 通用 T2D,适用于 Tau T2D 机器类型资源
- 图形优化的 G2,适用于 G2 机器类型资源
- 内存优化的 M1/M2,适用于 M1 或 M2 机器类型资源
- 内存优化的 M3,适用于 M3 机器类型资源
- 内存优化 M3,适用于 M4 机器类型资源
- 内存优化 M4 6 TB,适用于具有 6 TB 内存的 M4 机器类型
- 内存优化 X4 16TB,适用于具有 16 TB 内存的 X4 机器类型
- 内存优化 X4 24TB,适用于具有 24 TB 内存的 X4 机器类型
- 内存优化 X4 32TB,适用于具有 32 TB 内存的 X4 机器类型
- 存储优化 Z3,适用于 Z3 机器类型资源
在时长部分中,执行以下操作:
- 如需指定承诺方案,请选择 1 年或 3 年。此设置决定了承诺的预设期限。
可选。如需为承诺指定自定义期限,请点击延长结束日期切换开关,然后在日期字段中指定所需的自定义结束日期。如需了解详情,请参阅延长承诺期限。
在核心数字段中,输入您要承诺购买的 vCPU 的数量。
在内存字段中,输入您要承诺购买的内存量(以 GB 为单位)。
只能以 0.25 GB 为增量来指定内存量。如需为承诺指定自定义内存值,请改用 gcloud CLI 或 REST。
如需完成购买承诺的过程,请执行以下操作:
- 点击购买。
- 在购买承诺使用折扣对话框中,如果您同意服务专用条款,请再次点击购买。
gcloud
使用 gcloud CLI 运行 gcloud compute commitments create
命令:
gcloud compute commitments create COMMITMENT_NAME \ --region REGION \ --project PROJECT_ID \ --resources vcpu=NUMBER_VCPUS,memory=MEMORY \ --plan DURATION \ --type COMMITMENT_TYPE
替换以下内容:
COMMITMENT_NAME
:您想要用来标识此承诺的名称。REGION
:此承诺所适用的区域。每个区域都有不同的承诺价格。如需了解当前价格,请参阅价格表。PROJECT_ID
:要为其创建承诺的项目的 ID。NUMBER_VCPUS
:您愿意为其购买承诺的 vCPU 数量。vCPU 数量必须是等于或大于 0 的整数,可以是偶数或奇数。MEMORY
:您愿意为其购买承诺的内存大小(以 MB 或 GB 为单位)。例如1000MB
。如果您未指定单位,则系统会默认使用 GB 单位。DURATION
:承诺的期限(12-month
或36-month
)。COMMITMENT_TYPE
:以下各项中的一项:accelerator-optimized
(适用于 A2 机器类型资源)accelerator-optimized-a3
,适用于 A3 Edge 和 A3 High 机器类型资源accelerator-optimized-a3-mega
,适用于 A3 Mega 机器类型资源compute-optimized
(适用于 C2 机器类型资源)compute-optimized-c2d
(适用于 C2D 机器类型资源)compute-optimized-c3
(适用于 C3 机器类型资源)compute-optimized-c3d
(适用于 C3D 机器类型资源)compute-optimized-h3
(适用于 H3 机器类型资源)general-purpose
(适用于 N1 机器类型资源)general-purpose-c4
(适用于 C4 机器类型资源)general-purpose-c4a
,适用于 C4A 机器类型资源general-purpose-c4d
,适用于 C4D 机器类型资源general-purpose-e2
(适用于 E2 机器类型资源)general-purpose-n2
(适用于 N2 机器类型资源)general-purpose-n2d
(适用于 N2D 机器资源)general-purpose-n4
(适用于 N4 机器类型资源)general-purpose-t2d
(适用于 Tau T2D 机器类型资源)- 适用于 G2 机器类型资源的
graphics-optimized
memory-optimized
(适用于M1 或 M2 机器类型资源)memory-optimized-m3
(适用于 M3 机器类型资源)memory-optimized-m4
,适用于 M4 机器类型资源memory-optimized-m4-6tb
,适用于具有 6 TB 内存的实例的 M4 机器类型资源memory-optimized-x4-16tb
,适用于具有 16 TB 内存的实例的 X4 机器类型资源memory-optimized-x4-24tb
,适用于具有 24 TB 内存的实例的 X4 机器类型资源memory-optimized-x4-32tb
,适用于具有 32 TB 内存的实例的 X4 机器类型资源storage-optimized-z3
(适用于 Z3 机器类型资源)
如果您未指定
--type
标志,则系统会使用默认值general-purpose
。
示例
如需为 N1 机器类型创建通用承诺使用合约,您可以按照以下示例编写并执行相应命令:
gcloud compute commitments create example-commitment --region us-central1 \ --resources vcpu=5,memory=33280MB --plan 12-month \ --project=myproject
如需创建计算优化承诺,请使用
gcloud compute commitments create
命令。以下示例为计算优化机器类型购买 1 年期承诺:gcloud compute commitments create example-compute-optimized-commitment \ --region us-central1 --resources vcpu=2,memory=3814GB --plan 12-month \ --type compute-optimized --project=myproject
如需创建内存优化承诺,请使用以下命令示例:
gcloud compute commitments create example-memory-optimized-commitment \ --region us-central1 --resources vcpu=96,memory=1434MB \ --plan 12-month --type memory-optimized \ --project=myproject
如需创建加速器优化承诺,您必须使用
gcloud compute commitments create
命令购买包含支持附加预留的承诺。您还必须指定所需的资源(包括 GPU)总数。创建 GPU 承诺时,您需要指定
--accelerator
和--resources-accelerator
标志。--accelerator
标志指定挂接到每个虚拟机的 GPU 数量。--resources-accelerator
标志指定承诺中的 GPU 总数。例如,以下承诺包括 96 个 vCPU、680 GB 内存、8 个 GPU 和 1 个相关的预留,以便在
us-central1-a
的 2 个虚拟机上使用这些 GPU。gcloud compute commitments create example-accelerator-optimized-commitment \ --region=us-central1 \ --project=myproject \ --resources=vcpu=96,memory=680GB \ --resources-accelerator=count=8,type=nvidia-tesla-a100 \ --plan 12-month \ --type accelerator-optimized \ --reservation=reservation-01 \ --reservation-zone=us-central1-a \ --machine-type=a2-highgpu-4g \ --accelerator=count=4,type=nvidia-tesla-a100 \ --vm-count=2
如需为 GPU 和/或本地 SSD 磁盘创建承诺,您必须使用
gcloud compute commitments create
命令购买包含附加预留的承诺。创建 GPU 承诺时,您需要指定
--accelerator
和--resources-accelerator
标志。--accelerator
标志指定挂接到每个虚拟机的 GPU 数量。--resources-accelerator
标志指定承诺中的 GPU 总数。例如,以下承诺包括 4 个 GPU 和 1 个相关的预留,以便在
us-central1-a
的 2 个实例中使用这些 GPU。gcloud compute commitments create example-reservation-commitment \ --region=us-central1 \ --project=myproject \ --resources=vcpu=96,memory=624GB \ --resources-accelerator=type=nvidia-tesla-v100,count=4 \ --plan 12-month \ --reservation=reservation-01 \ --reservation-zone=us-central1-a \ --machine-type=n1-standard-32 --accelerator=type=nvidia-tesla-v100,count=2 \ --vm-count=2
REST
在 API 中,向 regionCommitments.insert
方法发出一个 POST
请求,其请求正文中包含有关承诺的信息:
https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments?requestId=OPTIONAL_UNIQUE_ID
资源标头应包含以下内容:
name
:表示承诺的名称plan
:表示承诺的期限,只能选择TWELVE_MONTH
或THIRTY_SIX_MONTH
resources
:用于指定内存大小和 vCPU 数量。内存必须以 MB 为单位指定。您必须在resources
部分中同时指定VCPU
和MEMORY
。承诺的
type
,可以是以下项目之一:ACCELERATOR_OPTIMIZED
(适用于 A2 机器类型资源)ACCELERATOR_OPTIMIZED_A3
,适用于 A3 Edge 和 A3 High 机器类型资源ACCELERATOR_OPTIMIZED_A3_MEGA
,适用于 A3 Mega 机器类型资源COMPUTE_OPTIMIZED
(适用于 C2 机器类型资源)COMPUTE_OPTIMIZED_C2D
(适用于 C2D 机器类型资源)COMPUTE_OPTIMIZED_C3
(适用于 C3 机器类型资源)COMPUTE_OPTIMIZED_C3D
(适用于 C3D 机器类型资源)COMPUTE_OPTIMIZED_H3
(适用于 H3 机器类型资源)GENERAL_PURPOSE
(适用于 N1 机器类型资源)GENERAL_PURPOSE_C4
(适用于 C4 机器类型资源)GENERAL_PURPOSE_C4A
,适用于 C4A 机器类型资源GENERAL_PURPOSE_C4D
,适用于 C4D 机器类型资源GENERAL_PURPOSE_E2
(适用于 E2 机器类型资源)GENERAL_PURPOSE_N2
(适用于 N2 机器类型资源)GENERAL_PURPOSE_N2D
(适用于 N2D 机器资源)GENERAL_PURPOSE_N4
(适用于 N4 机器类型资源)GENERAL_PURPOSE_T2D
(适用于 Tau T2D 机器类型资源)- 适用于 G2 机器类型资源的
GRAPHICS_OPTIMIZED
MEMORY_OPTIMIZED
(适用于M1 或 M2 机器类型资源)MEMORY_OPTIMIZED_M3
(适用于 M3 机器类型资源)MEMORY_OPTIMIZED_M4
,适用于 M4 机器类型资源MEMORY_OPTIMIZED_M4_6TB
,适用于具有 6 TB 内存的实例的 M4 机器类型资源MEMORY_OPTIMIZED_X4_16TB
,适用于具有 16 TB 内存的实例的 X4 机器类型资源)MEMORY_OPTIMIZED_X4_24TB
,适用于具有 24 TB 内存的实例的 X4 机器类型资源MEMORY_OPTIMIZED_X4_32TB
,适用于具有 32 TB 内存的实例的 X4 机器类型资源STORAGE_OPTIMIZED_Z3
(适用于 Z3 机器类型资源)
例如,以下示例将创建一个为期 1 年的承诺使用合约,包含 5 个 vCPU 和 18.75 GB 内存:
{
"name": "example-commitment",
"plan": "TWELVE_MONTH",
"type": "GENERAL_PURPOSE",
"resources": [
{
"amount": "5",
"type": "VCPU"
},
{
"amount": "19200",
"type": "MEMORY"
}
]
}
如需创建内存优化承诺,请添加 type
属性。以下示例演示了如何为 m1-megamem-96
机器类型购买 1 年期的承诺:
{
"name": "example-memory-optimized-commitment",
"plan": "TWELVE_MONTH",
"type": "MEMORY_OPTIMIZED",
"resources": [
{
"amount": "96",
"type": "VCPU"
},
{
"amount": "1434",
"type": "MEMORY"
}
]
}```
To create a compute-optimized commitment, include the `type` property. The
following example, purchases a 1 year commitment for a `c2-standard-16`
machine type:
```json
{
"name": "example-compute-optimized-commitment",
"plan": "TWELVE_MONTH",
"type": "COMPUTE_OPTIMIZED",
"resources": [
{
"amount": "16",
"type": "VCPU"
},
{
"amount": "1434",
"type": "MEMORY"
}
]
}
购买包含附加预留的承诺使用合约
购买新承诺时,您可以通过以下任一方式将预留附加到承诺:
购买承诺后,您的承诺将于次日美国和加拿大太平洋时间(UTC-8,或夏令时期间为 UTC-7)上午 12 点生效。
从承诺购买到激活的这段时间内,承诺的状态保持为 NOT_YET_ACTIVE
(在Google Cloud 控制台中保持为 PENDING
)。激活后,您的承诺状态将更改为 ACTIVE
。
例如,假设您在美国和加拿大太平洋时间(UTC-8 或 UTC-7)1 月 20 日晚上 10:00 购买了承诺。Compute Engine 会立即创建您的承诺,其状态为 NOT_YET_ACTIVE
。但是,承诺仅在美国和加拿大太平洋时间(UTC-8 或 UTC-7)1 月 21 日零点才会变为 ACTIVE
。
要求
在购买包含附加预留的承诺之前,请先查看这些要求,并确保您的承诺和预留符合以下条件:
- 您必须购买承诺并在同一项目和区域中创建附加的预留。
- 您必须购买承诺并为同一机器家族系列中的资源创建附加的预留。
- 您必须在附加预留上停用自动删除选项。
- 如果您的承诺具有 GPU,则预留中指定的 GPU 类型与承诺必须匹配。
对于 GPU 和本地 SSD 磁盘,每种资源类型的预留资源数量必须与该资源类型的承诺资源数量完全一致。不过,如果您为搭配 C4A、C4D 或 Z3 机器类型使用的本地 Titanium SSD 磁盘购买承诺,则不适用此要求。
例如,如果您要为 4 个 V100 GPU 和 2 个本地 SSD 磁盘购买承诺,则承诺附加的预留必须指定总共 4 个 V100 GPU 和 2 个本地 SSD。您预留的 vCPU 数量和内存量可能多于或少于您承诺的数量。但是,如果您为 4 个 C4A vCPU 和 2 个本地 Titanium SSD 磁盘购买承诺,则无需将任何预留附加到该承诺。
对于 GPU,请购买您要使用的特定 GPU 类型的承诺使用合约。例如,您可以为 NVIDIA P100 或 NVIDIA V100 购买承诺使用合约,但不能使用为 NVIDIA P100 GPU 购买的承诺使用合约来涵盖 NVIDIA V100 GPU。
如果附加预留是共享预留,并且您希望在承诺项目以外使用该预留时获得适用的 CUD,则必须执行以下两项操作:
- 仅在与承诺属于同一 Cloud Billing 账号的项目之间共享预留。
- 为该 Cloud Billing 账号启用 CUD 共享。
附加现有预留
您可以在购买承诺时使用 Google Cloud 控制台、Google Cloud CLI 或 REST 来附加现有预留。
控制台
在使用 Google Cloud 控制台购买承诺之前,先选择要用于购买承诺的项目。如果为 Cloud Billing 账号启用了 CUD 共享,则您可以使用该 Cloud Billing 账号中的任何项目购买承诺。选择项目后,请执行以下操作:
在 Google Cloud 控制台中,前往承诺使用折扣页面。
如需购买承诺,请点击
购买承诺。系统会打开购买承诺使用折扣页面,并显示硬件标签页。在名称字段中,输入承诺的名称。
在区域字段中,选择您要在其中承诺使用 Compute Engine 资源的区域。
在承诺类型字段中,选择承诺的资源的机器家族系列。以下承诺类型提供适用于 GPU 和/或本地 SSD 磁盘的选项:
- 加速器优化的 A2,适用于 A2 机器类型资源
- 加速器优化 A3,适用于 A3 Edge 和 A3 High 机器类型资源
- 加速器优化 A3 Mega,适用于 A3 Mega 机器类型资源
- 计算优化的 C2,适用于 C2 机器类型资源
- 计算优化的 C2D,适用于 C2D 机器类型资源
- 通用 C3,适用于 C3 机器类型资源
- 通用 C3D,适用于 C3D 机器类型资源
- 通用 N1,适用于 N1 机器类型资源
- 通用 N2,适用于 N2 机器类型资源
- 通用 N2D,适用于 N2D 机器类型资源
- 图形优化的 G2,适用于 G2 机器类型资源
- 内存优化的 M3,适用于 M3 机器类型资源
- 存储优化 Z3,适用于 Z3 机器类型资源
在时长部分,执行以下操作:
- 如需指定承诺方案,请选择 1 年或 3 年。此设置决定了承诺的预设期限。
可选。如需为承诺指定自定义期限,请点击延长结束日期切换开关,然后在日期字段中指定自定义结束日期。如需了解详情,请参阅延长承诺期限。
在核心数字段中,输入您要承诺购买的 vCPU 的数量。
在内存字段中,输入您要承诺购买的内存量(以 GB 为单位)。
只能以 0.25 GB 为增量来指定内存量。如需为承诺指定自定义内存值,请改用 gcloud CLI 或 REST。
如需承诺使用 GPU,请在 GPU 部分中点击
添加 GPU,然后执行以下操作:- 在 GPU 类型字段中,选择 GPU 类型。
- 在 GPU 数量字段中,输入 GPU 数量。
- 可选:如果您的 GPU 模型支持适用于图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS),并且您计划运行图形密集型工作负载,请选中启用虚拟工作站 (NVIDIA GRID) 复选框。
如需承诺使用本地 SSD 磁盘,请在本地 SSD 部分中点击
添加 SSD,然后在 SSD 数量字段中指定磁盘数量。如需将一个或多个现有预留附加到承诺,请在预留字段中选择附加现有预留。
Google Cloud 控制台会显示项目中其区域、机器类型和 GPU 类型与承诺一致的所有预留的列表。之后,执行以下操作:
- 可选。如需查看具有特定属性的预留,请在过滤条件菜单中,为所需的属性添加或移除过滤条件。
- 选择您要附加到承诺的所有预留。
如需完成购买承诺及附加预留的过程,请执行以下操作:
- 点击购买。
- 在购买承诺使用折扣对话框中,如果您同意服务专用条款,请再次点击购买。
gcloud
如需通过附加现有预留来购买承诺,请运行 gcloud compute commitments create
命令。在您的命令中,添加 --existing-reservation
标志以指定要附加到承诺的现有预留。为要附加的每个现有预留添加一次此标志。您可以将任意数量的现有预留附加到承诺。
例如,如需通过附加两个预留来购买承诺,请运行以下命令:
gcloud compute commitments create COMMITMENT_NAME \ --region=REGION \ --project=PROJECT_ID \ --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \ --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \ --plan=DURATION \ --type=COMMITMENT_TYPE \ --custom-end-time=CUSTOM_END_DATE \ --existing-reservation=name='RESERVATION_NAME_1',zone='RESERVATION_ZONE_1' \ --existing-reservation=name='RESERVATION_NAME_2',zone='RESERVATION_ZONE_2'
替换以下内容:
COMMITMENT_NAME
:承诺的名称。REGION
:承诺所在的区域。PROJECT_ID
:项目的 ID,您将在其中购买包含附加预留的承诺。DURATION
:承诺的期限,12-month
或36-month
。CUSTOM_END_DATE
:可选。期限的自定义结束日期,其格式必须为YYYY-MM-DD
。例如,如需指定自定义结束日期为 2024 年 4 月 20 日,请将其格式设置为2024-04-20
。COMMITMENT_TYPE
:承诺类型。以下承诺类型支持 GPU 和/或本地 SSD 磁盘:accelerator-optimized
(适用于 A2 机器类型资源)accelerator-optimized-a3
,适用于 A3 Edge 和 A3 High 机器类型资源accelerator-optimized-a3-mega
,适用于 A3 Mega 机器类型资源compute-optimized
(适用于 C2 机器类型资源)compute-optimized-c2d
(适用于 C2D 机器类型资源)compute-optimized-c3
(适用于 C3 机器类型资源)compute-optimized-c3d
(适用于 C3D 机器类型资源)general-purpose
(适用于 N1 机器类型资源)general-purpose-n2
(适用于 N2 机器类型资源)general-purpose-n2d
(适用于 N2D 机器资源)- 适用于 G2 机器类型资源的
graphics-optimized
memory-optimized-m3
(适用于 M3 机器类型资源)storage-optimized-z3
,适用于 Z3 机器类型资源
COMMITTED_VCPUS
:您的承诺中包含的 vCPU 数量。该数字必须是正整数。COMMITTED_MEMORY
:您的承诺中包含的内存量,以 MB 或 GB 为单位。例如10240MB
或10GB
。如果您未指定单位,Compute Engine 将使用 GB 作为单位。COMMITTED_LOCAL_SSD
:您的承诺中包含的本地 SSD 空间,以 GB 为单位。每个本地 SSD 磁盘为 375 GB。COMMITTED_ACCELERATOR_COUNT
:您的承诺中包含的 GPU 数量。COMMITTED_ACCELERATOR_TYPE
:您的承诺中包含的 GPU 类型。RESERVATION_NAME_1
和RESERVATION_NAME_2
:要附加到承诺的现有预留的名称。RESERVATION_ZONE_1
和RESERVATION_ZONE_2
:要附加到承诺的现有预留的可用区。
示例:通过附加现有预留来购买承诺
假设项目 myproject
的 us-central1-a
和 us-central1-b
可用区中有两个预留 res-01
和 res-02
。假设这些预留包含 4 个 NVIDIA P100 GPU 和 4 个本地 SSD 磁盘的总容量。如需在此项目的 us-central1
区域中为这些 GPU 和本地 SSD 磁盘购买新承诺,并将这些现有预留用作附加预留,请运行以下命令。请注意,示例承诺还包含 vCPU 和内存。
gcloud compute commitments create commitment-01 \ --region=us-central1 \ --project=myproject \ --resources=vcpu=96,memory=624GB,local-ssd=1500 \ --resources-accelerator=type=nvidia-tesla-p100,count=4 \ --plan 12-month \ --existing-reservation=name=res-01,zone=us-central1-a \ --existing-reservation=name=res-02,zone=us-central1-b
REST
如需通过附加现有预留来购买承诺,请向 regionCommitments.insert
方法发出 POST
请求。在您的请求中添加 existingReservations
字段,以指定要附加到承诺的所有现有预留的逗号分隔列表。您可以将任意数量的现有预留附加到承诺。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments { "name": "COMMITMENT_NAME", "plan": "DURATION", "type": COMMITMENT_TYPE, "resources": [ { "amount": "COMMITTED_VCPUS", "type": "VCPU" }, { "amount": "COMMITTED_MEMORY", "type": "MEMORY" }, { "acceleratorType": "COMMITTED_ACCELERATOR_TYPE", "amount": "COMMITTED_ACCELERATOR_COUNT", "type": "ACCELERATOR" } { "amount": "COMMITTED_LOCAL_SSD", "type": "LOCAL_SSD" } ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", "existingReservations": "RESERVATION_URLs" }
替换以下内容:
COMMITMENT_NAME
:承诺的名称。REGION
:承诺所在的区域。PROJECT_ID
:项目的 ID,您将在其中购买包含附加预留的承诺。DURATION
:承诺的期限,TWELVE_MONTH
或THIRTY_SIX_MONTH
。COMMITMENT_TYPE
:承诺类型。以下承诺类型支持 GPU 和/或本地 SSD 磁盘:ACCELERATOR_OPTIMIZED
(适用于 A2 机器类型资源)ACCELERATOR_OPTIMIZED_A3
,适用于 A3 Edge 和 A3 High 机器类型资源ACCELERATOR_OPTIMIZED_A3_MEGA
,适用于 A3 Mega 机器类型资源COMPUTE_OPTIMIZED
(适用于 C2 机器类型资源)COMPUTE_OPTIMIZED_C2D
(适用于 C2D 机器类型资源)COMPUTE_OPTIMIZED_C3
(适用于 C3 机器类型资源)COMPUTE_OPTIMIZED_C3D
(适用于 C3D 机器类型资源)GENERAL_PURPOSE
(适用于 N1 机器类型资源)GENERAL_PURPOSE_N2
(适用于 N2 机器类型资源)GENERAL_PURPOSE_N2D
(适用于 N2D 机器资源)- 适用于 G2 机器类型资源的
GRAPHICS_OPTIMIZED
MEMORY_OPTIMIZED_M3
(适用于 M3 机器类型资源)STORAGE_OPTIMIZED_Z3
,适用于 Z3 机器类型资源
COMMITTED_VCPUS
:您的承诺中包含的 vCPU 数量。该数字必须是正整数。COMMITTED_MEMORY
:您的承诺中包含的内存量,以 MB 为单位。例如10240MB
。COMMITTED_LOCAL_SSD
:您的承诺中包含的本地 SSD 存储空间,以 GB 为单位。每个本地 SSD 磁盘为 375 GB。COMMITTED_ACCELERATOR_COUNT
:您的承诺中包含的 GPU 数量。COMMITTED_ACCELERATOR_TYPE
:您的承诺中包含的 GPU 类型。CUSTOM_END_DATE
:可选。期限的自定义结束日期,其格式必须为YYYY-MM-DD
。例如,如需指定自定义结束日期为 2024 年 4 月 20 日,请将其格式设置为2024-04-20
。END_TIME
:美国和加拿大太平洋时间(UTC-8 或 UTC-7)的零点,采用世界协调时间 (UTC) 的偏移量格式。仅当您为承诺指定了自定义结束日期时,才需要指定此值。请指定以下某个值:- 夏令时期间:
07:00:00
- 其他时间段:
08:00:00
- 夏令时期间:
RESERVATION_URLs
:要附加到承诺的现有预留的网址的逗号分隔列表。例如,如需附加res-1
和res-2
这两个预留,请指定以下网址:"https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/reservations/example-res-1", "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-c/reservations/example-res-2"
示例:通过附加现有预留来购买承诺
假设项目 myproject
的 us-central1-a
和 us-central1-b
可用区中有两个预留 res-01
和 res-02
。假设这些预留包含 4 个 NVIDIA P100 GPU 和 4 个本地 SSD 磁盘的总容量。如需在此项目的 us-central1
区域中为这些 GPU 和本地 SSD 磁盘购买新承诺,并将这些现有预留用作附加预留,请发出以下 POST
请求。请注意,示例承诺还包含 vCPU 和内存。
POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments { "name": "commitment-01", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE" "resources": [ { "amount": "96", "type": "VCPU" }, { "amount": "638976", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-p100", "amount": "4", "type": "ACCELERATOR" }, { "amount": "1536000", "type": "LOCAL_SSD" } ], "existingReservations": [ "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/reservations/res-01", "https://www.googleapis.com/compute/v1/projects/my-project/zone/us-central1-b/reservations/res-02" ] }
创建要附加的新预留
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST,在购买承诺时创建附加预留。
控制台
在使用 Google Cloud 控制台购买承诺之前,先选择要用于购买承诺的项目。如果为 Cloud Billing 账号启用了 CUD 共享,则您可以使用该 Cloud Billing 账号中的任何项目购买承诺。选择项目后,请执行以下操作:
在 Google Cloud 控制台中,前往承诺使用折扣页面。
如需购买承诺,请点击
购买承诺。系统会打开购买承诺使用折扣页面,并显示硬件标签页。在名称字段中,输入承诺的名称。
在区域字段中,选择您要在其中承诺使用 Compute Engine 资源的区域。
在承诺类型字段中,选择承诺的资源的机器家族系列。以下承诺类型提供适用于 GPU 和/或本地 SSD 磁盘的选项:
- 加速器优化的 A2,适用于 A2 机器类型资源
- 加速器优化 A3,适用于 A3 Edge 和 A3 High 机器类型资源
- 加速器优化 A3 Mega,适用于 A3 Mega 机器类型资源
- 计算优化的 C2,适用于 C2 机器类型资源
- 计算优化的 C2D,适用于 C2D 机器类型资源
- 通用 C3,适用于 C3 机器类型资源
- 通用 C3D,适用于 C3D 机器类型资源
- 通用 N1,适用于 N1 机器类型资源
- 通用 N2,适用于 N2 机器类型资源
- 通用 N2D,适用于 N2D 机器类型资源
- 图形优化的 G2,适用于 G2 机器类型资源
- 内存优化的 M3,适用于 M3 机器类型资源
- 存储优化 Z3,适用于 Z3 机器类型资源
在时长部分,选择 1 年或 3 年作为承诺的期限。
在核心数字段中,输入您要承诺使用的 vCPU 的数量。
在内存字段中,输入您要承诺使用的内存量(以 GB 为单位)。
如需承诺使用 GPU,请在 GPU 部分中点击
添加 GPU,然后执行以下操作:- 在 GPU 类型字段中,选择 GPU 类型。
- 在 GPU 数量字段中,输入 GPU 数量。
- 可选:如果您的 GPU 模型支持适用于图形工作负载的 NVIDIA RTX 虚拟工作站 (vWS),并且您计划运行图形密集型工作负载,请选中启用虚拟工作站 (NVIDIA GRID) 复选框。
如需承诺使用本地 SSD 磁盘,请在本地 SSD 部分中点击
添加 SSD,然后在 SSD 数量字段中指定磁盘数量。如需创建新的预留并将其附加到承诺,请在预留字段中选择创建预留,然后执行以下操作。针对您要创建和附加的每个新预留重复此步骤。
- 点击添加预留。系统会显示新预留部分。
- 在名称字段中,输入附加预留的名称。
- 在区域字段中,选择与您的承诺相同的区域。
- 在可用区字段中,选择您要在其中预留资源的可用区。
在共享类型部分中,通过以下方式之一指定您希望如何共享此预留:
- 如需创建单项目预留,请选择本地。
- 如需创建与多个项目共享的预留,请选择共享。然后,如需指定要与之共享此预留的项目,请点击 添加项目,然后从当前项目的组织中选择所需的项目。
在搭配虚拟机实例使用字段中,通过以下方式之一选择您希望虚拟机如何使用预留:
- 如需允许具有匹配属性的虚拟机自动使用此预留,请点击自动使用预留(默认)。
- 如需只有在创建具有匹配属性且通过名称明确指向此预留的虚拟机时使用此预留的资源,请点击选择特定预留。
在资源详情部分中,执行以下操作:
- 在虚拟机实例数量字段中,输入要预留的虚拟机实例数量。
在机器配置部分中,通过以下方式之一指定预留虚拟机的属性:
如需使用现有实例模板指定虚拟机的属性,请选择使用实例模板。
在实例模板字段中,选择一个实例模板,以指定与您的承诺相同的机器家族系列。如果您选择区域级实例模板,则该实例模板的区域也必须与您的承诺中指定的区域一致。
如需手动指定虚拟机的属性,请选择选择机器类型,然后执行以下操作:
选择适用于您为承诺指定的机器系列的机器家族:
- 通用,适用于通用机器系列
- 计算优化,适用于计算优化机器系列
- 内存优化,适用于内存优化机器系列
- GPU,适用于加速器优化机器系列
在包含系列列的表中,选择您为承诺指定的同一机器系列。
在机器类型字段中,通过以下方式之一指定预定义或自定义机器类型:
- 如需选择预定义机器类型,请选择预设,然后选择所需的机器类型。
- 如需选择自定义机器类型,请选择自定义,然后指定所需的核心数和内存。
如需指定满足最低要求的 CPU 平台和/或 GPU,请展开
CPU 平台和 GPU 菜单,然后执行以下操作:- 可选:如需指定满足最低要求的 CPU 平台,请在 CPU 平台列表中选择一个选项。
可选:如需预留 GPU,请点击
添加 GPU。然后,在 GPU 类型和 GPU 数量字段中,选择每个虚拟机的 GPU 类型和数量。
如需预留本地 SSD 磁盘,请执行以下操作:
- 在磁盘数量字段中,选择每个虚拟机所需的本地 SSD 磁盘的数量。
- 在接口类型字段中,选择本地 SSD 磁盘的接口。
如需完成为此预留指定属性,请点击完成。
如需完成购买承诺及附加预留的过程,请执行以下操作:
- 点击购买。
- 在购买承诺使用折扣对话框中,如果您同意服务专用条款,请再次点击购买。
gcloud
如需在购买承诺时创建附加预留,请运行 gcloud compute commitments create
命令。
根据您要附加单个预留还是多个预留,通过以下方式之一运行该命令:
如需创建单个预留并附加到承诺,请运行以下命令来定义附加预留的属性:
gcloud compute commitments create COMMITMENT_NAME \ --region=REGION \ --project=PROJECT_ID \ --plan DURATION \ --type COMMITMENT_TYPE --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \ --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \ --custom-end-time=CUSTOM_END_DATE \ --reservation=RESERVATION_NAME \ --reservation-zone=RESERVATION_ZONE \ --machine-type=RESERVED_MACHINE_TYPE \ --require-specific-reservation=REQUIRE_SPECIFIC_RESERVATION_VALUE \ --vm-count=NUMBER_OF_RESERVED_VMs \ --accelerator=type=RESERVED_ACCELERATOR_TYPE,count=RESERVED_ACCELERATOR_COUNT \ --local-ssd=interface=INTERFACE_1,size=375 \ --local-ssd=interface=INTERFACE_2,size=375 \ --minimum-cpu-platform=MINIMUM_CPU_PLATFORM \ --share-setting=SHARE_SETTING \ --share-with=CONSUMER_PROJECT_ID_1,CONSUMER_PROJECT_ID_2
如需创建多个预留并附加到承诺,请使用 YAML 文件定义预留的属性,然后在用于购买承诺的命令中指定该 YAML 文件。(可选)您还可以使用此 YAML 文件方法创建单个预留并附加到承诺。如需使用此方法创建附加预留,请执行以下操作:
在当前目录中创建 YAML 文件,并指定每个附加预留的配置。例如,如需指定与两个指定 GPU、两个本地 SSD 磁盘和满足最低要求的 CPU 平台的项目共享的共享预留的配置,请在 YAML 文件中添加以下文本:
- reservation: RESERVATION_NAME reservation_zone: RESERVATION_ZONE require_specific_reservation: REQUIRE_SPECIFIC_RESERVATION_VALUE vm_count: NUMBER_OF_RESERVED_VMs machine_type: RESERVED_MACHINE_TYPE accelerator: - count: RESERVED_ACCELERATOR_COUNT type: RESERVED_ACCELERATOR_TYPE localssd: - interface: INTERFACE_1 size: 375 - interface: INTERFACE_2 size: 375 project: OWNER_PROJECT_ID minimum-cpu-platform: MINIMUM_CPU_PLATFORM share-setting: SHARE_SETTING share-with: - CONSUMER_PROJECT_ID_1 - CONSUMER_PROJECT_ID_2
如需为多个预留指定配置,请为要创建的每个预留重复这些属性。您可以将任意数量的现有预留附加到承诺。
运行
gcloud compute commitments create
命令并添加--reservation-from-file
标志。gcloud compute commitments create COMMITMENT_NAME \ --region REGION \ --project PROJECT_ID \ --plan DURATION \ --type COMMITMENT_TYPE \ --resources=vcpu=COMMITTED_VCPUS,memory=COMMITTED_MEMORY,local-ssd=COMMITTED_LOCAL_SSD \ --resources-accelerator=count=COMMITTED_ACCELERATOR_COUNT,type=COMMITTED_ACCELERATOR_TYPE \ --reservations-from-file=YAML_FILE
将以下字段替换为承诺和附加预留的相应属性:
承诺
COMMITMENT_NAME
:承诺的名称。REGION
:承诺所在的区域。PROJECT_ID
:项目的 ID,您将在其中购买包含附加预留的承诺。DURATION
:承诺的期限,12-month
或36-month
。CUSTOM_END_DATE
:可选。期限的自定义结束日期,其格式必须为YYYY-MM-DD
。例如,如需指定自定义结束日期为 2024 年 4 月 20 日,请将其格式设置为2024-04-20
。COMMITMENT_TYPE
:承诺类型。以下承诺类型支持 GPU 和/或本地 SSD 磁盘:accelerator-optimized
(适用于 A2 机器类型资源)accelerator-optimized-a3
,适用于 A3 Edge 和 A3 High 机器类型资源accelerator-optimized-a3-mega
,适用于 A3 Mega 机器类型资源compute-optimized
(适用于 C2 机器类型资源)compute-optimized-c2d
(适用于 C2D 机器类型资源)compute-optimized-c3
(适用于 C3 机器类型资源)compute-optimized-c3d
(适用于 C3D 机器类型资源)general-purpose
(适用于 N1 机器类型资源)general-purpose-n2
(适用于 N2 机器类型资源)general-purpose-n2d
(适用于 N2D 机器资源)- 适用于 G2 机器类型资源的
graphics-optimized
memory-optimized-m3
(适用于 M3 机器类型资源)storage-optimized-z3
,适用于 Z3 机器类型资源
COMMITTED_VCPUS
:您的承诺中包含的 vCPU 数量。该数字必须是正整数。COMMITTED_MEMORY
:您的承诺中包含的内存量,以 MB 或 GB 为单位。例如10GB
或10240MB
。如果您未指定单位,Compute Engine 将使用 GB 作为单位。COMMITTED_LOCAL_SSD
:您的承诺中包含的本地 SSD 存储空间,以 GB 为单位。每个本地 SSD 磁盘为 375 GB。COMMITTED_ACCELERATOR_COUNT
:您的承诺中包含的 GPU 数量。COMMITTED_ACCELERATOR_TYPE
:您的承诺中包含的 GPU 类型。YAML_FILE
:包含附加预留配置的 YAML 文件的路径。
附加预留
RESERVATION_NAME
:附加预留的名称。RESERVATION_ZONE
:附加预留的可用区。REQUIRE_SPECIFIC_RESERVATION_VALUE
:指定附加预留是否为明确指定的预留(true
或false
)。如需详细了解明确指定的预留,请参阅预留的工作原理。NUMBER_OF_RESERVED_VMS
:在附加预留中预留的虚拟机数量。RESERVED_MACHINE_TYPE
:附加预留中的虚拟机机器类型。- 对于预定义机器类型,请使用
MACHINE_FAMILY-standard-CPUS
格式;例如n2-standard-4
。 对于自定义机器类型,请使用
MACHINE_FAMILY-custom-CPUS-MEMORY
格式;例如n2-custom-4-5120
。如需查看限制条件的完整列表,请参阅自定义机器类型的规范。替换以下内容:
MACHINE_FAMILY
:机器类型系列;例如,为 N2 虚拟机指定n2
。CPUS
:vCPUs 的数量。MEMORY
:预留虚拟机的总内存。内存必须是 256 MB 的整数倍,且必须以 MB 为单位提供;例如,如需创建配备 4 个 vCPU 和 5 GB 内存(大小为 5120 MB)的 N2 虚拟机,请使用n2-custom-4-5120
。
- 对于预定义机器类型,请使用
RESERVED_ACCELERATOR_COUNT
:您要在附加预留中为每个虚拟机添加的 GPU 数量。RESERVED_ACCELERATOR_TYPE
:您要在附加预留中添加的加速器类型。INTERFACE_1
和INTERFACE_2
:您希望每个预留虚拟机的本地 SSD 磁盘使用的接口类型。有效选项包括scsi
和nvme
。每个本地 SSD 磁盘为 375 GB。对要添加的每个本地 SSD 磁盘重复local_ssd
参数。您最多可以指定 24 个本地 SSD 磁盘。OWNER_PROJECT_ID
:项目的 ID,您将在其中购买包含附加预留的承诺。如果要在多个使用方项目之间共享附加预留,请指定此字段。MINIMUM_CPU_PLATFORM
:您要为附加预留指定的满足最低要求的 CPU 平台。SHARE_SETTING
:附加预留的共享类型。如果要在多个使用方项目之间共享附加预留,请将此字段的值指定为projects
。如果要创建单项目预留,请排除此字段。CONSUMER_PROJECT_ID_1
和CONSUMER_PROJECT_ID_2
:可以共享此预留的项目的项目 ID,例如project-1
和project-2
。您最多可以添加 100 个使用方项目。这些项目必须与所有者项目位于同一组织中。请勿添加创建此预留的项目的 ID,因为默认情况下,该项目可以使用此预留。如果要创建单项目预留,请排除这些字段。
只有在请求时目标可用区中有足够的指定机器类型资源和足够的配额时,Compute Engine 才会创建承诺和附加预留。如果您的购买成功,您会看到如下所示的成功消息:
Created[https://www.googleapis.com/compute/v1/projects/your-project/regions/your-region/commitments/your-commitment-name]
通过创建要附加的新预留来购买承诺的示例
以下示例场景和命令展示了如何通过创建要附加到承诺的新预留来为 GPU 和/或本地 SSD 磁盘购买承诺。
示例 1:通过附加单个新预留为 GPU 购买承诺
假设您要在 us-central1
区域中购买包含 4 个 NVIDIA V100 GPU 的承诺 commitment-01
。您要创建新预留 reservation-01
作为这些 GPU 的附加预留。假设您还想要指定 Compute Engine 在 us-central1-a
可用区中的 2 个 n1-standard-32
虚拟机上使用这些预留的 GPU。如需购买此示例承诺及其附加预留,请运行以下命令:
gcloud compute commitments create commitment-01 \ --region=us-central1 \ --project=myproject \ --resources=vcpu=96,memory=624GB \ --resources-accelerator=type=nvidia-tesla-v100,count=4 \ --plan 12-month \ --reservation=reservation-01 \ --reservation-zone=us-central1-a \ --machine-type=n1-standard-32 \ --accelerator=type=nvidia-tesla-v100,count=2 \ --vm-count=2
示例 2:为 GPU 购买承诺,但不为 vCPU 或内存购买承诺
如需为 GPU 和本地 SSD 磁盘购买承诺并预留 GPU 和本地 SSD 磁盘,但不为 vCPU 或内存购买承诺,请指定 0
作为 vCPU 和内存数量的值。例如,假设您想要为 us-west2
区域中的单个 NVIDIA P4 GPU 购买承诺 commitment-02
。您还希望创建新的预留作为附加预留,并指定 Compute Engine 在 us-west2-b
可用区中的 n1-standard-2
虚拟机上使用预留的 GPU。如需购买此示例承诺及其附加预留,请运行以下命令:
gcloud compute commitments create commitment-02 \ --region=us-west2 \ --project=myproject \ --resources=vcpu=0,memory=0 \ --resources-accelerator=type=nvidia-tesla-p4,count=1 \ --plan 12-month \ --reservation=reservation-01 \ --reservation-zone=us-west2-b \ --machine-type=n1-standard-2 \ --accelerator=type=nvidia-tesla-p4,count=1 \ --vm-count=1
示例 3:通过附加多个新预留为 GPU 和本地 SSD 磁盘购买承诺
假设您想要为 us-central1
区域中的 1 个 NVIDIA V100 GPU 和 2 个本地 SSD 磁盘购买承诺 commitment-03
。您还希望在 us-central1-a
可用区中创建和附加两个预留。在第一个预留 res-01
中,您想要预留 1 个 n1-standard-2
虚拟机和 1 个 GPU。您希望将 res-01
设置为指定的预留,这表示您必须明确指定该预留的名称才能使用其预留的虚拟机。在第二个预留 res-02
中,您想要预留 1 个 n1-standard-8
虚拟机,并挂接 2 种本地 SSD 磁盘。
如需购买包含附加预留的此示例承诺,请先创建具有两个预留属性的 YAML 文件。
- reservation: res-01 reservation_zone: us-central1-a require_specific_reservation: true vm_count: 1 machine_type: n1-standard-2 accelerator: - count: 1 type: nvidia-tesla-v100 - reservation: res-02 reservation_zone: us-central1-a vm_count: 1 machine_type: n1-standard-8 local_ssd: - interface: scsi size: 375 - interface: nvme size: 375
创建 YAML 文件后,如需完成购买承诺及其附加预留的操作,请运行以下命令。请注意,示例承诺还包含 vCPU 和内存资源。
gcloud compute commitments create commitment-03 \ --region=us-central1 \ --project=myproject \ --resources=vcpu=96,memory=624,local-ssd=750 \ --resources-accelerator=type=nvidia-tesla-v100,count=1 \ --plan 12-month \ --reservations-from-file=YAML_FILE
REST
如需在购买承诺时创建附加预留,请向 regionCommitments.insert
方法发出 POST
请求。在请求中添加 reservations
字段,以定义要创建和附加的所有新预留的列表。您可以将任意数量的现有预留附加到承诺。
如需通过手动指定所有虚拟机属性来创建新预留,请添加
instanceProperties
字段并排除sourceInstanceTemplate
字段。例如,如需手动指定与两个指定 GPU、两个本地 SSD 磁盘和满足最低要求的 CPU 平台的项目共享的共享预留的配置,请发出以下请求:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments { "name": "COMMITMENT_NAME", "plan": "DURATION", "type": COMMITMENT_TYPE, "resources": [ { "amount": "COMMITTED_VCPUS", "type": "VCPU" }, { "amount": "COMMITTED_MEMORY", "type": "MEMORY" }, { "acceleratorType": "COMMITTED_ACCELERATOR_TYPE", "amount": "COMMITTED_ACCELERATOR_COUNT", "type": "ACCELERATOR" } { "amount": "COMMITTED_LOCAL_SSD", "type": "LOCAL_SSD" } ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", "reservations": [ { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_RESERVED_VMS", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": "RESERVED_ACCELERATOR_COUNT", "acceleratorType": "RESERVED_ACCELERATOR_TYPE" } ], "localSsds": [ { "diskSizeGb": "375", "interface": "RESERVED_INTERFACE_1" }, { "diskSizeGb": "375", "interface": "RESERVED_INTERFACE_2" } ], "machineType": "RESERVED_MACHINE_TYPE", "minCpuPlatform": "MINIMUM_CPU_PLATFORM" } }, "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE", "zone": "RESERVED_ZONE", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } } } ] }
如需通过指定实例模板创建新预留,请添加
sourceInstanceTemplate
字段并排除instanceProperties
字段。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments { "name": "COMMITMENT_NAME", "plan": "DURATION", "type": COMMITMENT_TYPE, "resources": [ { "amount": "COMMITTED_VCPUS", "type": "VCPU" }, { "amount": "COMMITTED_MEMORY", "type": "MEMORY" }, { "acceleratorType": "COMMITTED_ACCELERATOR_TYPE", "amount": "COMMITTED_ACCELERATOR_COUNT", "type": "ACCELERATOR" } { "amount": "COMMITTED_LOCAL_SSD", "type": "LOCAL_SSD" } ], "customEndTimestamp": "CUSTOM_END_DATETEND_TIMEZ", "reservations": [ { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_RESERVED_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" }, "specificReservationRequired": REQUIRE_SPECIFIC_RESERVATION_VALUE", "zone": "RESERVED_ZONE", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } } } ] }
将以下字段替换为承诺和附加预留的相应属性:
承诺
COMMITMENT_NAME
:承诺的名称。REGION
:承诺所在的区域。PROJECT_ID
:项目的 ID,您将在其中购买包含附加预留的承诺。DURATION
:承诺的期限,TWELVE_MONTH
或THIRTY_SIX_MONTH
。COMMITMENT_TYPE
:承诺类型。以下承诺类型支持 GPU 和/或本地 SSD 磁盘:ACCELERATOR_OPTIMIZED
(适用于 A2 机器类型资源)ACCELERATOR_OPTIMIZED_A3
,适用于 A3 Edge 和 A3 High 机器类型资源ACCELERATOR_OPTIMIZED_A3_MEGA
,适用于 A3 Mega 机器类型资源COMPUTE_OPTIMIZED
(适用于 C2 机器类型资源)COMPUTE_OPTIMIZED_C2D
(适用于 C2D 机器类型资源)COMPUTE_OPTIMIZED_C3
(适用于 C3 机器类型资源)COMPUTE_OPTIMIZED_C3D
(适用于 C3D 机器类型资源)GENERAL_PURPOSE
(适用于 N1 机器类型资源)GENERAL_PURPOSE_N2
(适用于 N2 机器类型资源)GENERAL_PURPOSE_N2D
(适用于 N2D 机器资源)- 适用于 G2 机器类型资源的
GRAPHICS_OPTIMIZED
MEMORY_OPTIMIZED_M3
(适用于 M3 机器类型资源)STORAGE_OPTIMIZED_Z3
,适用于 Z3 机器类型资源
COMMITTED_VCPUS
:您的承诺中包含的 vCPU 数量。该数字必须是正整数。COMMITTED_MEMORY
:您的承诺中包含的内存量,以 MB 为单位。例如10240MB
。COMMITTED_LOCAL_SSD
:您的承诺中包含的本地 SSD 存储空间,以 GB 为单位。每个本地 SSD 磁盘为 375 GB。COMMITTED_ACCELERATOR_COUNT
:您的承诺中包含的 GPU 数量。COMMITTED_ACCELERATOR_TYPE
:您的承诺中包含的 GPU 类型。CUSTOM_END_DATE
:可选。期限的自定义结束日期,其格式必须为YYYY-MM-DD
。例如,如需指定自定义结束日期为 2024 年 4 月 20 日,请将其格式设置为2024-04-20
。END_TIME
:美国和加拿大太平洋时间(UTC-8 或 UTC-7)的零点,采用世界协调时间 (UTC) 的偏移量格式。仅当您为承诺指定了自定义结束日期时,才需要指定此值。请指定以下某个值:- 夏令时期间:
07:00:00
- 其他时间段:
08:00:00
- 夏令时期间:
附加预留
RESERVATION_NAME
:附加预留的名称。RESERVATION_ZONE
:附加预留的可用区。REQUIRE_SPECIFIC_RESERVATION_VALUE
:指定附加预留是否为明确指定的预留(true
或false
)。如需详细了解明确指定的预留,请参阅预留的工作原理。NUMBER_OF_RESERVED_VMS
:在附加预留中预留的虚拟机数量。RESERVED_MACHINE_TYPE
:附加预留中的虚拟机机器类型。- 对于预定义机器类型,请使用
MACHINE_FAMILY-standard-CPUS
格式;例如n2-standard-4
。 对于自定义机器类型,请使用
MACHINE_FAMILY-custom-CPUS-MEMORY
格式;例如n2-custom-4-5120
。如需查看限制条件的完整列表,请参阅自定义机器类型的规范。替换以下内容:
MACHINE_FAMILY
:机器类型系列;例如,为 N2 虚拟机指定n2
。CPUS
:vCPUs 的数量。MEMORY
:预留虚拟机的总内存。内存必须是 256 MB 的整数倍,且必须以 MB 为单位提供;例如,如需创建配备 4 个 vCPU 和 5 GB 内存(大小为 5120 MB)的 N2 虚拟机,请使用n2-custom-4-5120
。
- 对于预定义机器类型,请使用
RESERVED_ACCELERATOR_COUNT
:您要在附加预留中为每个虚拟机添加的 GPU 数量。RESERVED_ACCELERATOR_TYPE
:您要在附加预留中添加的加速器类型。INTERFACE_1
和INTERFACE_2
:您希望每个预留虚拟机的本地 SSD 磁盘使用的接口类型。有效选项包括scsi
和nvme
。每个本地 SSD 磁盘为 375 GB。对要添加的每个本地 SSD 磁盘重复localSsds
参数。您最多可以指定 24 个本地 SSD 磁盘。MINIMUM_CPU_PLATFORM
:您要为附加预留指定的满足最低要求的 CPU 平台。INSTANCE_TEMPLATE_NAME
:您要用于创建附加预留的实例模板的名称。SHARE_SETTING
:附加预留的共享类型。如果要在多个使用方项目之间共享附加预留,请将此字段的值指定为SPECIFIC_PROJECTS
。如果要创建单项目预留,请排除此字段。CONSUMER_PROJECT_ID_1
和CONSUMER_PROJECT_ID_2
:可以共享此预留的项目的项目 ID,例如project-1
和project-2
。您最多可以添加 100 个使用方项目。这些项目必须与所有者项目位于同一组织中。请勿添加创建此预留的项目的 ID,因为默认情况下,该项目可以使用此预留。如果要创建单项目预留,请排除这些字段。
只有在请求时目标可用区中有足够的指定机器类型资源和足够的配额时,Compute Engine 才会创建承诺和附加预留。如果购买成功,Compute Engine 会为您的 REST API 请求返回 200
状态。
通过创建要附加的新预留来购买承诺的示例
以下示例场景和命令展示了如何通过创建要附加到承诺的新预留来为 GPU 和/或本地 SSD 磁盘购买承诺。
示例 1:通过附加单个新预留为 GPU 购买承诺
假设您要在 us-central1
区域中购买包含 4 个 NVIDIA V100 GPU 的承诺 commitment-01
。您要创建新预留 reservation-01
作为这些 GPU 的附加预留。假设您还想要指定 Compute Engine 在 us-central1-a
可用区中的 2 个 n1-standard-8
虚拟机上使用这些预留的 GPU。如需购买此示例承诺及其附加预留,请发出以下 POST
请求:
POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments { "name": "commitment-01", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE" "resources": [ { "amount": "96", "type": "VCPU" }, { "amount": "638976", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-v100", "amount": "4", "type": "ACCELERATOR" } ], "reservations": [ { "name": "reservation-01", "specificReservation": { "count": "2", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 2, "acceleratorType": "nvidia-tesla-v100" } ], "machineType": "n1-standard-8" } }, "specificReservationRequired": false, "zone": "us-central1-a" } ] }
示例 2:为 GPU 购买承诺,但不为 vCPU 或内存购买承诺
如需为 GPU 和本地 SSD 磁盘购买承诺并预留 GPU 和本地 SSD 磁盘,但不为 vCPU 或内存购买承诺,请指定 0
作为 vCPU 和内存数量的值。例如,假设您想要为 us-west2
区域中的单个 NVIDIA P4 GPU 购买承诺 commitment-02
。您还希望创建新的预留作为附加预留,并指定 Compute Engine 在 us-west2-b
可用区中的 n1-standard-2
虚拟机上使用预留的 GPU。如需购买此示例承诺及其附加预留,请发出以下 POST
请求:
POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west2/commitments { "name": "commitment-02", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE", "resources": [ { "amount": "0", "type": "VCPU" }, { "amount": "0", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-p4", "amount": "4", "type": "ACCELERATOR" } ], "reservations": [ { "name": "reservation-01", "specificReservation": { "count": "1", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 4, "acceleratorType": "nvidia-tesla-p4" } ], "machineType": "n1-standard-2" } }, "specificReservationRequired": false, "zone": "us-west2-b" } ] }
示例 3:通过附加多个新预留为 GPU 和本地 SSD 磁盘购买承诺
假设您想要为 us-central1
区域中的 1 个 NVIDIA V100 GPU 和 2 个本地 SSD 磁盘购买承诺 commitment-03
。您还希望在 us-central1-a
可用区中创建和附加两个预留。在第一个预留 res-01
中,您想要预留 1 个 n1-standard-2
虚拟机和 1 个 GPU。您希望将 res-01
设置为指定的预留,这表示您必须明确指定该预留的名称才能使用其预留的虚拟机。在第二个预留 res-02
中,您想要预留 1 个 n1-standard-8
虚拟机,并挂接 2 种本地 SSD 磁盘。如需购买带有附加预留的此示例承诺,请发出以下 POST
请求。请注意,示例承诺还包含 vCPU 和内存资源。
POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/commitments { "name": "commitment-03", "plan": "TWELVE_MONTH", "type": "GENERAL_PURPOSE", "resources": [ { "amount": "96", "type": "VCPU" }, { "amount": "638976", "type": "MEMORY" }, { "acceleratorType": "nvidia-tesla-v100", "amount": "1", "type": "ACCELERATOR" }, { "amount": "768000", "type": "LOCAL_SSD" } ], "reservations": [ { "name": "res-01", "specificReservation": { "count": "1", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": 1, "acceleratorType": "nvidia-tesla-v100" } ], "machineType": "n1-standard-2" } }, "specificReservationRequired": true, "zone": "us-central1-a" }, { "name": "res-02", "specificReservation": { "count": "1", "instanceProperties": { "localSsds": [ { "diskSizeGb": "375", "interface": "SCSI" }, { "diskSizeGb": "375", "interface": "NVME" } ] "machineType": "n1-standard-8" } }, "specificReservationRequired": false, "zone": "us-central1-a" } ] }
在您购买包含附加预留的承诺后,只要承诺处于有效状态,预留就会一直保持有效状态。承诺使用合约到期时,Compute Engine 会自动删除所有附加预留。如果预留是自动使用的预留,并且您将其删除,那么使用该预留的任何虚拟机实例都会继续运行。这些虚拟机会不断产生费用。
在承诺期限内,您不能删除包含 GPU 和/或本地 SSD 的任何附加预留,也不能调整其大小。但是,您可以将承诺的现有附加预留替换为新预留。如需详细了解附加预留可以更改和不能更改的内容,请参阅替换附加到承诺的预留。
为许可购买承诺
如果您在使用以下操作系统 (OS) 映像的虚拟机上运行工作负载,则可以为许可购买承诺:
- SUSE Linux Enterprise Server (SLES) 映像
- SLES for SAP 映像
- Red Hat Enterprise Linux (RHEL) 映像
您在每个操作系统映像的许可承诺中获得的 CUD 百分比取决于您的虚拟机使用的 vCPU 数量。下表显示了每种类型软件许可承诺的 CUD 百分比:
许可承诺类型 | vCPU 的数量 | 1 年期 CUD 百分比 | 3 年期 CUD 百分比 |
---|---|---|---|
SLES 映像 | 1-2 | 77% | 79% |
SLES 映像 | 3-4 | 54% | 59% |
SLES 映像 | 5+ | 45% | 50% |
SLES for SAP 映像 | 1-2 | 59% | 63% |
SLES for SAP 映像 | 3-4 | 59% | 63% |
SLES for SAP 映像 | 5+ | 59% | 63% |
RHEL 映像 | 1-8 | 20% | 不可用 |
RHEL 映像 | 9-127 | 20% | 不可用 |
RHEL 映像 | 128+ | 20% | 不可用 |
当您购买许可承诺后,该承诺会形成一个许可“池”,这些许可会自动应用于指定区域中所选项目内所有正在运行的虚拟机实例。承诺中的许可与任何特定虚拟机均无关联。当虚拟机启动时,它会从池中获取在用许可,而当虚拟机停止时,它会将许可返回到池中,其中许可可以由另一个虚拟机使用。只要池中有可用的在用许可,您就可以继续享受高级操作系统用量折扣。
例如,如果您需要在两个区域运行 10 个虚拟机(us-central1
中运行 5 个虚拟机,us-west1
中运行 5 个虚拟机),并且这些虚拟机在同一项目 ID 下运行,那么您必须为每个区域购买 5 个许可来运行这些虚拟机。对于每个承诺,承诺许可均可在一年内的任何时间应用于相应区域内任何 5 个并发运行的虚拟机。无论您的使用量是多少,您都需要按月为承诺付费。
购买承诺后,您的承诺将于次日美国和加拿大太平洋时间(UTC-8,或夏令时期间为 UTC-7)上午 12 点生效。 Compute Engine 会为项目中购买承诺的每个区域维护项目安全锁。当您为项目中的任何区域购买新承诺时,Compute Engine 会将该区域的安全锁与新创建的承诺相关联。
从承诺购买到激活的这段时间内,承诺的状态保持为 NOT_YET_ACTIVE
(在Google Cloud 控制台中保持为 PENDING
)。激活后,您的承诺状态将更改为 ACTIVE
。
例如,假设您在美国和加拿大太平洋时间(UTC-8 或 UTC-7)1 月 20 日晚上 10:00 购买了承诺。Compute Engine 会立即创建您的承诺,其状态为 NOT_YET_ACTIVE
。但是,承诺仅在美国和加拿大太平洋时间(UTC-8 或 UTC-7)1 月 21 日零点才会变为 ACTIVE
。
购买许可承诺后,无法取消。许可承诺到期后,您正在运行的虚拟机将继续运行,但您需要按按需映像价格支付许可费用。
使用 Google Cloud 控制台、Google Cloud CLI 或 REST 购买许可承诺。
控制台
在使用 Google Cloud 控制台购买承诺之前,先选择要用于购买承诺的项目。如果为结算账号启用了折扣共享,您可以使用该结算账号中的任何项目购买承诺。选择项目后,请执行以下步骤:
- 在 Google Cloud 控制台中,前往承诺使用折扣页面。
- 点击购买承诺以购买新的承诺使用合约。
- 点击新许可承诺使用折扣,以购买新的许可承诺。
- 为您的承诺命名,并选择您希望应用该承诺的区域。
- 选择承诺的持续时间(1 年或 3 年)。
- 选择许可系列。
- 选择许可类型和数量。
- 选择许可数量。
- 点击购买。
gcloud
使用 gcloud CLI 运行 gcloud compute commitments create-license
命令可购买许可承诺。
gcloud compute commitments create-license COMMITMENT_NAME \ --license `LICENSE_URI` --amount NUMBER_OF_LICENSES \ --cores-per-license CORES_PER_LICENSE \ --plan PLAN \ --region REGION \
替换以下内容:
COMMITMENT_NAME
:您的承诺的名称。LICENSE_URI
:许可 URI。例如https://www.googleapis.com/compute/v1/projects/myproject/global/licenses/sles-sap-12
NUMBER_OF_LICENSES
:您计划购买的许可数量。CORES_PER_LICENSE
:每个许可的核心数量。输入1-2
3-4
或5+
。PLAN
:输入方案长度:12-month
或36-month
。REGION
:此承诺适用的地区。
例如,以下承诺适用于 us-central1
区域期限长达 36 个月的 4 个 SAP 许可,每个许可有 3-4 个核心:
gcloud compute commitments create-license commitment-1 --license https://www.googleapis.com/compute/v1/projects/myproject/global/licenses/sles-12 --amount=4 --cores-per-license=3-4 --plan=36-month --region=us-central1
例如,以下承诺适用于 us-central1
区域期限长达 12 个月的 2 个 SLES for SAP 许可,每个许可有 1-2 个核心:
gcloud compute commitments create-license commitment-2 --license https://www.googleapis.com/compute/v1/projects/myproject/global/licenses/sles-sap-12 --amount=2 --cores-per-license=1-2 --plan=12-month --region=us-central1
REST
使用 regionCommitments.insert
方法并添加 licenseResource
字段来定义许可承诺的属性。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/commitments?requestId=OPTIONAL_UNIQUE_ID { "name": COMMITMENT_NAME, "plan": PLAN, "category": "LICENSE", "licenseResource": { "coresPerLicense": CORES_PER_LICENSE, "amount": NUMBER_OF_LICENSES, "license": `LICENSE_URI` } }
替换以下内容:
COMMITMENT_NAME
:您的承诺的名称。LICENSE_URI
:许可 URI。例如https://www.googleapis.com/compute/v1/projects/myproject/global/licenses/sles-sap-12
NUMBER_OF_LICENSES
:您计划购买的许可数量。CORES_PER_LICENSE
:每个许可的核心数量。输入1-2
3-4
或5+
。PLAN
:输入方案长度:12-month
或36-month
。REGION
:此承诺适用的地区。
例如,以下承诺适用于 us-central1
区域期限长达 36 个月的 4 个 SLES for SAP 许可,每个许可有 3-4 个核心。
POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-central1/commitments { "name": "commitment-3", "plan": "THIRTY_SIX_MONTH", "category": "LICENSE", "licenseResource": { "coresPerLicense": "3-4", "amount": "4", "license": "https://www.googleapis.com/compute/v1/projects/suse-sap-cloud/global/licenses/sles-sap-12" } }
应用承诺使用折扣建议
Google Cloud 会分析您在有和没有承诺情况下的虚拟机支出趋势,并生成 CUD 建议。您可以使用 CUD 建议来优化计算费用。您可以比较有承诺和没有承诺的费用,并估算有承诺的情况下每月可以节省的费用。
Google Cloud 控制台中提供了 CUD 建议。Recommender 会生成一张卡片,其中包含有关过去 30 天内虚拟机用量的信息。如果您的虚拟机显示 30 天内未承诺使用的趋势,则 Recommender 会将其归类为购买承诺以降低虚拟机费用的机会。
如果满足以下条件,则使用情况视为未承诺且符合条件。
- 虚拟机在整个 30 天的期限内都处于活动状态。
- 虚拟机的 SKU 属于符合条件的承诺使用折扣存储桶。
- 现有承诺尚未涵盖虚拟机的使用情况。
建议每天刷新一次,并考虑过去 30 天的使用历史记录。
CUD 建议由两种单独的算法生成,您可以在摘要卡上购买(或接受)CUD 时从中进行选择。
- 稳定的使用建议涵盖一段时间内的最小稳定使用量。
- 最佳建议基于总体使用量,可涵盖并非始终启用的资源。
如需详细了解 CUD 建议的工作原理,请参阅承诺使用折扣 Recommender。
查看并接受建议
如需了解如何购买建议的承诺,请参阅购买建议
忽略建议
如需了解如何忽略承诺建议或恢复之前忽略的建议,请参阅忽略建议
建议历史记录
如需了解如何查看已应用和已忽略的承诺建议的历史记录,请参阅查看建议历史记录。
查看您的承诺
使用 Google Cloud 控制台、Google Cloud CLI 或 REST 查看所有承诺的列表。
控制台
在 Google Cloud 控制台中,前往承诺使用折扣页面查看承诺列表。
gcloud
使用 commitments list
命令发出请求:
gcloud compute commitments list
该工具将返回一个承诺列表:
NAME REGION END_TIMESTAMP STATUS my-commitment us-east1 2018-03-17T00:00:00.000-07:00 NOT_YET_ACTIVE
REST
您可以通过向以下网址发出 aggregatedList
请求来获取所有区域中的承诺列表:
https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/commitments
该请求将返回一个承诺列表:
"commitments": [ { "kind": "compute#commitment", "id": "3294122326373778983", "creationTimestamp": "2017-02-09T15:18:32.411-08:00", "name": "example-commitment", "region": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1", "selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/commitments/example-commitment", "status": "NOT_YET_ACTIVE", "statusMessage": "The commitment is not yet active (its startTimestamp is in the future). It will not apply to current resource usage.", "plan": "TWELVE_MONTH", "startTimestamp": "2017-02-10T00:00:00.000-08:00", "endTimestamp": "2018-02-10T00:00:00.000-08:00", "resources": [ { "type": "VCPU", "amount": "5" }, { "type": "MEMORY", "amount": "32500" }] } ]
修改承诺
您可以通过以下方式修改有效承诺:
- 您可以更改承诺使用合约的自动续订状态。如需了解详情,请参阅自动续订承诺。
- 您可以为承诺指定自定义结束日期,以将承诺期限延长到预设的 1 年或 3 年之后。如需了解详情,请参阅延长承诺期限。
- 您可以通过合并或拆分现有承诺来修改硬件承诺中的资源量。如需了解详情,请参阅合并和拆分承诺。
- 您可以升级 1 年期硬件承诺的期限,并将其转换为 3 年期承诺。如需了解详情,请参阅升级承诺期限
- 您可以更改与购买了基于资源的承诺的项目相关联的 Cloud Billing 账号并支付费用。了解如何更改项目的 Cloud Billing 账号。
创建承诺后,您便无法修改承诺的项目、类型或区域。
取消承诺
承诺一旦创建便无法取消。在承诺期间,您必须按约定的每月金额支付费用。将来对您承诺的 Compute Engine 资源的按需价格的更改不会影响承诺。
如果您无意中购买了承诺,或者配置承诺时出错,请在承诺开始日期起的 14 个自然日内与 Cloud Billing 支持团队联系以获取帮助。任何更改都需由 Google 酌情批准,在获得 Google 确认之前,我们无法保证更改一定会获得批准。
了解您的承诺使用折扣账单
请阅读以下文档,以便更好地了解您的账单:
支持
如果您对账单上的承诺使用折扣有任何疑问,可以与 Google Cloud 支持团队联系。
后续步骤
- 了解如何自动续订基于资源的承诺。
- 了解如何延长基于资源的承诺的期限。
- 了解如何升级基于资源的承诺的期限。
- 了解如何合并和拆分基于资源的承诺。
- 了解如何分析 CUD 的有效性。
- 查看享受和不享受 CUD 的资源的价格。