最小 CPU プラットフォームの選択

このページでは、基本となる最小 CPU プラットフォームを使用してクラスタノードプールを作成する方法を説明します。

概要

クラスタやノードプールを作成する際には、そのノードの基本となる最小の CPU プラットフォームを選択できます。

グラフィックス、ゲーム、分析などの分野における高度なコンピューティング負荷の高いワークロードでは、さまざまな CPU プラットフォームの機能セット(AVX-2 や AVX-512 など)で提供される特定の機能を利用できます。特定の CPU プラットフォームを選択することで、実行時間が大幅に短縮され、パフォーマンスも大きく向上する可能性があります。最小 CPU プラットフォームを指定すると、より予測可能な方法でこのような利点をワークロードで活用できるだけでなく、ワークロードに適さない CPU プラットフォームをノードで決して使用しないようにすることもできます。

最小 CPU プラットフォームの選択について

最小 CPU プラットフォームを選択すると、Google Kubernetes Engine はその最小 CPU プラットフォームを可能な限り使用してクラスタやノードプールを作成しようとします。

ただし、最小 CPU プラットフォームを使用してクラスタやノードプールを作成できない場合があります。例:

  • 最小 CPU プラットフォームがゾーンのデフォルト プラットフォームより古い場合や、最小 CPU プラットフォームが使用できなくなっていて、同じ料金で使用できる新しい CPU プラットフォームがある場合は、GKE は新しいほうのプラットフォームを使用してクラスタやノードプールを作成します。
  • 指定したプラットフォームが使用できない場合に、それより新しいプラットフォームや同じ料金のプラットフォームがない場合は、クラスタやノードの作成は失敗します。

指定した最小 CPU プラットフォームより古いプラットフォームがノードで使用されることはありません。また、GKE で新しいプラットフォームが選択されてもノードの料金は変わりません。

ノードはライフサイクル全体を通して同じプラットフォームを保持しますが、指定された CPU プラットフォームが廃止される場合は例外です。その場合、ノードはより新しいプラットフォームで実行されます。

制限事項

  • CPU プラットフォームを使用できるかどうかは、ゾーンによって異なります。
  • 共有コア マシンタイプ(g1-small など)では、最小 CPU プラットフォームを使用できません。

リリース時期

目的のコンピューティング ゾーンで使用可能な CPU プラットフォームを確認するには、次のコマンドを実行します。

gcloud compute zones describe [COMPUTE_ZONE]

[COMPUTE_ZONE]には、目的のコンピューティング ゾーンを指定します。

このコマンドは、ゾーンで使用可能なプラットフォームのリストを返します。次に例を示します。

availableCpuPlatforms:
- Intel Skylake
- Intel Broadwell

詳細については、Compute Engine のドキュメントで VM インスタンスの最小 CPU プラットフォームの指定をご覧ください。

料金

この機能で追加料金が発生することはありません。

最小 CPU プラットフォームを使用して新しいクラスタを作成する

最小 CPU プラットフォームを持つクラスタを作成するには、gcloud コマンドライン ツール、Google Cloud Platform Console、GKE API を使用します。

gcloud

最小 CPU プラットフォームを持つ新しいクラスタを作成するには、gcloud コマンドライン ツールで --min-cpu-platform フラグを設定し、CPU プラットフォームにわかりやすい名前を指定します。

gcloud container clusters create [CLUSTER_NAME] --zone [COMPUTE_ZONE] \
--min-cpu-platform [PLATFORM_NAME]

ここで

  • [CLUSTER_NAME] はクラスタに付ける名前です。
  • [COMPUTE_ZONE] はクラスタのコンピューティング ゾーンです。
  • [PLATFORM_NAME] は、クラスタで実行する CPU プラットフォームです。

たとえば、次のコマンドは、Intel Broadwell プラットフォームを使用するクラスタを example-clusterという名前で作成します。

gcloud container clusters create example-cluster --zone us-central1-a \
--min-cpu-platform “Intel Broadwell”

