このドキュメントでは、Google Kubernetes Engine(GKE)で Arm ワークロードを実行する方法について説明します。Arm ワークロードは次の方法で実行できます。
- GKE Autopilot モード: Autopilot コンテナ最適化コンピューティング プラットフォームで、Arm アーキテクチャと汎用ワークロード用の
autopilot-armComputeClass を明示的にリクエストします。特定のハードウェアをリクエストするには、PerformanceまたはScale-Outコンピューティング クラスを使用します。 - GKE Standard モード: C4A、N4A、または Tau T2A マシンシリーズを使用します。
x86 と Arm の両方のプロセッサと互換性のあるシングル アーキテクチャの Arm イメージまたはマルチ アーキテクチャ イメージを実行できます。Arm の利点については、コンピューティングでの Arm VM をご覧ください。
GKE で Arm ワークロードを実行する
Arm にデプロイするワークロードの選択と、デプロイに使用するワークロードの準備の詳細については、以下をご覧ください。
Arm で実行するワークロードの選択: Arm で実行するワークロードを選択する際は、次のオプションのメリットを考慮してください。
- Autopilot コンテナ最適化コンピューティング プラットフォーム: Autopilot クラスタの汎用 Arm ワークロードにおすすめです。特定のマシンタイプを管理する必要なく、Pod ベースの課金と伸縮性を提供します。
特定のマシン ファミリー: 特定のハードウェア特性を必要とするワークロードの場合は、次のマシンタイプを検討してください。詳細については、Compute Engine の汎用マシン ファミリーの表をご覧ください。
- C4A ノードは、パフォーマンスを最も重視している Arm ベースのワークロードで一貫して高いパフォーマンスを実現する Arm ベースのコンピューティングを提供します。
- N4A ノードは、価格とパフォーマンスのバランスが取れた Arm ベースのコンピューティングを提供します。
- T2A ノードは、より柔軟なワークロードや、水平方向のスケールアウトに依存するワークロードに適しています。
アーキテクチャ間でのデプロイ: GKE では、マルチアーキ イメージを使用して、Arm などの異なるアーキテクチャのノード間で単一のイメージ マニフェストをデプロイできます。
- コンテナ イメージに Arm との互換性があり、ターゲット アーキテクチャで実行できることを確認するには、Arm ワークロード用にマルチ アーキテクチャ イメージをビルドするをご覧ください。
- マルチ アーキテクチャ イメージをアーキテクチャ間でデプロイするためのチュートリアルについては、GKE 上の x86 アプリケーションを Arm でマルチ アーキテクチャに移行するをご覧ください。
デプロイ用に Arm ワークロードを準備する: Arm 互換イメージを作成したら、ノード アフィニティ ルールとノードセレクタを使用して、互換性のあるアーキテクチャ タイプのノードにワークロードがスケジュールされるようにします。
- Autopilot クラスタ: Arm アーキテクチャで Autopilot ワークロードをデプロイするをご覧ください。
- Standard クラスタ: デプロイする Arm ワークロードを準備するをご覧ください。
要件と制限事項
- Arm ノードは、Arm アーキテクチャをサポートする Google Cloud のロケーションで利用できます。詳細については、使用可能なリージョンとゾーンをご覧ください。
general-purpose-armPod ファミリーとautopilot-armコンピューティング クラスは、us-east1、us-west1、europe-west1、europe-west2、europe-west4、asia-southeast1、us-central1のリージョンでのみ使用できます。- Config Connector と Config Controller は、Arm ノードプールを含むクラスタではサポートされていません。
- C4A 仮想マシン(VM)とベアメタル インスタンスの要件と制限事項は次のとおりです。
- C4A VM:
- Autopilot モード、クラスタ自動スケーリング、ノードの自動プロビジョニング、またはノードプールを自動作成する ComputeClasses を使用するクラスタを作成するには、次のバージョン以降を使用します。
- 1.30.7-gke.1136000
- 1.31.3-gke.1056000
- Standard クラスタを作成するには、1.30.4-gke.1213000 以降を使用します。
- ローカル SSD を使用するには、次のバージョン以降を使用します。
- 1.30.12-gke.1033000
- 1.31.8-gke.1045000
- 1.32.1-gke.1357000
- GKE は、C4A VM で以下の機能をサポートしていません。
- Autopilot モード、クラスタ自動スケーリング、ノードの自動プロビジョニング、またはノードプールを自動作成する ComputeClasses を使用するクラスタを作成するには、次のバージョン以降を使用します。
c4a-standard-96-metalとc4a-highmem-96-metalを含む C4A ベアメタル インスタンス:- Standard ノードプールを作成するには、バージョン 1.35.0-gke.2232000 以降を使用します。
- C4A VM の制限に加えて、GKE は C4A ベアメタル インスタンスで次の機能をサポートしていません。
- ローカル SSD。
- マシンシリーズを選択して Autopilot Pod のパフォーマンスを最適化することでベアメタル インスタンスをプロビジョニングします。これは、マシンタイプを明示的に選択できないためです。
- ライブ マイグレーション。詳細については、ライブ マイグレーションが行われない GKE ノードの停止を管理するをご覧ください。
c4a-highmem-96-metalと Autopilot モード、クラスタ自動スケーリング、ノードの自動プロビジョニング、またはノードプールを自動作成する ComputeClasses を使用するクラスタを作成するには、バージョン 1.35.3-gke.1389000 以降を使用します。c4a-standard-96-metalはこの機能ではサポートされていません。以下も適用されます。c4a-highmem-96-metalを使用する自動作成されたノードプールを構成するには、マシンタイプを明示的に指定する必要があります。マシンタイプではなく C4A マシンシリーズのみを指定すると、GKE はベアメタル インスタンスではなく C4A VM をプロビジョニングします。この動作は、ノードの自動プロビジョニングと、ノードプールを自動作成する ComputeClass の両方に当てはまります。
- C4A VM:
N4A の要件と制限事項は次のとおりです。
- Autopilot モードを使用する N4A ノードを含むクラスタを作成するには、GKE バージョン 1.34.1-gke.3403001 以降を使用します。
GKE は、N4A ノードで以下の機能をサポートしていません。
- ローカル SSD
- Confidential GKE Node
- GPU
- コンパクト プレースメント
- 同時マルチスレッディング(SMT)
- Persistent Disk(代わりに Hyperdisk を使用。N4A でサポートされているディスクタイプをご覧ください)
- ネストされた仮想化
- 1 GB の hugepage (2 MB hugepage のみがサポートされる)
T2A の要件と制限事項は次のとおりです。
GKE は、T2A ノードで以下の機能をサポートしていません。
次のステップ
- Arm ノードを使用してクラスタとノードプールを作成する
- Arm ワークロード向けのマルチアーキテクチャ イメージをビルドする
- デプロイする Arm ワークロードを準備する
- GKE 上の x86 アプリケーションを Arm でマルチ アーキテクチャに移行する