Compute Engine の予約を使用すると、Compute Engine 仮想マシン(VM)インスタンスのキャパシティを確実に確保できます。予約により、マシンタイプなどの特定のプロパティを持つ VM の容量がプロジェクト用に確保されます。
予約を作成すると、容量不足が原因でワークロードでエラーが発生するのを防ぐことができます。詳細については、Compute Engine の予約の概要をご覧ください。
このドキュメントでは、予約アフィニティを設定して予約済み容量を使用するようにワークステーション構成を構成する方法について説明します。API では、これらのアフィニティ パラメータは ReservationAffinity
と総称されます。
始める前に
- Compute Engine の予約を作成します。予約は、ワークステーション クラスタと同じプロジェクトとリージョンに存在し、同じゾーンをターゲットにする必要があります。
- 予約のマシン プロパティ(マシンタイプなど)は、ワークステーション構成で使用するプロパティと一致している必要があります。
予約アフィニティの仕組み
ワークステーション構成で予約済み容量を使用する方法を制御するには、予約アフィニティを指定します。モードには次の 3 つがあります。
- 特定の予約: 構成では、特定の予約の容量のみが使用されます。この予約をターゲットにするには、
consume-reservation-type=specific-reservation
を指定した--reservation-affinity
フラグを使用します。 - 予約なし: 構成で任意の予約の容量を使用できないようにします。これは、
consume-reservation-type=no-reservation
を指定して--reservation-affinity
フラグを使用して設定します。 - 一致する任意の予約(デフォルト): デフォルトでは、予約アフィニティを指定しない場合、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
: ワークステーション構成の VM のマシンタイプ(例: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
前のセクションに記載されている変数置換と同じものを使用できます。