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