AI ワークロード
OpenShift Container Platform での AI ワークロードの実行
概要
第1章 OpenShift Container Platform 上の AI ワークロードの概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、トレーニング、推論、データサイエンスのワークフロー全体にわたり、人工知能 (AI) ワークロードを実行するためのセキュアでスケーラブルな基盤を提供します。
1.1. AI ワークロードを実行するための Operator リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform では、Operator を使用して人工知能 (AI) および機械学習 (ML) のワークロードを実行できます。Operator を使用すると、OpenShift Container Platform をアプリケーションのコアプラットフォームとして引き続き使用しながら、特定の AI/ML 要件に合わせてカスタマイズした環境を構築できます。
OpenShift Container Platform には、AI ワークロードの実行に役立つ Operator がいくつかあります。
- Red Hat build of Kueue
Red Hat build of Kueue を使用すると、構造化されたキューと優先順位付けにより、ワークロードを公平かつ効率的に処理できます。適切な優先順位付けを行わないと、重要度の低いジョブがリソースを占有し、重要なジョブが遅延する可能性があります。
詳細は、「Red Hat build of Kueue の概要」を参照してください。
- Leader Worker Set Operator
Leader Worker Set Operator を使用すると、リーダープロセスとワーカープロセス間の同期により、大規模な AI 推論ワークロードを複数のノードにまたがって安定して実行できるようになります。適切な連携がなければ、大規模なトレーニングの実行が失敗したり停止したりする可能性があります。
詳細は、「Leader Worker Set Operator の概要」を参照してください。
第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 クラスターオートスケーラーが、必要に応じて追加のノードをプロビジョニングします。
2.2. リリースノート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue は、OpenShift Container Platform 上でサポートされる Operator としてリリースされています。
2.2.1. 互換性のある環境 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue をインストールする前に、このセクションを参照して、クラスターが要件を満たしていることを確認してください。
2.2.1.1. サポートされているアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
バージョン 1.1 以降の Red Hat build of Kueue は、次のアーキテクチャーでサポートされています。
- ARM64
- 64-bit x86
- ppc64le (IBM Power®)
- s390x (IBM Z®)
2.2.1.2. サポートされているプラットフォーム リンクのコピーリンクがクリップボードにコピーされました!
バージョン 1.1 以降の Red Hat build of Kueue は、次のプラットフォームでサポートされています。
- OpenShift Container Platform
- OpenShift Container Platform の Hosted Control Plane
現在、Red Hat build of Kueue は、Red Hat build of MicroShift (MicroShift) ではサポートされていません。
2.2.2. Red Hat build of Kueue バージョン 1.1 のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue バージョン 1.1 は、OpenShift Container Platform バージョン 4.18 以降でサポートされている一般提供リリースです。Red Hat build of Kueue バージョン 1.1 では、Kueue バージョン 0.12 が使用されます。
クラスターに以前にインストールしたバージョンの Red Hat build of Kueue がある場合は、Operator をアンインストールし、バージョン 1.1 を手動でインストールする必要があります。詳細は、Red Hat build of Kueue のアップグレード を参照してください。
2.2.2.1. 新機能および機能拡張 リンクのコピーリンクがクリップボードにコピーされました!
- デフォルトのローカルキューの設定
デフォルトのローカルキューは、
kueue.x-k8s.io/queue-name
ラベルを持たない新しく作成されたジョブのローカルキューとして機能します。デフォルトのローカルキューを作成してから、kueue.x-k8s.io/queue-name
ラベルのない namespace に新しいジョブを作成すると、そのジョブが更新されて自動的にkueue.x-k8s.io/queue-name: default
ラベルが付与されます。(RFE-7615)
- マルチアーキテクチャーと Hosted Control Plane のサポート
このリリースでは、Red Hat build of Kueue は、ARM64、64 ビット x86、ppc64le (IBM Power®)、s390x (IBM Z®) などの複数の異なるアーキテクチャー、および OpenShift Container Platform の Hosted Control Plane でサポートされるようになりました。
2.2.2.2. 修正された問題 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Container Platform Web コンソールを使用して、
Kueue
カスタムリソースを作成できます。 この更新前は、OpenShift Container Platform Web コンソールを使用してフォームビューで
Kueue
カスタムリソース (CR) を作成しようとすると、Web コンソールにエラーが表示され、リソースを作成できませんでした。このリリースでは、Kueue
CR テンプレートからデフォルトの namespace が削除されました。その結果、OpenShift Container Platform Web コンソールを使用して、フォームビューでKueue
CR を作成できるようになりました。
2.2.2.3. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Container Platform Web コンソールで
Kueue
CR の説明に "Not available" と表示される Red Hat build of Kueue をインストールすると、Operator details ビューで、
Kueue
CR の説明に "Not available" と表示されます。この問題は、Red Hat build of Kueue Operator の機能に影響を与えるものでも、その機能を低下させるものでもありません。- Red Hat build of Kueue をアンインストールしても、カスタムリソースが適切に削除されない
OpenShift Container Platform Web コンソールで Delete all operand instances for this operator オプションを使用して Red Hat Build of Kueue Operator をアンインストールしても、一部の Red Hat build of Kueue のカスタムリソースが完全に削除されません。これらのリソースは、Installed Operators ビューに Resource is being deleted というステータスとともに表示されます。回避策として、リソースのファイナライザーを手動で削除すると、完全に削除できます。
2.2.3. Red Hat build of Kueue バージョン 1.0.1 のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue バージョン 1.0.1 は、64 ビット x86 アーキテクチャー上の OpenShift Container Platform バージョン 4.18 および 4.19 でサポートされているパッチリリースです。
Red Hat build of Kueue バージョン 1.0.1 では、Kueue バージョン 0.11 が使用されます。
2.2.3.1. Red Hat build of Kueue バージョン 1.0.1 のバグ修正 リンクのコピーリンクがクリップボードにコピーされました!
- 以前は、Red Hat build of Kueue のリーダー選出が中断を許容するように設定されていなかったため、頻繁にクラッシュが発生していました。このリリースでは、Red Hat build of Kueue のリーダー選出の値が、OpenShift Container Platform の推奨期間と一致するように更新されました。(OCPBUGS-58496)
-
以前は、
ReadyReplicas
の数がリコンサイラーに設定されていなかったため、Red Hat build of Kueue Operator のステータスで準備完了状態のレプリカが存在しないと報告されていました。このリリースでは、ReadyReplicas
の数がデプロイメントの準備完了レプリカの数に基づいているため、kueue-controller-manager
Pod の準備が完了すると、OpenShift Container Platform コンソールで Operator が準備完了として表示されます。(OCPBUGS-59261) -
以前は、
Kueue
カスタムリソース (CR) がopenshift-kueue-operator
namespace から削除されても、kueue-manager-config
config map が自動的に削除されず、その namespace に残る場合がありました。このリリースでは、Kueue
CR が削除されると、kueue-manager-config
config map、kueue-webhook-server-cert
シークレット、およびmetrics-server-cert
シークレットが自動的に削除されます。(OCPBUGS-57960)
2.2.4. Red Hat build of Kueue バージョン 1.0 のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue バージョン 1.0 は、64 ビット x86 アーキテクチャー上の OpenShift Container Platform バージョン 4.18 および 4.19 でサポートされている一般提供リリースです。Red Hat build of Kueue バージョン 1.0 では、Kueue バージョン 0.11 が使用されます。
2.2.4.1. 新機能および機能拡張 リンクのコピーリンクがクリップボードにコピーされました!
- ロールベースアクセス制御 (RBAC)
- ロールベースアクセス制御 (RBAC) を使用すると、どのタイプのユーザーがどのタイプの Red Hat build of Kueue リソースを作成できるかを制御できます。
- リソースクォータの設定
- クラスターキュー、リソースフレーバー、およびローカルキューを作成してリソースクォータを設定すると、ユーザーが送信したジョブとワークロードで使用されるリソースの量を制御できます。
- ジョブおよびワークロード管理の制御
- namespace にラベルを付け、ラベルポリシーを設定すると、Red Hat build of Kueue によって管理されるジョブとワークロードを制御できます。
- キュー間での借用可能なリソースの共有
- コホート、フェアシェアリング、ギャングスケジューリングの設定を行うと、未使用の借用可能なリソースをキュー間で共有できるようになります。
2.2.4.2. 既知の問題 リンクのコピーリンクがクリップボードにコピーされました!
- ジョブが
kueue.x-k8s.io/queue-name
ラベルを持っている場合、そのジョブが属する namespace にかかわらずリコンサイルされる Red Hat build of Kueue は
managedJobsNamespaceSelector
設定フィールドを使用します。そのため、管理者はどの namespace を Red Hat build of Kueue で管理するかを設定できます。namespace は、Red Hat build of Kueue で管理するように手動で設定する必要があります。そのため、システムまたはサードパーティーの namespace 内のリソースは、Red Hat build of Kueue によって影響を受けず、管理されません。Red Hat build of Kueue 1.0 の動作では、
kueue.x-k8s.io/queue-name
ラベルを持つJob
リソースが、Red Hat build of Kueue による管理をオプトインするように設定されていない namespace に存在する場合でも、そのリソースのリコンシリエーションが許可されます。これは、Pod、デプロイメント、ステートフルセットなど、他の主要な連携機能の動作と一貫性がありません。これらのリソースは、Red Hat build of Kueue による管理をオプトインするように設定された namespace 内にある場合にのみリコンサイルされます。- OpenShift Container Platform Web コンソールを使用して
Kueue
カスタムリソースを作成できない OpenShift Container Platform Web コンソールを使用してフォームビューで
Kueue
カスタムリソース (CR) を作成しようとすると、Web コンソールにエラーが表示され、リソースを作成できません。回避策として、代わりに YAML ビューを使用してKueue
CR を作成します。
2.3. Red Hat build of Kueue のインストール リンクのコピーリンクがクリップボードにコピーされました!
OperatorHub の Red Hat Build of Kueue Operator を使用して、Red Hat Build of Kueue をインストールできます。
2.3.1. 互換性のある環境 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue をインストールする前に、このセクションを参照して、クラスターが要件を満たしていることを確認してください。
2.3.1.1. サポートされているアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
バージョン 1.1 以降の Red Hat build of Kueue は、次のアーキテクチャーでサポートされています。
- ARM64
- 64-bit x86
- ppc64le (IBM Power®)
- s390x (IBM Z®)
2.3.1.2. サポートされているプラットフォーム リンクのコピーリンクがクリップボードにコピーされました!
バージョン 1.1 以降の Red Hat build of Kueue は、次のプラットフォームでサポートされています。
- OpenShift Container Platform
- OpenShift Container Platform の Hosted Control Plane
現在、Red Hat build of Kueue は、Red Hat build of MicroShift (MicroShift) ではサポートされていません。
2.3.2. Red Hat Build of Kueue Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールで OperatorHub を使用して、Red Hat build of Kueue Operator を OpenShift Container Platform クラスターにインストールできます。
前提条件
- OpenShift Container Platform クラスターの管理者権限を持っている。
- OpenShift Container Platform Web コンソールにアクセスできる。
- クラスターに cert-manager Operator for Red Hat OpenShift をインストールして設定した。
手順
- OpenShift Container Platform Web コンソールで、Operators → OperatorHub をクリックします。
- 利用可能な Operator の一覧から Red Hat Build of Kueue Operator を選択し、Install をクリックします。
検証
- Operators → Installed Operators に移動し、Red Hat Build of Kueue Operator の Status が Succeeded と表示されていることを確認します。
2.3.3. Red Hat build of Kueue のアップグレード リンクのコピーリンクがクリップボードにコピーされました!
以前に Red Hat build of Kueue をインストールしたことがある場合、最新のバグ修正と機能拡張を使用するには、デプロイメントを手動で最新バージョンにアップグレードする必要があります。
前提条件
- 以前のバージョンの Red Hat build of Kueue がインストールされている。
- クラスター管理者の権限で OpenShift Container Platform Web コンソールにログインしている。
手順
- OpenShift Container Platform Web コンソールで、Operators → Installed Operator をクリックし、リストから Red Hat build of Kueue を選択します。
- Actions ドロップダウンメニューから、Uninstall Operator を選択します。
Uninstall Operator? ダイアログボックスが開きます。Uninstall をクリックします。
重要Uninstall をクリックする前に Delete all operand instances for this operator チェックボックスをオンにすると、次の既存のリソースを含むすべてのリソースがクラスターから削除されます。
-
Kueue
CR - 作成したクラスターキュー、ローカルキュー、またはリソースフレーバー
クラスターをアップグレードする際に作成したリソースを保持するには、このボックスをオフのままにしておきます。
-
- OpenShift Container Platform Web コンソールで、Operators → OperatorHub をクリックします。
- 利用可能な Operator の一覧から Red Hat Build of Kueue Operator を選択し、Install をクリックします。
検証
- Operators → Installed Operators に移動します。
- Red Hat Build of Kueue Operator の Status が Succeeded と表示されていることを確認します。
- リスト内の Operator 名の下に表示されているバージョンが最新バージョンであることを確認します。
2.3.4. Kueue カスタムリソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Build of Kueue Operator をインストールした後、インストールを設定するために Kueue
カスタムリソース (CR) を作成する必要があります。
前提条件
以下の前提条件を満たしていることを確認します。
- Red Hat build of Kueue Operator がクラスターにインストールされている。
-
クラスター管理者権限および
kueue-batch-admin-role
ロールがある。 - OpenShift Container Platform Web コンソールにアクセスできる。
手順
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators をクリックします。
- Provided APIs テーブル列で、Kueue をクリックします。これにより、Operator details ページの Kueue タブに移動します。
- Create Kueue をクリックします。これにより、Create Kueue YAML ビューに移動します。
Kueue
CR の詳細を入力します。Kueue
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create をクリックします。
検証
-
Kueue
CR を作成すると、Web コンソールに Operator details ページが表示され、Kueues のリストに CR が表示されます。 オプション: OpenShift CLI (
oc
) がインストールされている場合は、次のコマンドを実行し、出力を確認してKueue
CR が正常に作成されたことを確認できます。oc get kueue
$ oc get kueue
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE cluster 4m
NAME AGE cluster 4m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.5. Red Hat build of Kueue がジョブを管理できるように namespace にラベルを付ける リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue Operator は、対象とするジョブと namespace に対してのみポリシーが適用されるように、オプトイン Webhook メカニズムを使用します。
Red Hat build of Kueue でジョブを管理する namespace には、kueue.openshift.io/managed=true
ラベルを付ける必要があります。
前提条件
- クラスター管理者パーミッションがある。
-
Red Hat build of Kueue Operator がクラスターにインストールされ、
Kueue
カスタムリソース (CR) が作成されている。 -
OpenShift CLI (
oc
) がインストールされている。
手順
以下のコマンドを実行して、
kueue.openshift.io/managed=true
ラベルを namespace に追加します。oc label namespace <namespace> kueue.openshift.io/managed=true
$ oc label namespace <namespace> kueue.openshift.io/managed=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
このラベルを追加すると、その namespace を Webhook アドミッションコントローラーによって管理するよう Red Hat build of Kueue Operator に指示することになります。その結果、その namespace 内の Red Hat build of Kueue リソースが適切に検証され、変更されるようになります。
2.4. 非接続環境での Red Hat build of Kueue のインストール リンクのコピーリンクがクリップボードにコピーされました!
非接続の OpenShift Container Platform クラスターに Red Hat build of Kueue をインストールする前に、次の手順を実行して、非接続環境で Operator Lifecycle Manager (OLM) を有効にする必要があります。
- OLM のデフォルトのリモート OperatorHub ソースを無効にします。
- 完全なインターネットアクセスのあるワークステーションを使用して、OperatorHub コンテンツのローカルミラーを作成し、これをミラーレジストリーにプッシュします。
- OLM を、デフォルトのリモートソースからではなくミラーレジストリーのローカルソースから Operator をインストールし、管理するように設定します。
非接続環境で OLM を有効にしたら、アクセス制限のないワークステーションを引き続き使用して、新しいバージョンの Operator のリリース時にローカルの OperatorHub ソースを継続的に更新できます。
これらの手順を完了するための詳細なドキュメントは、非接続環境での Operator Lifecycle Manager の使用 に関する OpenShift Container Platform ドキュメントを参照してください。
2.4.1. 互換性のある環境 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue をインストールする前に、このセクションを参照して、クラスターが要件を満たしていることを確認してください。
2.4.1.1. サポートされているアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
バージョン 1.1 以降の Red Hat build of Kueue は、次のアーキテクチャーでサポートされています。
- ARM64
- 64-bit x86
- ppc64le (IBM Power®)
- s390x (IBM Z®)
2.4.1.2. サポートされているプラットフォーム リンクのコピーリンクがクリップボードにコピーされました!
バージョン 1.1 以降の Red Hat build of Kueue は、次のプラットフォームでサポートされています。
- OpenShift Container Platform
- OpenShift Container Platform の Hosted Control Plane
現在、Red Hat build of Kueue は、Red Hat build of MicroShift (MicroShift) ではサポートされていません。
2.4.2. Red Hat Build of Kueue Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールで OperatorHub を使用して、Red Hat build of Kueue Operator を OpenShift Container Platform クラスターにインストールできます。
前提条件
- OpenShift Container Platform クラスターの管理者権限を持っている。
- OpenShift Container Platform Web コンソールにアクセスできる。
- クラスターに cert-manager Operator for Red Hat OpenShift をインストールして設定した。
手順
- OpenShift Container Platform Web コンソールで、Operators → OperatorHub をクリックします。
- 利用可能な Operator の一覧から Red Hat Build of Kueue Operator を選択し、Install をクリックします。
検証
- Operators → Installed Operators に移動し、Red Hat Build of Kueue Operator の Status が Succeeded と表示されていることを確認します。
2.4.3. Red Hat build of Kueue のアップグレード リンクのコピーリンクがクリップボードにコピーされました!
以前に Red Hat build of Kueue をインストールしたことがある場合、最新のバグ修正と機能拡張を使用するには、デプロイメントを手動で最新バージョンにアップグレードする必要があります。
前提条件
- 以前のバージョンの Red Hat build of Kueue がインストールされている。
- クラスター管理者の権限で OpenShift Container Platform Web コンソールにログインしている。
手順
- OpenShift Container Platform Web コンソールで、Operators → Installed Operator をクリックし、リストから Red Hat build of Kueue を選択します。
- Actions ドロップダウンメニューから、Uninstall Operator を選択します。
Uninstall Operator? ダイアログボックスが開きます。Uninstall をクリックします。
重要Uninstall をクリックする前に Delete all operand instances for this operator チェックボックスをオンにすると、次の既存のリソースを含むすべてのリソースがクラスターから削除されます。
-
Kueue
CR - 作成したクラスターキュー、ローカルキュー、またはリソースフレーバー
クラスターをアップグレードする際に作成したリソースを保持するには、このボックスをオフのままにしておきます。
-
- OpenShift Container Platform Web コンソールで、Operators → OperatorHub をクリックします。
- 利用可能な Operator の一覧から Red Hat Build of Kueue Operator を選択し、Install をクリックします。
検証
- Operators → Installed Operators に移動します。
- Red Hat Build of Kueue Operator の Status が Succeeded と表示されていることを確認します。
- リスト内の Operator 名の下に表示されているバージョンが最新バージョンであることを確認します。
2.4.4. Kueue カスタムリソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Build of Kueue Operator をインストールした後、インストールを設定するために Kueue
カスタムリソース (CR) を作成する必要があります。
前提条件
以下の前提条件を満たしていることを確認します。
- Red Hat build of Kueue Operator がクラスターにインストールされている。
-
クラスター管理者権限および
kueue-batch-admin-role
ロールがある。 - OpenShift Container Platform Web コンソールにアクセスできる。
手順
- OpenShift Container Platform Web コンソールで、Operators → Installed Operators をクリックします。
- Provided APIs テーブル列で、Kueue をクリックします。これにより、Operator details ページの Kueue タブに移動します。
- Create Kueue をクリックします。これにより、Create Kueue YAML ビューに移動します。
Kueue
CR の詳細を入力します。Kueue
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create をクリックします。
検証
-
Kueue
CR を作成すると、Web コンソールに Operator details ページが表示され、Kueues のリストに CR が表示されます。 オプション: OpenShift CLI (
oc
) がインストールされている場合は、次のコマンドを実行し、出力を確認してKueue
CR が正常に作成されたことを確認できます。oc get kueue
$ oc get kueue
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE cluster 4m
NAME AGE cluster 4m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.5. Red Hat build of Kueue がジョブを管理できるように namespace にラベルを付ける リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue Operator は、対象とするジョブと namespace に対してのみポリシーが適用されるように、オプトイン Webhook メカニズムを使用します。
Red Hat build of Kueue でジョブを管理する namespace には、kueue.openshift.io/managed=true
ラベルを付ける必要があります。
前提条件
- クラスター管理者パーミッションがある。
-
Red Hat build of Kueue Operator がクラスターにインストールされ、
Kueue
カスタムリソース (CR) が作成されている。 -
OpenShift CLI (
oc
) がインストールされている。
手順
以下のコマンドを実行して、
kueue.openshift.io/managed=true
ラベルを namespace に追加します。oc label namespace <namespace> kueue.openshift.io/managed=true
$ oc label namespace <namespace> kueue.openshift.io/managed=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
このラベルを追加すると、その namespace を Webhook アドミッションコントローラーによって管理するよう Red Hat build of Kueue Operator に指示することになります。その結果、その namespace 内の Red Hat build of Kueue リソースが適切に検証され、変更されるようになります。
2.5. ロールベースの権限の設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、Red Hat build of Kueue デプロイメントでロールベースアクセス制御 (RBAC) を設定する方法を説明します。これらの RBAC 権限によって、どのタイプのユーザーがどのタイプの Red Hat build of Kueue オブジェクトを作成できるかが決まります。
2.5.1. クラスターロール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue Operator は、デフォルトで kueue-batch-admin-role
および kueue-batch-user-role
クラスターロールをデプロイします。
- kueue-batch-admin-role
- このクラスターロールには、クラスターキュー、ローカルキュー、ワークロード、およびリソースフレーバーを管理する権限が含まれます。
- kueue-batch-user-role
- このクラスターロールには、ジョブを管理し、ローカルキューとワークロードを表示する権限が含まれます。
2.5.2. バッチ管理者の権限の設定 リンクのコピーリンクがクリップボードにコピーされました!
kueue-batch-admin-role
クラスターロールをユーザーまたはユーザーグループにバインドすることで、バッチ管理者の権限を設定できます。
前提条件
- Red Hat build of Kueue Operator がクラスターにインストールされている。
- クラスター管理者パーミッションがある。
-
OpenShift CLI (
oc
) がインストールされている。
手順
ClusterRoleBinding
オブジェクトを YAML ファイルとして作成します。ClusterRoleBinding
オブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterRoleBinding
オブジェクトを適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行し、出力に
kueue-batch-admin-role
クラスターロールの正しい情報が含まれていることを確認し、ClusterRoleBinding
オブジェクトが正しく適用されたことを確認できます。$ oc describe clusterrolebinding.rbac
$ oc describe clusterrolebinding.rbac
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.3. ユーザー権限の設定 リンクのコピーリンクがクリップボードにコピーされました!
kueue-batch-user-role
クラスターロールをユーザーまたはユーザーグループにバインドすることで、Red Hat build of Kueue ユーザーの権限を設定できます。
前提条件
- Red Hat build of Kueue Operator がクラスターにインストールされている。
- クラスター管理者パーミッションがある。
-
OpenShift CLI (
oc
) がインストールされている。
手順
RoleBinding
オブジェクトを YAML ファイルとして作成します。ClusterRoleBinding
オブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow RoleBinding
オブジェクトを適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行し、出力に
kueue-batch-user-role
クラスターロールの正しい情報が含まれていることを確認し、RoleBinding
オブジェクトが正しく適用されたことを確認できます。$ oc describe rolebinding.rbac
$ oc describe rolebinding.rbac
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6. クォータの設定 リンクのコピーリンクがクリップボードにコピーされました!
管理者は、Red Hat build of Kueue を使用してクォータを設定し、ユーザーワークロードのリソース割り当てとシステムスループットを最適化できます。CPU、メモリー、Pod、GPU などのコンピュートリソースのクォータを設定できます。
以下の手順を実行すると、Red Hat build of Kueue でクォータを設定できます。
- クラスターキューを設定します。
- リソースフレーバーを設定します。
- ローカルキューを設定します。
その後、ユーザーはワークロードをローカルキューに送信できます。
2.6.1. クラスターキューの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスターキューは、ClusterQueue
オブジェクトによって表されるクラスタースコープのリソースであり、CPU、メモリー、Pod などのリソースプールを管理します。クラスターキューを使用すると、使用制限、リソースフレーバーのクォータ、消費順序、フェアシェアリングルールを定義できます。
ResourceFlavor
オブジェクトも設定されるまで、クラスターキューは使用可能になりません。
前提条件
- Red Hat build of Kueue Operator がクラスターにインストールされている。
-
クラスター管理者権限または
kueue-batch-admin-role
ロールがある。 -
OpenShift CLI (
oc
) がインストールされている。
手順
ClusterQueue
オブジェクトを YAML ファイルとして作成します。単一のリソースフレーバーを使用した基本的な
ClusterQueue
オブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- このクラスターキューが管理するリソースを使用できる namespace を定義します。例に示すように、空の
namespaceSelector
は、すべての namespace がこれらのリソースを使用できることを意味します。 - 2
- クラスターキューによって管理されるリソースタイプを定義します。この例では、
ClusterQueue
オブジェクトは CPU、メモリー、Pod、および GPU リソースを管理します。 - 3
- リストされているリソースタイプに適用されるリソースフレーバーを定義します。この例では、
default-flavor
リソースフレーバーが CPU、メモリー、Pod、および GPU リソースに適用されます。 - 4
- ジョブを許可するリソース要件を定義します。このサンプルクラスターキューは、次の条件が満たされた場合にのみジョブを許可します。
- CPU 要求の合計は 9 以下です。
- メモリー要求の合計は 36Gi 以下です。
- Pod の合計数は 5 以下です。
- GPU リクエストの合計は 100 以下です。
次のコマンドを実行して、
ClusterQueue
オブジェクトを適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.2. リソースフレーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
ClusterQueue
オブジェクトを設定したら、ResourceFlavor
オブジェクトを設定できます。
クラスター内のリソースは通常、同種ではありません。クラスター内のリソースが同種である場合は、カスタムリソースフレーバーにラベルを追加する代わりに、空の ResourceFlavor
を使用できます。
カスタム ResourceFlavor
オブジェクトを使用すると、ラベル、taint、および toleration を通じてクラスターノードに関連付けられているさまざまなリソースのバリエーションを表すことができます。その後、ワークロードを特定のノードタイプに関連付けて、きめ細かなリソース管理が可能になります。
前提条件
- Red Hat build of Kueue Operator がクラスターにインストールされている。
-
クラスター管理者権限または
kueue-batch-admin-role
ロールがある。 -
OpenShift CLI (
oc
) がインストールされている。
手順
ResourceFlavor
オブジェクトを YAML ファイルとして作成します。空の
ResourceFlavor
オブジェクトの例apiVersion: kueue.x-k8s.io/v1beta1 kind: ResourceFlavor metadata: name: default-flavor
apiVersion: kueue.x-k8s.io/v1beta1 kind: ResourceFlavor metadata: name: default-flavor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow カスタム
ResourceFlavor
オブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
ResourceFlavor
オブジェクトを適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.3. ローカルキューの設定 リンクのコピーリンクがクリップボードにコピーされました!
ローカルキューは、LocalQueue
オブジェクトによって表される namespace オブジェクトであり、単一の namespace に属する密接に関連するワークロードをグループ化します。
管理者は、LocalQueue
オブジェクトをクラスターキューを指すように設定できます。これにより、クラスターキューのリソースが、LocalQueue
オブジェクトで指定された namespace 内のワークロードに割り当てられます。
前提条件
- Red Hat build of Kueue Operator がクラスターにインストールされている。
-
クラスター管理者権限または
kueue-batch-admin-role
ロールがある。 -
OpenShift CLI (
oc
) がインストールされている。 -
ClusterQueue
オブジェクトを作成している。
手順
LocalQueue
オブジェクトを YAML ファイルとして作成します。基本的な
LocalQueue
オブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
LocalQueue
オブジェクトを適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.4. デフォルトのローカルキューの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、各ジョブに明示的にラベルを付けることなく、選択した namespace 内のすべてのジョブを管理することで、クラスター内のクォータの適用を改善できます。これは、デフォルトのローカルキューを作成することで実行できます。
デフォルトのローカルキューは、kueue.x-k8s.io/queue-name
ラベルを持たない新しく作成されたジョブのローカルキューとして機能します。デフォルトのローカルキューを作成してから、kueue.x-k8s.io/queue-name
ラベルのない namespace に新しいジョブを作成すると、そのジョブが更新されて自動的に kueue.x-k8s.io/queue-name: default
ラベルが付与されます。
デフォルトのローカルキューを作成しても、namespace 内の既存のジョブは影響を受けません。デフォルトのローカルキューを作成する前に、namespace にジョブがすでに存在する場合は、そのジョブに明示的にラベルを付けてキューに割り当てる必要があります。
前提条件
- クラスターに Red Hat build of Kueue バージョン 1.1 がインストールされている。
-
クラスター管理者権限または
kueue-batch-admin-role
ロールがある。 -
OpenShift CLI (
oc
) がインストールされている。 -
ClusterQueue
オブジェクトを作成している。
手順
default
という名前のLocalQueue
オブジェクトを YAML ファイルとして作成します。デフォルトの
LocalQueue
オブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
LocalQueue
オブジェクトを適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
- デフォルトのローカルキューと同じ namespace にジョブを作成します。
-
ジョブが
kueue.x-k8s.io/queue-name: default
ラベルで更新されることを確認します。
2.7. ジョブおよびワークロードの管理 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue は、ユーザーが作成したジョブを直接操作しません。代わりに、Kueue はジョブのリソース要件を表す Workload
オブジェクトを管理します。Red Hat build of Kueue は、各ジョブのワークロードを自動的に作成し、2 つのオブジェクト間の決定とステータスを同期します。
2.7.1. Red Hat build of Kueue がジョブを管理できるように namespace にラベルを付ける リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue Operator は、対象とするジョブと namespace に対してのみポリシーが適用されるように、オプトイン Webhook メカニズムを使用します。
Red Hat build of Kueue でジョブを管理する namespace には、kueue.openshift.io/managed=true
ラベルを付ける必要があります。
前提条件
- クラスター管理者パーミッションがある。
-
Red Hat build of Kueue Operator がクラスターにインストールされ、
Kueue
カスタムリソース (CR) が作成されている。 -
OpenShift CLI (
oc
) がインストールされている。
手順
以下のコマンドを実行して、
kueue.openshift.io/managed=true
ラベルを namespace に追加します。oc label namespace <namespace> kueue.openshift.io/managed=true
$ oc label namespace <namespace> kueue.openshift.io/managed=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
このラベルを追加すると、その namespace を Webhook アドミッションコントローラーによって管理するよう Red Hat build of Kueue Operator に指示することになります。その結果、その namespace 内の Red Hat build of Kueue リソースが適切に検証され、変更されるようになります。
2.7.2. ジョブのラベルポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Kueue
カスタムリソース (CR) の spec.config.workloadManagement.labelPolicy
仕様は、Red Hat build of Kueue がさまざまなジョブを管理するか無視するかを決定する方法を制御する省略可能なフィールドです。使用できる値は QueueName
、None
、および空 (""
) です。
labelPolicy
設定が省略されているか、空 (""
) の場合、デフォルトのポリシーとして、Red Hat build of Kueue は kueue.x-k8s.io/queue-name
ラベルを持つジョブを管理し、kueue.x-k8s.io/queue-name
ラベルを持たないジョブを無視します。これは、labelPolicy
が QueueName
に設定されている場合と同じワークフローです。
labelPolicy
設定が None
に設定されている場合、ジョブは kueue.x-k8s.io/queue-name
ラベルがなくても、Red Hat build of Kueue によって管理されます。
workloadManagement
仕様設定の例
kueue.x-k8s.io/queue-name
ラベルを含むユーザー作成の Job
オブジェクトの例
2.8. コホートの使用 リンクのコピーリンクがクリップボードにコピーされました!
コホートを使用すると、クラスターキューをグループ化し、どのクラスターキューがリソースを相互に共有できるかを定義できます。共有可能リソースとは、コホート内のすべてのクラスターキューに割り当てられた未使用の公称クォータとして定義されます。
コホートを使用すると、リソース不足を防ぎ、フェアシェアリングの設定を有効にすることで、リソースの使用率を最適化できます。コホートを使用すると、関連するワークロードまたは各チームのクラスターキューをグループ化できるため、チーム間のリソース管理と割り当てを簡素化することもできます。また、コホートを使用してグループレベルでリソースクォータを設定し、クラスターキューのグループが消費できるリソースの制限を定義することもできます。
2.8.1. クラスターキュー仕様内でのコホートの設定 リンクのコピーリンクがクリップボードにコピーされました!
次の例に示すように、ClusterQueue
オブジェクトの .spec.cohort
フィールドにコホートの名前を指定して、コホートにクラスターキューを追加できます。
spec.cohort
が一致するクラスターキューはすべて、同じコホートに含まれます。
spec.cohort
フィールドが省略されている場合、クラスターキューはどのコホートにも属さず、共有可能なリソースにアクセスできません。
2.9. フェアシェアリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
フェアシェアリングは、コホートのテナント間で、借用可能なリソースを均等に、または重み付けされた割合で共有するのに使用されるプリエンプションストラテジーです。借用可能なリソースは、コホート内のすべてのクラスターキューの未使用の名目上のクォータです。
Kueue
カスタムリソース (CR) の preemptionPolicy
値を FairSharing
に設定することで、フェアシェアリングを設定できます。
2.10. ギャングスケジューリング リンクのコピーリンクがクリップボードにコピーされました!
ギャングスケジューリングにより、必要なリソースがすべて利用可能になった場合にのみ、関連するジョブのグループまたは ギャング が開始されます。Red Hat build of Kueue は、ギャング内の関連ジョブすべてをまとめて開始および実行する容量を OpenShift Container Platform クラスターが保証できるようになるまで、ジョブを一時停止することで、ギャングスケジューリングを可能にします。これは、オールオアナッシング (all-or-nothing) スケジューリングとも呼ばれます。
GPU などの高価で限られたリソースを使用する場合、ギャングスケジューリングは重要です。ギャングスケジューリングにより、ジョブが GPU を要求するものの使用しないという状況を防ぐことができ、GPU の使用率が向上し、実行コストを削減できます。ギャングスケジューリングは、リソースのセグメンテーションやデッドロックなどの問題を防ぐ場合にも役立ちます。
2.10.1. ギャングスケジューリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、Kueue
カスタムリソース (CR) の gangScheduling
spec を変更することで、ギャングスケジューリングを設定できます。
ギャングスケジューリングが設定された Kueue
CR の例
- 1
policy
値を設定して、ギャングスケジューリングを有効または無効化できます。可能な値はByWorkload
、None
、または空 (""
) です。ByWorkload
-
policy
値がByWorkload
に設定されている場合、各ジョブは単一のユニットとして処理され、許可の対象となります。指定された時間内にジョブの準備が完了しない場合は、ジョブ全体が退避され、後で再試行されます。 None
-
policy
値がNone
に設定されている場合、ギャングスケジューリングは無効になります。 - 空白 (
""
) -
policy
値が空、または""
に設定されている場合、Red Hat build of Kueue Operator がギャングスケジューリングの設定を決定します。現在、ギャングスケジューリングはデフォルトで無効になっています。
- 2
policy
値がByWorkload
に設定されている場合、ジョブの許可設定を行う必要があります。admission
spec に指定できる値は、Parallel
、Sequential
、または空 (""
) です。Parallel
-
admission
値がParallel
に設定されている場合、任意のジョブの Pod をいつでも許可できます。これにより、ジョブがクラスター容量をめぐって競合するデッドロックが発生する可能性があります。デッドロックが発生すると、別のジョブからの Pod のスケジューリングが成功すると、現在のジョブからの Pod のスケジューリングが妨げられる可能性があります。 Sequential
-
admission
値がSequential
に設定されている場合、現在処理中のジョブからの Pod のみが許可されます。現在のジョブのすべての Pod が許可され準備完了になると、Red Hat build of Kueue は次のジョブを処理します。クラスターに複数のジョブを処理するのに十分な容量がある場合、順次処理によって許可速度が低下する可能性がありますが、ジョブのすべての Pod が正常に一緒にスケジュールされる可能性が高くなります。 - 空白 (
""
) -
admission
値が空または""
に設定されている場合、Red Hat build of Kueue Operator がジョブの許可設定を決定します。現在、admission
値はデフォルトでParallel
に設定されています。
2.11. クォータ制限付きジョブの実行 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue を有効にして Kubernetes ジョブを実行すると、定義したクォータ制限内でリソースの割り当てを管理できます。これにより、予測可能なリソースの可用性、クラスターの安定性、およびパフォーマンスの最適化に役立ちます。
2.11.1. 利用可能なローカルキューの特定 リンクのコピーリンクがクリップボードにコピーされました!
ジョブをキューに送信する前に、ローカルキューの名前を見つける必要があります。
前提条件
- クラスター管理者によって OpenShift Container Platform クラスターに Red Hat build of Kueue がインストールおよび設定されている。
-
クラスター管理者によって
kueue-batch-user-role
クラスターロールが割り当てられている。 -
OpenShift CLI (
oc
) がインストールされている。
手順
次のコマンドを実行し、namespace 内で使用可能なローカルキューをリスト表示します。
oc -n <namespace> get localqueues
$ oc -n <namespace> get localqueues
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CLUSTERQUEUE PENDING WORKLOADS user-queue cluster-queue 3
NAME CLUSTERQUEUE PENDING WORKLOADS user-queue cluster-queue 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.11.2. Red Hat build of Kueue で実行するジョブの定義 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue で実行するジョブを定義する場合は、次の基準を満たしていることを確認してください。
-
kueue.x-k8s.io/queue-name
ラベルを使用して、ジョブの送信先となるローカルキューを指定します。 - 各ジョブ Pod のリソース要求を含めます。
Red Hat build of Kueue はジョブを一時停止し、リソースが利用可能になったときにジョブを開始します。Red Hat build of Kueue は、ジョブと同じ名前の Workload
オブジェクトとして表される、対応するワークロードを作成します。
前提条件
- クラスター管理者によって OpenShift Container Platform クラスターに Red Hat build of Kueue がインストールおよび設定されている。
-
クラスター管理者によって
kueue-batch-user-role
クラスターロールが割り当てられている。 -
OpenShift CLI (
oc
) がインストールされている。 - ジョブを送信するローカルキューの名前を特定した。
手順
Job
オブジェクトを作成します。ジョブの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してジョブを実行します。
oc create -f <filename>.yaml
$ oc create -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して出力を確認し、作成したジョブに対して Pod が実行されていることをチェックします。
oc get job <job-name>
$ oc get job <job-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS COMPLETIONS DURATION AGE sample-job-sk42x Suspended 0/1 2m12s
NAME STATUS COMPLETIONS DURATION AGE sample-job-sk42x Suspended 0/1 2m12s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して出力を確認し、ワークロードがジョブの namespace で作成されたことをチェックします。
oc -n <namespace> get workloads
$ oc -n <namespace> get workloads
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME QUEUE RESERVED IN ADMITTED FINISHED AGE job-sample-job-sk42x-77c03 user-queue 3m8s
NAME QUEUE RESERVED IN ADMITTED FINISHED AGE job-sample-job-sk42x-77c03 user-queue 3m8s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.12. サポートの利用 リンクのコピーリンクがクリップボードにコピーされました!
このドキュメントで説明されている手順、または Red Hat build of Kueue 全般に問題がある場合は、Red Hat カスタマーポータル にアクセスしてください。
カスタマーポータルでは、以下を行うことができます。
- Red Hat 製品に関するアーティクルおよびソリューションを対象とした Red Hat ナレッジベースの検索またはブラウズ。
- Red Hat サポートに対するサポートケースの送信。
- その他の製品ドキュメントへのアクセス。
2.12.1. Red Hat ナレッジベースについて リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ナレッジベース は、お客様が Red Hat の製品やテクノロジーを最大限に活用できるようにするための豊富なコンテンツを提供します。Red Hat ナレッジベースは、Red Hat 製品のインストール、設定、および使用に関する記事、製品ドキュメント、および動画で構成されています。さらに、既知の問題に対する解決策を検索でき、それぞれに根本原因の簡潔な説明と修復手順が記載されています。
2.12.2. Red Hat サポート用のデータ収集 リンクのコピーリンクがクリップボードにコピーされました!
oc adm must-gather
CLI コマンドを使用すると、次のような問題のデバッグに必要になる可能性が高い、Red Hat build of Kueue インスタンスに関する情報を収集できます。
- ワークロード、クラスターキュー、ローカルキュー、リソースフレーバー、アドミッションチェック、および対応するクラスターリソース定義 (CRD) などの Red Hat build of Kueue カスタムリソース
- サービス
- Endpoints
- Webhook の設定
-
openshift-kueue-operator
namespace およびkueue-controller-manager
Pod からのログ
収集されたデータは、デフォルトでは現在の作業ディレクトリー内の must-gather/
という名前の新しいディレクトリーに書き込まれます。
前提条件
- Red Hat build of Kueue Operator がクラスターにインストールされている。
-
OpenShift CLI (
oc
) がインストールされている。
手順
-
must-gather
データを保存するディレクトリーに移動します。 次のコマンドを実行して、
must-gather
データを収集します。oc adm must-gather \ --image=registry.redhat.io/kueue/kueue-must-gather-rhel9:<version>
$ oc adm must-gather \ --image=registry.redhat.io/kueue/kueue-must-gather-rhel9:<version>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <version>
は、Red Hat build of Kueue の現在のバージョンです。-
作業ディレクトリーに作成された
must-gather
ディレクトリーから圧縮ファイルを作成します。固有のmust-gather
データの日付とクラスター ID を必ず提供してください。クラスター ID を確認する方法の詳細は、How to find the cluster-id or name on OpenShift cluster を参照してください。 - Red Hat カスタマーポータルの カスタマーサポート ページ で、圧縮ファイルをサポートケースに添付します。
第3章 Leader Worker Set Operator リンクのコピーリンクがクリップボードにコピーされました!
3.1. Leader Worker Set Operator の概要 リンクのコピーリンクがクリップボードにコピーされました!
AI/ML 推論に大規模言語モデル (LLM) を使用するには、多くの場合、大量のコンピュートリソースが必要です。通常はワークロードを複数のノードに分散する必要があります。そのため、デプロイメントが複雑になり、スケーリング、障害からの回復、効率的な Pod の配置に関する課題が生じる可能性があります。
Leader Worker Set Operator は、Pod のグループを 1 つの連携したユニットとして扱うことで、このようなマルチノードのデプロイメントを簡素化します。また、グループ内の各 Pod のライフサイクルを管理し、グループ全体をまとめてスケーリングし、グループレベルで更新と障害回復を実行して、一貫性を確保します。
3.1.1. Leader Worker Set Operator について リンクのコピーリンクがクリップボードにコピーされました!
Leader Worker Set Operator は、LeaderWorkerSet オープンソースプロジェクトをベースにしています。LeaderWorkerSet
は、Pod のグループをユニットとしてデプロイするために使用できるカスタム Kubernetes API です。これは、大規模言語モデル (LLM) が複数のノードに分散される人工知能 (AI) および機械学習 (ML) 推論ワークロードに役立ちます。
LeaderWorkerSet
API を使用すると、Pod が 1 つのリーダーと複数のワーカーで構成されるユニットにグループ化され、すべての Pod が単一のエンティティーとしてまとめて管理されます。グループ内の各 Pod には、一意の Pod アイデンティティーがあります。グループ内の Pod は並行して作成され、同一のライフサイクルステージを共有します。ロールアウト、ローリング更新、および Pod 障害時の再起動は、グループとして実行されます。
LeaderWorkerSet
の設定では、グループのサイズとグループのレプリカの数を定義します。必要に応じて、リーダー Pod とワーカー Pod に個別のテンプレートを定義して、ロール別のカスタマイズを行うことができます。また、同じグループ内の Pod が同じトポロジー内に配置されるように、トポロジーを考慮した配置を設定することもできます。
Leader Worker Set Operator をインストールする前に、cert-manager Operator for Red Hat OpenShift をインストールする必要があります。これはサービスを設定し、メトリクス収集を管理するために必要です。
OpenShift Container Platform では、Leader Worker Set Operator のモニタリングが Prometheus を通じてデフォルトで提供されます。
3.1.1.1. LeaderWorkerSet のアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
次の図は、LeaderWorkerSet
API が、分散ワークロードを連携させるために、1 つの Pod をリーダー、残りの Pod をワーカーとして、Pod のグループを 1 つのユニットに編成する方法を示しています。
図3.1 リーダーワーカーセットのアーキテクチャー
LeaderWorkerSet
API は、リーダーステートフルセットを使用して、Pod グループのデプロイメントとライフサイクルを管理します。定義されたレプリカごとに、リーダーワーカーグループが作成されます。
各リーダーワーカーグループには、リーダー Pod とワーカーステートフルセットが含まれます。ワーカーステートフルセットは、リーダー Pod によって所有され、そのリーダー Pod に関連付けられたワーカー Pod のセットを管理します。size を指定すると、各リーダーワーカーグループ内の Pod の合計数が定義されます。その数にはリーダー Pod も含まれます。
3.2. Leader Worker Set Operator のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
Leader Worker Set Operator を使用すると、分散推論ワークロードを管理し、大規模な推論リクエストを効率的に処理できます。
このリリースノートは、Leader Worker Set Operator の開発履歴を記録したものです。
詳細は、Leader Worker Set Operator について を参照してください。
3.2.1. Leader Worker Set Operator 1.0.0 のリリースノート リンクのコピーリンクがクリップボードにコピーされました!
発行日: 2025 年 9 月 18 日
Leader Worker Set Operator 1.0.0 では、次のアドバイザリーが利用可能です。
3.2.1.1. 新機能および機能拡張 リンクのコピーリンクがクリップボードにコピーされました!
- これは、Leader Worker Set Operator の最初のリリースです。
3.3. Leader Worker Set Operator による分散ワークロードの管理 リンクのコピーリンクがクリップボードにコピーされました!
Leader Worker Set Operator を使用すると、分散推論ワークロードを管理し、大規模な推論リクエストを効率的に処理できます。
3.3.1. Leader Worker Set Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Leader Worker Set Operator は Web コンソールを使用してインストールできます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- cert-manager Operator for Red Hat OpenShift がインストールされている。
手順
- OpenShift Container Platform Web コンソールにログインします。
- cert-manager Operator for Red Hat OpenShift がインストールされていることを確認します。
Leader Worker Set Operator をインストールします。
- Operators → OperatorHub に移動します。
- フィルターボックスに Leader Worker Set Operator と入力します。
- Leader Worker Set Operator を選択し、Install をクリックします。
Install Operator ページで以下を行います。
- Update channel を stable-v1.0 に設定します。これにより、Leader Worker Set Operator 1.0 の最新の安定版リリースがインストールされます。
- Installation mode で、A specific namespace on the cluster を選択します。
- Installed Namespace の下で、Operator recommended Namespace: openshift-lws-operator を選択します。
Update approval で、次のいずれかの更新ストラテジーを選択します。
- Automatic ストラテジーを使用すると、新しいバージョンが利用可能になったときに、Operator Lifecycle Manager (OLM) によって Operator を自動的に更新できます。
- Manual ストラテジーには、Operator の更新を承認するための適切な認証情報を持つユーザーが必要です。
- Install をクリックします。
Leader Worker Set Operator のカスタムリソース (CR) を作成します。
- Installed Operators → Leader Worker Set Operator に移動します。
- Provided APIs の下にある LeaderWorkerSetOperator ペインで Create instance をクリックします。
- Create をクリックします。
3.3.2. リーダーワーカーセットのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Leader Worker Set Operator を使用すると、リーダーワーカーセットをデプロイして、複数のノード間で分散されるワークロードの管理を支援できます。
前提条件
- Leader Worker Set Operator をインストールした。
手順
次のコマンドを実行して新しいプロジェクトを作成します。
oc new-project my-namespace
$ oc new-project my-namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow leader-worker-set.yaml
という名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- リーダーワーカーセットのリソースの名前を指定します。
- 2
- リーダーワーカーセットが実行される namespace を指定します。
- 3
- リーダー Pod の Pod テンプレートを指定します。
- 4
- Pod 障害が発生した場合の再起動ポリシーを指定します。使用できる値は、グループ全体を再起動する
RecreateGroupOnPodRestart
か、グループを再起動しないNone
です。 - 5
- リーダー Pod を含む、各グループに作成する Pod の数を指定します。たとえば、値が
3
の場合、リーダー Pod 1 個とワーカー Pod 2 個が作成されます。デフォルト値は1
です。 - 6
- ワーカー Pod の Pod テンプレートを指定します。
- 7
- ヘッドレスサービスを作成するときに使用するポリシーを指定します。使用できる値は
UniquePerReplica
またはShared
です。デフォルト値はShared
です。 - 8
- レプリカの数、つまりリーダーワーカーグループの数を指定します。デフォルト値は
1
です。 - 9
- ローリング更新中に
replicas
値を超えてスケジュールできるレプリカの最大数を指定します。値は整数またはパーセンテージで指定できます。
設定可能なすべてのフィールドの詳細は、LeaderWorkerSet API のアップストリームドキュメントを参照してください。
次のコマンドを実行して、リーダーワーカーセットの設定を適用します。
oc apply -f leader-worker-set.yaml
$ oc apply -f leader-worker-set.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、Pod が作成されたことを確認します。
oc get pods -n my-namespace
$ oc get pods -n my-namespace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ステートフルセットを確認します。
oc get statefulsets
$ oc get statefulsets
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY AGE my-lws 4/4 111s my-lws-0 2/2 57s my-lws-1 2/2 60s
NAME READY AGE my-lws 4/4 111s
1 my-lws-0 2/2 57s
2 my-lws-1 2/2 60s
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. Leader Worker Set Operator のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
Leader Worker Set Operator を OpenShift Container Platform から削除するには、Operator をアンインストールし、関連リソースを削除します。
3.4.1. Leader Worker Set Operator のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
Leader Worker Set Operator は Web コンソールを使用してアンインストールできます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- Leader Worker Set Operator をインストールした。
手順
- OpenShift Container Platform Web コンソールにログインします。
- Operators → Installed Operators に移動します。
-
Project ドロップダウンリストから
openshift-lws-operator
を選択します。 LeaderWorkerSetOperator
インスタンスを削除します。- Leader Worker Set Operator をクリックし、LeaderWorkerSetOperator タブを選択します。
-
cluster エントリーの横にある Options メニュー
をクリックし、Delete LeaderWorkerSetOperator を選択します。
- 確認ダイアログで Delete をクリックします。
Leader Worker Set Operator をアンインストールします。
- Operators → Installed Operators に移動します。
-
Leader Worker Set Operator エントリーの横にある Options メニュー
をクリックし、Uninstall Operator をクリックします。
- 確認ダイアログで、Uninstall をクリックします。
3.4.2. Leader Worker Set Operator リソースのアンインストール リンクのコピーリンクがクリップボードにコピーされました!
必要に応じて、Leader Worker Set Operator をアンインストールした後、クラスターから関連リソースを削除できます。
前提条件
-
cluster-admin
権限でクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
- Leader Worker Set Operator をアンインストールした。
手順
- OpenShift Container Platform Web コンソールにログインします。
Leader Worker Set Operator をインストールしたときに作成された CRD を削除します。
- Administration → CustomResourceDefinitions に移動します。
-
Name フィールドに
LeaderWorkerSetOperator
と入力し、CRD をフィルタリングします。 -
LeaderWorkerSetOperator CRD の横にある Options メニュー
をクリックし、Delete CustomResourceDefinition を選択します。
- 確認ダイアログで Delete をクリックします。
openshift-lws-operator
namespace を削除します。- Administration → Namespaces に移動します。
-
フィルターボックスに
openshift-lws-operator
と入力します。 -
openshift-lws-operator エントリーの横にある Options メニュー
をクリックし、Delete Namespace を選択します。
-
確認ダイアログで、
openshift-lws-operator
と入力し、Delete をクリックします。
Legal Notice
リンクのコピーリンクがクリップボードにコピーされました!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.