スケールアウト コンピューティング クラスを使用した、GKE Autopilot への高スループット ワークロードのデプロイ
Google Cloud Japan Team
※この投稿は米国時間 2022 年 7 月 20 日に、Google Cloud blog に投稿されたものの抄訳です。
GKE Autopilot は多機能のフルマネージド Kubernetes プラットフォームで、Kubernetes API をフル活用しており、クラスタの管理と運用に操作不要方式を採用しています。Autopilot を昨年リリースして以来、ワークロードの需要に応えるべく、イノベーションと機能の追加を継続してきました。このたび、Autopilot にコンピューティング クラスの概念が導入され、x86 と Arm の高パフォーマンス コンピューティングを実現するスケールアウト コンピューティング クラスがプレビュー版になったことをお知らせします。
Autopilot コンピューティング クラスはワークロードのデプロイが可能なハードウェア構成を厳選したものです。今回の初回リリースでは、スケールアウト コンピューティング クラスを導入しました。これは、コアあたり 1 スレッドに最適化されたワークロード向けに設計されており、水平方向にスケールします。スケールアウト コンピューティング クラスでは現在、x86 と Arm の 2 つのハードウェア アーキテクチャをサポートしています。自社ワークロードの価格とパフォーマンスのバランスに適した方を選択できます。スケールアウト コンピューティング クラスは Google Cloud の既存の汎用コンピューティング オプションに加わり、Google Cloud で利用可能な最速の CPU プラットフォームを活用する形でワークロードを実行するように設計されています。また、CPU 使用率が高いアプリケーションにおいて高い費用対効果を実現します。
一部のワークロードはよりパフォーマンスの高いコンピューティングからメリットが得られるとの声もいただいています。こうしたニーズに応えるために、スケールアウト コンピューティング クラス上で実行される x86 ワークロードは現在、第 3 世代の AMD EPYCTM プロセッサによって提供されており、同時マルチスレッディング(SMT)を無効化することで、Google Cloud の x86 プラットフォームのなかで最高のコア単位ベンチマークを達成しています。
また、今回初めて Autopilot が Arm ワークロードをサポートするようになりました。現在は、Ampere® Altra® の Arm ベース プロセッサ上で実行している新しい Tau T2A VM を利用することで、スケールアウト コンピューティング クラスには、特定のプラットフォームに依存しない活発でオープンなエンドツーエンドのエコシステムに加え、Arm ワークロードのコスト パフォーマンスのメリットがあります。Autopilot Arm Pod は現在、us-central、europe-west4、asia-southeast1 で利用できます。
スケールアウト コンピューティング クラスを使用した Arm ワークロードのデプロイ
Pod を特定のコンピューティング クラスと CPU にデプロイするには、デプロイ仕様に次のラベルを指定して、Kubernetes の nodeSelector かノード アフィニティ ルールを追加します。
cloud.google.com/COMPUTE-CLASS
kubernetes.io/ARCH
Autopilot で Arm ワークロードを実行するには、いずれかのサポート対象リージョンでバージョン 1.24.1-gke.1400 以降を実行しているクラスタが必要です。このバージョンで新しいクラスタを作成することも、既存のバージョンをアップグレードすることもできます。新しい Arm 対応クラスタを CLI で作成するには、以下を使用します。
たとえば、次の Deployment 仕様は Nginx 公式イメージを Arm アーキテクチャでデプロイします。
スケールアウト コンピューティング クラスへの x86 ワークロードのデプロイ
スケールアウト コンピューティング クラスでも、「スケールアウト」コンピューティング クラス用のセレクタを追加することで、x86 アーキテクチャをサポートしています。kubernetes.io/arch: amd64
でアーキテクチャを明示的に設定できます。x86 がデフォルトであるため、セレクタからこのラベルを省略することもできます。
Autopilot で x86 スケールアウト ワークロードを実行するには、いずれかのサポート対象リージョンでバージョン 1.24.1-gke.1400 以降を実行しているクラスタが必要です。上記のサンプルの同じ CLI コマンドで、x86 Scale-Out-capable GKE Autopilot クラスタを取得します。
スケールアウト コンピューティング クラスを使用した Spot Pod のデプロイ
ラベルcloud.google.com/gke-spot: “true”
を nodeSelector に追加することで、コンピューティング クラスと Spot Pod を結合することもできます。スケールアウト コンピューティング クラスを使用する場合は、x86 と Arm 両方のアーキテクチャで Spot Pod がサポートされます。
スケールアウト コンピューティング クラスを GKE Autopilot でぜひお試しください。
詳細については、Autopilot クラスタの作成、コンピューティング クラスの概要、Arm ワークロード用イメージの構築、GKE Autopilot への Arm ワークロードのデプロイに関するガイドをご覧ください。
- Google Kubernetes Engine、GKE Autopilot プロダクト マネージャー William Denniss
- プロダクト マネージャー Gari Singh