2.10.3. 필요에 따라 보류 중인 워크로드 모니터링
보류 중인 워크로드의 모니터링을 테스트하려면 ClusterQueue 및 LocalQueue 리소스를 올바르게 구성해야 합니다. 그런 다음 해당 LocalQueue 에서 작업을 생성할 수 있습니다. Kueue는 작업에서 생성한 워크로드 오브젝트를 관리하므로 작업이 제출되고 ClusterQueue 를 포화 상태로 전환하면 보류 중인 워크로드 목록에 해당 워크로드를 볼 수 있습니다.
사전 요구 사항
- 클러스터 관리자 권한이 있어야 합니다.
-
Red Hat build of Kueue Operator가 클러스터에 설치되어 있으며
KueueCR(사용자 정의 리소스)을 생성했습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다. -
OpenShift CLI(
oc)는 클러스터와 통신합니다.
다음 절차에서는 워크로드 모니터링을 설치 및 테스트하는 방법을 설명합니다.
프로세스
다음 명령을 실행하여 자산을 생성합니다.
cat <<EOF| oc create -f - --- apiVersion: kueue.x-k8s.io/v1beta2 kind: ResourceFlavor metadata: name: "default-flavor" --- apiVersion: kueue.x-k8s.io/v1beta2 kind: ClusterQueue metadata: name: "cluster-queue" spec: namespaceSelector: {} # match all. resourceGroups: - coveredResources: ["cpu", "memory"] flavors: - name: "default-flavor" resources: - name: "cpu" nominalQuota: 9 - name: "memory" nominalQuota: 36Gi --- apiVersion: kueue.x-k8s.io/v1beta2 kind: LocalQueue metadata: namespace: "default" name: "user-queue" spec: clusterQueue: "cluster-queue" --- EOF작업 매니페스트를 사용하여 다음 파일을 생성합니다.
cat >> job.yaml << EOF apiVersion: batch/v1 kind: Job metadata: generateName: sample-job- namespace: default labels: kueue.x-k8s.io/queue-name: user-queue spec: parallelism: 3 completions: 3 suspend: true template: spec: containers: - name: <example-job> image: registry.k8s.io/e2e-test-images/agnhost:2.53 command: [ "/bin/sh" ] args: [ "-c", "sleep 60" ] resources: requests: cpu: "1" memory: "200Mi" restartPolicy: Never EOF다음 명령을 실행하여 Kue에서 관리할 기본 네임스페이스에 레이블을 지정합니다.
$ oc label namespace default kueue.openshift.io/managed=true다음 명령을 실행하여 6개의 작업을 생성합니다.
for i in {1..6}; do oc create -f job.yaml; done이 예에서는
ClusterQueue리소스를 포화 상태로 만드는 작업 중 세 개가 보류 중이어야 합니다.
2.10.3.1. ClusterQueue에서 보류 중인 워크로드 보기 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 수준에서 보류 중인 모든 워크로드를 보기 위해 관리자는 Kue의 가시성 API의 ClusterQueue 오브젝트 가시성 끝점을 사용할 수 있습니다. 이 끝점은 해당 ClusterQueue 리소스에서 현재 승인을 기다리는 모든 워크로드 목록을 반환합니다.
프로세스
ClusterQueue에서 보류 중인 워크로드를 보려면 다음 명령을 실행합니다.$ oc get --raw "/apis/visibility.kueue.x-k8s.io/v1beta1/clusterqueues/cluster-queue/pendingworkloads"출력 예
{ "kind": "PendingWorkloadsSummary", "apiVersion": "visibility.kueue.x-k8s.io/v1beta1", "metadata": { "creationTimestamp": null }, "items": [ { "metadata": { "name": "job-sample-job-jrjfr-8d56e", "namespace": "default", "creationTimestamp": "2023-12-05T15:42:03Z", "ownerReferences": [ { "apiVersion": "batch/v1", "kind": "Job", "name": "sample-job-jrjfr", "uid": "5863cf0e-b0e7-43bf-a445-f41fa1abedfa" } ] }, "priority": 0, "localQueueName": "user-queue", "positionInClusterQueue": 0, "positionInLocalQueue": 0 }, { "metadata": { "name": "job-sample-job-jg9dw-5f1a3", "namespace": "default", "creationTimestamp": "2023-12-05T15:42:03Z", "ownerReferences": [ { "apiVersion": "batch/v1", "kind": "Job", "name": "sample-job-jg9dw", "uid": "fd5d1796-f61d-402f-a4c8-cbda646e2676" } ] }, "priority": 0, "localQueueName": "user-queue", "positionInClusterQueue": 1, "positionInLocalQueue": 1 }, { "metadata": { "name": "job-sample-job-t9b8m-4e770", "namespace": "default", "creationTimestamp": "2023-12-05T15:42:03Z", "ownerReferences": [ { "apiVersion": "batch/v1", "kind": "Job", "name": "sample-job-t9b8m", "uid": "64c26c73-6334-4d13-a1a8-38d99196baa5" } ] }, "priority": 0, "localQueueName": "user-queue", "positionInClusterQueue": 2, "positionInLocalQueue": 2 } ] }다음과 같은 선택적 쿼리 매개변수를 전달할 수 있습니다.
limit <integer>- 1000은 기본값입니다. 가져와야 하는 보류 중인 최대 워크로드 수를 지정합니다.
offset <integer>- 0은 기본값입니다. 0부터 시작하여 가져올 첫 번째 보류 중인 워크로드의 위치를 지정합니다.
ClusterQueue에서 위치 0부터 하나의 보류 중인 워크로드만 보려면 다음 명령을 실행합니다.$ oc get --raw "/apis/visibility.kueue.x-k8s.io/v1beta1/clusterqueues/cluster-queue/pendingworkloads?limit=1&offset=0"