Compute Engine 预留为获取 Compute Engine 虚拟机 (VM) 实例的容量提供了较高的保障。预留有助于确保为具有特定属性(例如机器类型)的虚拟机保留容量,以便您的项目使用。
创建预留时,您可以帮助保护工作负载免受容量不足导致的错误的影响。如需了解详情,请参阅 Compute Engine 预留概览。
本文档介绍了如何通过设置预留亲和性来配置工作站配置,以使用预留容量。在 API 中,这些
亲和性参数统称为
ReservationAffinity。
准备工作
- 创建 Compute Engine 预留。预留必须与工作站集群位于同一项目和区域,并且以同一可用区为目标。
- 预留的机器属性(例如机器类型)必须与 您打算在工作站配置中使用的属性相匹配。
预留亲和性的工作原理
您可以通过指定工作站配置的预留亲和性来控制其使用预留容量的方式。有三种模式:
- 特定预留: 配置仅使用来自特定匹配预留的容量。 您可以使用
--reservation-affinity标志和consume-reservation-type=specific-reservation来指定此预留。 - 无预留: 配置无法使用来自任何预留的容量。 您可以使用
--reservation-affinity标志和consume-reservation-type=no-reservation来进行设置。 - 任何匹配预留(默认): 默认情况下,如果您未指定预留亲和性,Cloud Workstations 会使用项目中任何匹配预留的容量。 出现此行为的原因是,底层 Compute Engine 实例默认使用任何匹配预留。
配置预留亲和性
如需控制预留使用情况,请在创建或更新工作站配置时指定 --reservation-affinity 标志。
使用特定预留
如需创建仅使用来自特定命名预留的容量的工作站配置,请运行以下 gcloud CLI 命令:
gcloud beta workstations configs create WORKSTATION_CONFIG_ID \
--cluster=WORKSTATION_CLUSTER_ID \
--region=REGION \
--project=PROJECT_ID \
--machine-type=MACHINE_TYPE \
--reservation-affinity=consume-reservation-type=specific-reservation,key=compute.googleapis.com/reservation-name,values=RESERVATION_NAME
替换以下内容:
WORKSTATION_CONFIG_ID:工作站配置的 ID。WORKSTATION_CLUSTER_ID:工作站集群的 ID。REGION:工作站集群的区域。PROJECT_ID:项目的 ID。MACHINE_TYPE:工作站配置中虚拟机的机器类型,例如e2-standard-4。此机器类型必须与 预留的机器类型相匹配。RESERVATION_NAME:要从中获取容量的特定 Compute Engine 预留的名称。
如果您将工作站配置为使用特定预留,则使用此配置启动的工作站仅从该预留中提取容量。如果预留容量耗尽,配置将会降级,直到预留中容量可用为止。
禁止使用任何预留
如需创建不使用任何预留容量的工作站配置,请使用 --reservation-affinity=consume-reservation-type=no-reservation:
gcloud beta workstations configs create WORKSTATION_CONFIG_ID \
--cluster=WORKSTATION_CLUSTER_ID \
--region=REGION \
--project=PROJECT_ID \
--machine-type=MACHINE_TYPE \
--reservation-affinity=consume-reservation-type=no-reservation
您可以使用与上一部分中列出的相同的变量替换。