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
ラベルで更新されることを確認します。