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出力例
NAME CLUSTERQUEUE PENDING WORKLOADS user-queue cluster-queue 3
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オブジェクトを作成します。ジョブの例
apiVersion: batch/v1 kind: Job1 metadata: generateName: sample-job-2 namespace: my-namespace labels: kueue.x-k8s.io/queue-name: user-queue3 spec: parallelism: 3 completions: 3 template: spec: containers: - name: dummy-job image: registry.k8s.io/e2e-test-images/agnhost:2.53 args: ["entrypoint-tester", "hello", "world"] resources:4 requests: cpu: 1 memory: "200Mi" restartPolicy: Never次のコマンドを実行してジョブを実行します。
$ oc create -f <filename>.yaml
検証
次のコマンドを実行して出力を確認し、作成したジョブに対して Pod が実行されていることをチェックします。
$ oc get job <job-name>出力例
NAME STATUS COMPLETIONS DURATION AGE sample-job-sk42x Suspended 0/1 2m12s次のコマンドを実行して出力を確認し、ワークロードがジョブの namespace で作成されたことをチェックします。
$ oc -n <namespace> get workloads出力例
NAME QUEUE RESERVED IN ADMITTED FINISHED AGE job-sample-job-sk42x-77c03 user-queue 3m8s