第2章 Red Hat build of Kueue
2.1. Red Hat build of Kueue の概要 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue は、ジョブのリソースへのアクセスを管理する Kubernetes ネイティブのシステムです。Red Hat build of Kueue は、ジョブを待機させるタイミング、Pod を作成してジョブの開始を許可するタイミング、ジョブを プリエンプト (そのジョブ用のアクティブな Pod を削除すること) すべきタイミングを決定できます。
Red Hat build of Kueue のコンテキストでは、ジョブは、完了まで実行される 1 回限りのタスクまたはオンデマンドのタスクとして定義できます。
Red Hat build of Kueue は Kueue オープンソースプロジェクトをベースにしています。
Red Hat build of Kueue は、異種かつ弾力性のあるリソースを使用する環境に対応しています。つまり、さまざまなリソースタイプが存在し、それらのリソースが動的なスケーリングに対応している環境です。
Red Hat build of Kueue は、Kubernetes クラスター内の既存のコンポーネントを置き換えるのではなく、既存の Kubernetes API サーバー、スケジューラー、およびクラスターオートスケーラーコンポーネントと統合します。
Red Hat build of Kueue は、オールオアナッシング (all-or-nothing) のセマンティクスをサポートしています。つまり、ジョブ全体とそのすべてのコンポーネントがクラスターに受け入れられるか、ジョブがクラスターに適合しない場合はジョブ全体が拒否されます。
2.1.1. 想定ユーザー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue のワークフローには、さまざまな役割のユーザーが存在します。
- バッチ管理者
- バッチ管理者は、クラスターインフラストラクチャーを管理し、クォータおよびキューを確立します。
- バッチユーザー
- バッチユーザーはクラスターでジョブを実行します。バッチユーザーには、研究者、AI/ML エンジニア、またはデータサイエンティストなどがあります。
- サービングユーザー
- サービングユーザーは、クラスターでジョブを実行します。たとえば、推論用にトレーニングされた AI/ML モデルを公開するなどです。
- プラットフォーム開発者
- プラットフォーム開発者は、Red Hat build of Kueue を他のソフトウェアと統合します。また、Kueue オープンソースプロジェクトにも貢献する場合があります。
2.1.2. ワークフローの概要 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue のワークフローは、次のように概説できます。
-
バッチ管理者が
ResourceFlavor
、LocalQueue
、およびClusterQueue
リソースを作成および設定します。 - ユーザーがクラスターでジョブを作成します。
- Kubernetes API サーバーがジョブデータを検証して受け入れます。
-
Red Hat build of Kueue が、順序やクォータなどの設定されたオプションに基づいてジョブを許可します。リソースフレーバーを使用してジョブにアフィニティーを注入し、各ジョブに対応する
Workload
オブジェクトを作成します。 - ジョブタイプに応じた適切なコントローラーが Pod を作成します。
- Kubernetes スケジューラーが、クラスター内のノードに Pod を割り当てます。
- Kubernetes クラスターオートスケーラーが、必要に応じて追加のノードをプロビジョニングします。