Console

  1. GCP Console で Google Kubernetes Engine のメニューに移動します。

    Google Kubernetes Engine のメニューに移動

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

  3. [標準クラスタ] テンプレートを選択するか、ワークロードに適切なテンプレートを選択します。

  4. 必要に応じてクラスタを構成します。次に、[マシンタイプ] メニューで [カスタマイズ] をクリックします。

  5. [CPU プラットフォーム] プルダウン メニューから、目的のプラットフォームを選択します。

  6. [作成] をクリックします。

API

リクエスト本文の nodeConfig フィールドの一部に minCpuPlatform プロパティを含めます。minCpuPlatform の値は、プラットフォームのわかりやすい名前にする必要があります(例: Intel HaswellIntel BroadwellIntel Sandy Bridge)。

たとえば、Intel Broadwell を実行するクラスタを作成するリクエスト本文は次のようになります。

POST https://container.googleapis.com/v1/projects/[PROJECT_ID]/zones/[COMPUTE_ZONE]/clusters

{
  'cluster': {
    'name': '[CLUSTER_NAME]',
    'nodeConfig': {
      'minCpuPlatform': 'Intel Broadwell'
      ...
    }
    ...
  }
}

ここで

新しいノードプールの最小 CPU プラットフォームの選択

既存のクラスタで新しいノードプールの最小 CPU プラットフォームを指定するには、gcloud コマンドライン ツール、GCP Console または GKE API を使用します。

gcloud

最小 CPU プラットフォームを使用する新しいノードプールを作成するには、gcloud コマンドライン ツールで --min-cpu-platform フラグを使用し、CPU プラットフォームのわかりやすい名前を指定します。

gcloud container node-pools create [POOL_NAME] --cluster [CLUSTER_NAME] \
--zone [COMPUTE_ZONE] --min-cpu-platform [PLATFORM_NAME]

ここで

  • [POOL_NAME] は、ノードプールに選択した名前です。
  • [CLUSTER_NAME] は、ノードプールが作成されるクラスタの名前です
  • [COMPUTE_ZONE] は。クラスタのコンピューティング ゾーンです。
  • [PLATFORM_NAME]は、ノードプールで実行する目的の CPU プラットフォームです

たとえば、次のコマンドは、Intel Broadwell プラットフォームを使用する example-node-pool というノードプールを作成します。

gcloud container node-pools create example-node-pool --cluster example-cluster \
--zone us-central1-a --min-cpu-platform “Intel Broadwell”

Console

  1. GCP Console で Google Kubernetes Engine のメニューに移動します。

    Google Kubernetes Engine のメニューに移動

  2. クラスタの編集ボタン(鉛筆の形をしたボタン)をクリックします。

  3. [ノードプール] セクションで、[ノードプールを追加] をクリックします。

  4. 必要に応じてノードプールを構成します。次に、[マシンタイプ] メニューで [カスタマイズ] をクリックします。

  5. [CPU プラットフォーム] プルダウン メニューから、目的のプラットフォームを選択します。

  6. [作成] をクリックします。

API

リクエスト本文の nodeConfig フィールドの一部に minCpuPlatform プロパティを含めます。minCpuPlatform の値は、プラットフォームのわかりやすい名前にする必要があります(例: Intel HaswellIntel BroadwellIntel Sandy Bridge)。

たとえば、Intel Broadwell を実行中のクラスタのリクエスト本文は次のようになります。

POST https://container.googleapis.com/v1/projects/[PROJECT_ID]/zones/[COMPUTE_ZONE]/clusters/[CLUSTER_NAME]/nodePools

{
  'nodePool': {
    'name': '[NODE_POOL]',
    'nodeConfig': {
      'minCpuPlatform': 'Intel Broadwell'
      ...
    }
    ...
  }
}

ここで

次のステップ

このページは役立ちましたか?評価をお願いいたします。

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

Kubernetes Engine のドキュメント