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>.yamlCopy 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-flavorCopy 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>.yamlCopy 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>.yamlCopy 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>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
- デフォルトのローカルキューと同じ namespace にジョブを作成します。
-
ジョブが
kueue.x-k8s.io/queue-name: defaultラベルで更新されることを確認します。