为工作站预留容量

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

您可以使用与上一部分中列出的相同的变量替换。