kubernetes-sigs/lws

LeaderWorkerSet: An API for deploying a group of pods as a unit of replication

何であるか

LeaderWorkerSet (LWS) および DisaggregatedSet (DS) は、大規模なAI/ML推論ワークロード(特に複数のGPUやその他のアクセラレータに分散される必要があるもの)をより簡単に実行できるように設計された新しいKubernetes APIです。

  • LeaderWorkerSet は、グループ のポッドを単一の論理的なレプリカとして扱えるようにします。各グループには1つのリーダーポッドと、同じライフサイクルを持つワーカーポッドの集合が含まれます。グループには一意のインデックス(0–n)が割り当てられ、すべてのポッドが同じトポロジー(例:同じラックまたはノードプール)に配置されるように(ギャングスケジューリング)一緒にスケジューリングできます。
  • DisaggregatedSet はLWSを基盤として、より複雑なマルチステージの推論パイプライン(例:1つのマシン群でプレフィル、別のマシン群でデコード)を処理します。複数のLWSグループを調整し、ロールアウト中にキャパシティ比を一定に保ち、すべての役割にわたる障害を処理します。

これらのAPIは、llm-dプロジェクト(CNCFサンドボックスの分散推論サービングスタック)と共同設計されており、実世界のサービングフレームワークと密接にマッピングされています。


AI/MLにとってなぜ重要か

本番環境で大規模言語モデル(LLM)を実行する際には、以下のことが一般的です:

  1. モデルを多数のGPUやTPUにシャーディングする。
  2. 異なるハードウェア上で実行される複数のフェーズ(プレフィル、デコード、ポストプロセッシング)を調整する。
  3. パイプライン全体を維持する——どのポッドでもクラッシュすると、推論リクエストが失敗する可能性がある。

標準的なKubernetes Deploymentsは各ポッドを独立して扱うため、シャード化されたモデルのすべての部分が同時に起動・停止・スケーリングされることを保証するのが困難です。LWSはスーパーポッドを提供し、単一のユニットとして動作します。DSは複数のこのようなスーパーポッドを同期してオーケストレーションできます。これにより、高スループット・低レイテンシの推論サービスにおける運用の複雑さが軽減され、信頼性が向上します。


コア機能(LeaderWorkerSet)

機能 機能の説明
ポッドのグループとしての単位 レプリカはリーダー+ワーカーで構成され、ライフサイクルを共有。並列に作成され、同時にロールアウト可能。
一意のポッドID 各ポッドにインデックス(0–n)が割り当てられ、モデルのシャーディングロジックに有用。
ギャングスケジューリング(alpha) グループ内のすべてのポッドが同時にスケジューリングされるか、まったくスケジューリングされない。コロケーションを保証。
デュアルテンプレート リーダーとワーカー用に別々のポッドテンプレートを提供。リソース仕様を異なるものに設定可能。
複数のグループ 複数の同一レプリカを作成可能。各グループはスケーリングおよび更新の単位となる。
スケールサブリソース /scaleエンドポイントを公開。Horizontal Pod Autoscaler(HPA)がグループ数を調整可能。
グループ単位でのローリング更新 更新はグループ単位で行われ、ロールアウト中に全体の整合性を保つ。
トポロジーに配慮した配置 オプションで、グループ内のポッドを同じノード、ゾーン、または他のトポロジーに配置可能。
すべてまたはなしの再起動 グループ内のいずれかのポッドが失敗した場合、グループ全体が再作成される。障害処理を簡素化。

高度な機能(DisaggregatedSet)

機能 機能の説明
非統合アーキテクチャ 異なる役割(例:プレフィル、デコード)が別々のハードウェアクラスタで実行されるパイプラインをサポート。
N次元の同期ロールアウト 2~10の役割を同時に更新しつつ、希望するキャパシティ比を維持。
統一されたライフサイクル 複数のLWSオブジェクトを1つの論理ユニットとして扱い、スケーリング、更新、削除を統合。
自動サービスオーケストレーション 各役割に対してヘッドレスサービスを自動作成。ポッド同士の相互発見に追加設定不要。
高度な障害処理 すべての役割にわたってドレインと再起動を調整し、全体のパイプラインの健全性を維持。

どのような人が使うか

  • MLプラットフォームチーム:多数のGPUに分散される大規模LLMの本番推論サービスを構築する人。
  • クラウドプロバイダー:Kubernetesとより緊密に統合されたマネージド推論スタックを提供したい人。
  • 研究グループ:マルチノードモデルサービング実験を実施し、再現可能でバージョン管理されたデプロイメントが必要な人。

はじめ方

  1. インストール – インストールガイドに従ってください(Kubernetes 1.34+が必要)。プロジェクトはCRDマニフェストとクラスタ内に実行されるコントローラーを提供します。
  2. LeaderWorkerSetの定義 – リーダーポッドテンプレート、ワーカーポッドテンプレート、希望するレプリカ数を指定するYAMLを記述します。
  3. (オプション)DisaggregatedSetの使用 – ワークロードに明確な役割がある場合は、複数のLWSオブジェクトを参照するDSオブジェクトを作成します。
  4. スケーリングとモニタリング – 標準の kubectl scale またはHPAを /scale サブリソースに適用。コントローラーがギャングスケジューリングと同期ロールアウトを処理します。

コミュニティとサポート

  • Slack: Kubernetes Slackワークスペースの #sig-apps チャンネル。
  • メーリングリスト: kubernetes-sig-apps Googleグループ。
  • ドキュメントとトーク: https://lws.sigs.k8s.io/docs/ (例、採用事例、プレゼンテーション動画を含む)。
  • 貢献方法: 通常のKubernetes SIGプロセスに従ってください — PRを提出し、CI(ユニット、統合、E2Eテスト、K8s 1.34–1.37対応)を実行し、Kubernetes Code of Conductに従ってください。

TL;DR

LWS + DSは、Kubernetes上でマルチポッド・マルチノードの推論ワークロード(例:シャーディングされたLLMサービング)をデプロイ・管理するための第一級の手段を提供します。グループ単位のライフサイクル、ギャングスケジューリング、スケーリング、同期ロールアウトを備え、大規模AI推論の信頼性と運用のしやすさを向上させます。

関連

  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト