Kubernetes Engine でプリエンプティブ VM を使用する

このページでは、Kubernetes Engine でのプリエンプティブ VM のサポートの概要について説明します。

概要

プリエンプティブ VM は、最長持続時間が 24 時間で、可用性が保証されない Google Compute Engine VM インスタンスです。標準的な Compute Engine VM よりも低価格で、同じマシンタイプとオプションが提供されます。

Kubernetes Engine のクラスタまたはノードプールでプリエンプティブ VM を使用して、一時的で保証がないというプリエンプティブ VM の特性の影響を受けにくいバッチジョブやフォールトトレラント ジョブを実行できます。

プリエンプティブ VM について詳しくは、Compute Engine ドキュメントのプリエンプティブ VM をご覧ください。

プリエンプティブ VM の仕組み

Kubernetes Engine クラスタまたはノードプールによって Compute Engine VM が作成されると、それらの VM はマネージド インスタンス グループのように動作します。Kubernetes Engine のプリエンプティブ VM には、マネージド インスタンス グループ内のプリエンプティブ インスタンスと同じ制約が適用されます。

さらに、これらのプリエンプティブ VM には Kubernetes ラベル cloud.google.com/gke-preemptible=true が付けられます。Kubernetes ラベルは、特定のノードにポッドをスケジュールするために nodeSelector フィールドで使用できます。

プリエンプティブ VM をフィルタリングするセレクタの例を次に示します。

apiVersion: v1
kind: Pod
spec:
  nodeSelector:
    cloud.google.com/gke-preemptible: true

プリエンプティブ VM を含むクラスタまたはノードプールを作成する

Cloud Platform Console または gcloud beta container clusters create を使用して、プリエンプティブ VM を含むクラスタまたはノードプールを作成できます。

Console

  1. Google Cloud Platform Console の [Kubernetes Engine] メニューにアクセスします。

    [Kubernetes Engine] メニューにアクセスする

  2. [クラスタを作成] をクリックします。

  3. 必要に応じてクラスタを設定します。次に、[その他] をクリックします。
  4. [プリエンプティブ ノード] プルダウン メニューから、[有効] を選択します。
  5. [作成] をクリックします。

gcloud

--preemptible フラグを指定して、プリエンプティブ VM を含むクラスタまたはノードプールを作成できます。

プリエンプティブ VM を含むクラスタを作成するには、次のコマンドを実行します。

gcloud beta container clusters create [CLUSTER-NAME] --zone [COMPUTE-ZONE] --preemptible

[COMPUTE-ZONE] はクラスタのコンピューティング ゾーンです。

プリエンプティブ VM を含むノードプールを作成するには、次のコマンドを実行します。

gcloud beta container node-pools create [POOL-NAME] --cluster [CLUSTER-NAME] --zone [COMPUTE-ZONE] --preemptible

ベスト プラクティス

プリエンプティブ VM では可用性が保証されないため、Compute Engine インスタンスのいずれかまたはすべてがプリエンプトされて使用できなくなる可能性があることを想定してシステムを設計する必要があります。新しいインスタンスがいつ使用可能になるかは保証されません。

プリエンプティブ VM が使用できないときでもジョブまたはワークロードを確実に処理したい場合は、クラスタ内に非プリエンプティブ ノードプールとプリエンプティブ ノードプールの両方を作成できます。

既知の問題

次のステップ

フィードバックを送信...