コンテンツに移動
Containers & Kubernetes

GKE Autopilot で GPU ワークロードとさらにサイズの大きい Pod のサポートを導入

2022年10月5日
Google Cloud Japan Team

※この投稿は米国時間 2022 年 9 月 30 日に、Google Cloud blog に投稿されたものの抄訳です。

Autopilot は Google Kubernetes Engine(GKE)向けのフルマネージド運用モードです。ただし、フルマネージドとはいえ、できることが制限されるわけではありません。Autopilot における目標は、すべてのユーザー ワークロード(ノードへの特権アクセスを必要とする管理ワークロード以外のワークロード)をサポートすることで、GKE プロダクト全体ですべてのユーザー ワークロードを実行できるようにすることです。

多くのワークロード、特に AI / ML のトレーニングと推論を実行しているワークロードには GPU ハードウェアが必要です。Autopilot ではこうしたワークロードに対応するために、Autopilot における NVIDIA T4 および A100 GPU のプレビュー版サポートの提供を開始します。これにより、Autopilot のフルマネージド運用環境の利便性を損なうことなく、ML のトレーニング、推論、動画のエンコードをはじめ、GPU を必要とするすべてのワークロードを実行できるようになります。

Autopilot で GPU ワークロードを実行すると、Pod 構成で GPU 要件を指定するだけで、残りは Google にまかせられるというメリットがあります。GPU 構成と Pod の配置は Autopilot によって自動的に処理されるため、ドライバを個別にインストールする必要もなければ、貴重な GPU ノードで GPU 以外の Pod が実行される心配もありません。

Autopilot では Pod の実行時間に対してのみ支払いが発生するため、現在実行されているワークロードがない GPU ノードについて料金を心配する必要もありません。GPU Pod が終了すると関連する請求も終了し、基盤となるリソースの設定や破棄の時間に対して請求は発生しません。

Google Cloud の一部のお客様とパートナーはすでにこの機能を試しています。Google Cloud のお客様である CrowdRiff は次のように述べています。

「CrowdRiff は、旅行・観光業界を対象に、ユーザー作成コンテンツの検出、デジタル アセットの管理、シームレスなコンテンツ配信の各サービスを提供する、AI を活用したビジュアル コンテンツ マーケティング プラットフォームです。Google Kubernetes Engine(GKE)とその GPU アクセラレーション ワークロード機能を利用する立場として、GKE Autopilot での GPU サポート予定を知り、とても嬉しく思いました。この機能の初期テストを通じて、サービス基盤のインフラストラクチャを管理することなく、当社のサービスで GPU を簡単に活用できることが判明しました。この機能を利用することで、標準の GKE クラスタを使用した場合よりも費用が削減され、エンジニアにとっての運用上の複雑さが軽減されることを期待しています。」 - CrowdRiff、信頼性エンジニア、Steven Pall 氏

また、Google Cloud のパートナーである SADA は次のように述べています。

「使い勝手が良く、運用の負荷も軽減されるため、可能な限り Autopilot を活用するようお客様におすすめしています。GKE ノードレイヤー全体が Google にオフロードされます。また、Autopilot 用 GPU Pod によって Autopilot を使用してまったく新しいワークロード タイプの実行が可能になります。AI / ML ジョブを実行する当社のお客様にとって、Autopilot モードは素晴らしい機能強化です。」 - SADA、アソシエイト CTO、Christopher Hendrich 氏

Autopilot での GPU の使用

複数の事前定義済み GPU 割り当てで T4 および A100 GPU をリクエストできます。CPU とメモリにデフォルトをそのまま使用することも、一定の範囲内でこれらのリソースを指定することもできます。こちらは複数の T4 GPU をリクエストする Pod の例です。
読み込んでいます...

サンプル 1: nvidia-tesla-t4 ノードセレクタを指定するだけで、GPU 上で Pod を実行


必要なのは、Kubernetes 構成に上記のコードを追加することだけです。PodSpec で GPU 要件を指定し、kubectl を使用してオブジェクトを作成します。GPU Pod 以外が実行されるのを防ぐための GPU ノードの taint、およびワークロード仕様におけるこれらの taint の toleration はすべて Autopilot によって自動的に行われます。必要な Nvidia ドライバの設定など、要件に一致する GPU 対応ノードのプロビジョニングも自動的に行われます。

なんらかの理由により GPU Pod が利用可能な状態にならない場合は、kubectl get events -w で状況を確認し、リソースの値がサポート対象範囲内に収まっていることを再確認してください。

Balanced コンピューティング クラスを使用した、Autopilot での大規模 Pod の実行

今回サポートが追加されたのは GPU だけではありません。Autopilot ではすでに、最大 Pod サイズがデフォルト コンピューティングでは 28 個の vCPU、Scale-Out コンピューティング クラスでは 54 個の vCPU となっています。しかし、さらに多くの vCPU を必要とするワークロードに対応するためにこの上限を引き上げたいと考えました。

より多くの vCPU を利用するコンピューティング リソースが必要な場合のために、最大 222 個の vCPU と 851 GiB の Pod リソース サイズをサポートする Balanced コンピューティング クラスをこのたび導入します。Balanced は既存の Scale-Out コンピューティング クラス(シングルスレッド CPU の高パフォーマンスに特化したクラス)と汎用コンピューティング プラットフォーム(日常的なワークロード向け)に追加されることになります。

Pod にノード セレクタを追加するだけで Balanced の利用を開始できます。サンプル 2 は Pod 定義の例を示したものです。リソースの要件は実際に必要なものに合わせて調整してください。Balanced Pod の価格情報については、こちらのページを参照してください。

読み込んでいます...

サンプル 2: Balanced コンピューティング クラスを使用した大規模 Pod の実行


GPU Pod と同様に、Balanced コンピューティング クラス Pod の配置は Autopilot によって自動的に処理されます。直接指定した Pod に対してのみ、Balanced コンピューティング クラスの料金が発生します。デフォルトでは、コンピューティング クラス nodeSelector がない Pod は Autopilot のオリジナル コンピューティング プラットフォーム(最大で 28 個まで vCPU をリクエスト可能)で実行されます。

今回ご紹介した GKE Autopilot の新機能をぜひご活用ください。

詳細については、Autopilot GPU と新しい Balanced コンピューティング クラスに関するドキュメントをご覧ください。

- Google Kubernetes Engine、GKE Autopilot プロダクト マネージャー William Denniss

投稿先