AI 워크로드


OpenShift Container Platform 4.18

OpenShift Container Platform에서 AI 워크로드 실행

Red Hat OpenShift Documentation Team

초록

이 문서에서는 OpenShift Container Platform 클러스터에서 AI(인위 정보) 워크로드 실행에 대한 정보를 제공합니다. 여기에는 대규모 AI 교육 워크로드가 노드 전체에서 안정적으로 실행되는 방법에 대한 세부 정보가 포함되어 있습니다.

1장. OpenShift Container Platform의 AI 워크로드 개요

OpenShift Container Platform은 교육, 추론 및 데이터 사이언스 워크플로우 전반에 AI(인공 지능) 워크로드를 실행하기 위한 안전하고 확장 가능한 기반을 제공합니다.

1.1. AI 워크로드 실행을 위한 Operator

Operator를 사용하여 OpenShift Container Platform에서 AI(인공 지능) 및 머신러닝(ML) 워크로드를 실행할 수 있습니다. Operator를 사용하면 특정 AI/ML 요구 사항을 충족하는 사용자 지정 환경을 빌드하는 동시에 OpenShift Container Platform을 애플리케이션의 핵심 플랫폼으로 계속 사용할 수 있습니다.

OpenShift Container Platform은 AI 워크로드를 실행하는 데 도움이 되는 여러 Operator를 제공합니다.

Red Hat build of Kueue

Red Hat build of Kueue를 사용하여 워크로드가 공정하고 효율적으로 처리되도록 구조화된 대기열 및 우선 순위를 제공할 수 있습니다. 적절한 우선 순위를 지정하지 않으면 중요한 작업이 지연될 수 있지만 덜 중요한 작업이 리소스를 차지할 수 있습니다.

자세한 내용은 "Red Hat 빌드에 대한 소개"를 참조하십시오.

leader Worker Set Operator

Leader Worker Set Operator를 사용하여 대규모 AI 유추 워크로드를 통해 리더와 작업자 프로세스 간의 동기화를 통해 노드 간에 안정적으로 실행할 수 있습니다. 적절한 조정이 없으면 대규모 교육 실행이 실패하거나 중단될 수 있습니다.

자세한 내용은 "Leader Worker Set Operator 개요"를 참조하십시오.

2장. Red Hat build of Kueue

2.1. Red Hat build of Kue 소개

Red Hat build of Kueue는 Kubernetes 네이티브 시스템으로 작업 리소스에 대한 액세스를 관리합니다. Red Hat build of Kueue는 Pod를 생성하여 작업 대기 시간이 허용되거나 선점 되어야 하는 시기를 결정할 수 있습니다. 즉, 해당 작업의 활성 Pod가 삭제됩니다.

참고

Red Hat build of Kueue의 컨텍스트에서 작업은 완료까지 실행되는 일회성 또는 온디맨드 작업으로 정의할 수 있습니다.

Red Hat build of Kueue는 Kueue 오픈 소스 프로젝트를 기반으로 합니다.

Red Hat build of Kueue는 이기종 탄력적 리소스를 사용하는 환경과 호환됩니다. 즉, 환경에 다양한 리소스 유형이 있으며 해당 리소스는 동적 확장을 수행할 수 있습니다.

Red Hat build of Kueue는 Kubernetes 클러스터의 기존 구성 요소를 대체하지 않고 기존 Kubernetes API 서버, 스케줄러 및 클러스터 자동 스케일러 구성 요소와 통합됩니다.

Red Hat build of Kueue는 모든 의미 체계를 지원합니다. 즉, 모든 구성 요소가 있는 전체 작업이 클러스터에 허용되거나 클러스터에 맞지 않으면 전체 작업이 거부됩니다.

2.1.1. 가상 사용자

Red Hat build of Kueue 워크플로에 서로 다른 가상 사용자가 있습니다.

배치 관리자
배치 관리자는 클러스터 인프라를 관리하고 할당량 및 큐를 설정합니다.
배치 사용자
배치 사용자는 클러스터에서 작업을 실행합니다. 배치 사용자의 예로는 연구원, AI/ML 엔지니어 또는 데이터 과학자가 있을 수 있습니다.
사용자 제공
사용자에게 서비스를 제공하면 클러스터에서 작업을 실행할 수 있습니다. 예를 들어 추론을 위해 숙련된 AI/ML 모델을 노출하려면 다음을 수행합니다.
플랫폼 개발자
플랫폼 개발자는 Red Hat build of Kueue를 다른 소프트웨어와 통합합니다. 또한 Kueue의 오픈 소스 프로젝트에 기여할 수도 있습니다.

2.1.2. 워크플로우 개요

Kueue 워크플로의 Red Hat 빌드는 다음과 같이 높은 수준에서 설명할 수 있습니다.

  1. 배치 관리자는 ResourceFlavor,LocalQueueClusterQueue 리소스를 생성하고 구성합니다.
  2. 사용자 가상 사용자는 클러스터에 작업을 생성합니다.
  3. Kubernetes API 서버는 작업 데이터를 검증하고 수락합니다.
  4. Red Hat build of Kueue는 주문 또는 할당량과 같은 구성된 옵션을 기반으로 하는 작업을 허용합니다. 리소스 플레이버를 사용하여 작업에 선호도를 삽입하고 각 작업에 해당하는 Workload 오브젝트를 생성합니다.
  5. 작업 유형에 적용되는 컨트롤러는 Pod를 생성합니다.
  6. Kubernetes 스케줄러는 클러스터의 노드에 Pod를 할당합니다.
  7. Kubernetes 클러스터 자동 스케일러는 필요에 따라 더 많은 노드를 프로비저닝합니다.

2.2. 릴리스 노트

Red Hat build of Kueue는 OpenShift Container Platform에서 지원되는 Operator로 릴리스됩니다.

2.2.1. 호환 환경

Red Hat build of Kue를 설치하기 전에 이 섹션을 검토하여 클러스터가 요구 사항을 충족하는지 확인하십시오.

2.2.1.1. 지원되는 아키텍처

Red Hat build of Kue 버전 1.1 이상은 다음 아키텍처에서 지원됩니다.

  • ARM64
  • 64-bit x86
  • ppc64le (IBM Power®)
  • s390x (IBM Z®)
2.2.1.2. 지원되는 플랫폼

Red Hat build of Kue 버전 1.1 이상은 다음 플랫폼에서 지원됩니다.

  • OpenShift Container Platform
  • OpenShift Container Platform에서 호스팅되는 컨트롤 플레인
중요

현재 Red Hat build of Kueue는 Red Hat build of MicroShift(MicroShift)에서 지원되지 않습니다.

2.2.2. Red Hat build of Kue 버전 1.1 릴리스 노트

Red Hat build of Kue 버전 1.1은 OpenShift Container Platform 버전 4.18 이상에서 지원되는 일반적으로 사용 가능한 릴리스입니다. Red Hat build of Kue 버전 1.1에서는 Kue 버전 0.12를 사용합니다.

중요

이전에 Red Hat build of Kueue 버전이 클러스터에 설치되어 있는 경우 Operator를 제거하고 버전 1.1을 수동으로 설치해야 합니다. 자세한 내용은 Upgrading Red Hat build of Kueue 에서 참조하십시오.

2.2.2.1. 새로운 기능 및 개선 사항
기본 로컬 대기열 구성

기본 로컬 대기열은 kue.x-k8s.io/queue-name 레이블이 없는 새로 생성된 작업의 로컬 큐 역할을 합니다. 기본 로컬 큐를 생성한 후 kue.x-k8s.io/queue-name 레이블이 없는 네임스페이스에서 생성된 새 작업은 kue.x- k8s.io/queue-name: default 라벨을 갖도록 자동으로 업데이트됩니다.

(RFE-7615)

다중 아키텍처 및 호스팅된 컨트롤 플레인 지원

이번 릴리스에서는 Red Hat build of Kueue는 ARM64, 64비트 x86, ppc64le(IBM Power®) 및 OpenShift Container Platform용 호스팅 컨트롤 플레인에서 다양한 아키텍처에서 지원됩니다.

(OCPSTRAT-2103)

(OCPSTRAT-2106)

2.2.2.2. 해결된 문제
OpenShift Container Platform 웹 콘솔을 사용하여 Kueue 사용자 정의 리소스를 생성할 수 있습니다.

이번 업데이트 이전에는 OpenShift Container Platform 웹 콘솔을 사용하여 양식 보기를 사용하여 Kueue CR(사용자 정의 리소스)을 생성하려고 하면 웹 콘솔에 오류가 표시되고 리소스를 생성할 수 없었습니다. 이번 릴리스에서는 Kue CR 템플릿에서 기본 네임스페이스가 제거되었습니다. 결과적으로 OpenShift Container Platform 웹 콘솔을 사용하여 양식 보기를 사용하여 Kue CR을 생성할 수 있습니다.

(OCPBUGS-58118)

2.2.2.3. 확인된 문제
Kueue CR 설명은 OpenShift Container Platform 웹 콘솔에서 "사용할 수 없음"으로 표시됩니다.

Red Hat build of Kueue를 설치한 후 Operator 세부 정보 뷰에서 Kueue CR에 대한 설명은 "사용할 수 없음"으로 표시됩니다. 이 문제는 Kueue Operator 기능의 Red Hat 빌드에 영향을 미치거나 저하되지 않습니다.

(OCPBUGS-62185)

Kue의 Red Hat 빌드를 제거할 때 사용자 정의 리소스가 제대로 삭제되지 않습니다.

OpenShift Container Platform 웹 콘솔에서 이 Operator 옵션에 대해 모든 피연산자 인스턴스 삭제 를 사용하여 Red Hat Build of Kueue Operator를 설치 제거한 후 일부 Red Hat build of Kueue 사용자 정의 리소스는 완전히 삭제되지 않습니다. 이러한 리소스는 설치된 Operator 보기에서 리소스가 삭제되고 있는 상태를 볼 수 있습니다. 이 문제를 해결하려면 리소스 종료자를 수동으로 삭제하여 완전히 제거할 수 있습니다.

(OCPBUGS-62254)

2.2.3. Red Hat build of Kueue 버전 1.0.1 릴리스 노트

Red Hat build of Kueue 버전 1.0.1은 64비트 x86 아키텍처의 OpenShift Container Platform 버전 4.18 및 4.19에서 지원되는 패치 릴리스입니다.

Red Hat build of Kue 버전 1.0.1은 Kueue 버전 0.11을 사용합니다.

2.2.3.1. Red Hat build of Kue 버전 1.0.1의 버그 수정
  • 이전에는 Red Hat build of Kueue의 리더 선택이 중단을 허용하도록 구성되지 않아 충돌이 자주 발생했습니다. 이번 릴리스에서는 Red Hat build of Kueue의 리더 선택 값이 OpenShift Container Platform에 권장되는 기간과 일치하도록 업데이트되었습니다. (OCPBUGS-58496)
  • 이전에는 ReadyReplicas 수가 조정기에 설정되지 않았습니다. 이로 인해 Red Hat build of Kueue Operator 상태가 복제본 준비 상태가 없다고 보고했습니다. 이번 릴리스에서는 배포에 사용할 준비된 복제본 수를 기반으로 하므로 kueue-controller-manager Pod가 준비되면 Operator가 OpenShift Container Platform 콘솔에 준비 상태로 표시됩니다. (OCPBUGS-59261)
  • 이전 버전에서는 Kueue CR(사용자 정의 리소스)이 openshift-kueue-operator 네임스페이스에서 삭제되면 kueue-manager-config 구성 맵이 자동으로 삭제되지 않았으며 네임스페이스에 남아 있을 수 있었습니다. 이번 릴리스에서는 Kueue CR이 삭제되면 kueue-manager-config 구성 맵, kue-webhook -server-cert 시크릿 및 metrics-server-cert 시크릿이 자동으로 삭제됩니다. (OCPBUGS-57960)

2.2.4. Red Hat build of Kueue 버전 1.0 릴리스 노트

Red Hat build of Kue 버전 1.0은 64비트 x86 아키텍처의 OpenShift Container Platform 버전 4.18 및 4.19에서 지원되는 일반적으로 사용 가능한 릴리스입니다. Red Hat build of Kue 버전 1.0은 Kue 버전 0.11을 사용합니다.

2.2.4.1. 새로운 기능 및 개선 사항
RBAC(역할 기반 액세스 제어)
RBAC(역할 기반 액세스 제어)를 사용하면 어떤 유형의 사용자가 Kueue 리소스 유형을 생성할 수 있는지 제어할 수 있습니다.
리소스 할당량 구성
클러스터 대기열, 리소스 플레이버 및 로컬 큐를 생성하여 리소스 할당량을 구성하면 사용자가 제출한 작업 및 워크로드에서 사용하는 리소스의 양을 제어할 수 있습니다.
작업 및 워크로드 관리 제어
네임스페이스를 레이블링하고 레이블 정책을 구성하면 Red Hat 빌드에서 Kue의 Red Hat 빌드에서 관리하는 작업과 워크로드를 제어할 수 있습니다.
대기열 간에 차용 가능한 리소스 공유
코호트, 공정 공유 및 gang 스케줄링 설정을 구성하면 대기열 간에 사용되지 않고 빌릴 수 있는 리소스를 공유할 수 있습니다.
2.2.4.2. 확인된 문제
kue.x-k8s.io/queue-name 레이블이 있는 경우 모든 네임스페이스의 작업이 조정됨

Red Hat build of Kueue는 managedJobsNamespaceSelector 구성 필드를 사용하므로 관리자는 Red Hat build of Kueue에서 관리하는 네임스페이스를 구성할 수 있습니다. Red Hat 빌드에서 Kue의 빌드를 선택하도록 네임스페이스를 수동으로 설정해야 하므로 시스템 또는 타사 네임스페이스의 리소스는 Red Hat 빌드의 Kue에 의해 영향을 미치거나 관리하지 않습니다.

Red Hat build of Kueue 1.0의 동작은 kue.x-k8s.io/queue-name 레이블이 있는 작업 리소스를 조정하여 Kue의 Red Hat 빌드에서 관리하도록 구성되지 않은 네임스페이스에 있는 경우에도 작업 리소스를 조정할 수 있습니다. 이는 Pod, 배포 및 상태 저장 세트와 같은 기타 코어 통합의 동작과 일치하지 않습니다. 이는 Red Hat 빌드에서 Kueue의 Red Hat 빌드에 의해 관리되도록 구성된 네임스페이스에 있는 경우에만 조정됩니다.

(OCPBUGS-58205)

OpenShift Container Platform 웹 콘솔을 사용하여 Kueue 사용자 정의 리소스를 생성할 수 없습니다

양식 보기를 사용하여 OpenShift Container Platform 웹 콘솔을 사용하여 Kueue CR(사용자 정의 리소스)을 생성하려고 하면 웹 콘솔에 오류가 표시되고 리소스를 생성할 수 없습니다. 이 문제를 해결하려면 YAML 보기를 사용하여 Kue CR을 대신 생성합니다.

(OCPBUGS-58118)

2.3. Red Hat build of Kueue 설치

OperatorHub에서 Red Hat Build of Kue Operator를 사용하여 Red Hat build of Kueue를 설치할 수 있습니다.

2.3.1. 호환 환경

Red Hat build of Kue를 설치하기 전에 이 섹션을 검토하여 클러스터가 요구 사항을 충족하는지 확인하십시오.

2.3.1.1. 지원되는 아키텍처

Red Hat build of Kue 버전 1.1 이상은 다음 아키텍처에서 지원됩니다.

  • ARM64
  • 64-bit x86
  • ppc64le (IBM Power®)
  • s390x (IBM Z®)
2.3.1.2. 지원되는 플랫폼

Red Hat build of Kue 버전 1.1 이상은 다음 플랫폼에서 지원됩니다.

  • OpenShift Container Platform
  • OpenShift Container Platform에서 호스팅되는 컨트롤 플레인
중요

현재 Red Hat build of Kueue는 Red Hat build of MicroShift(MicroShift)에서 지원되지 않습니다.

2.3.2. Red Hat Build of Kueue Operator 설치

웹 콘솔에서 OperatorHub를 사용하여 OpenShift Container Platform 클러스터에 Red Hat Build of Kueue Operator를 설치할 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 대한 관리자 권한이 있습니다.
  • OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
  • 클러스터용 cert-manager Operator를 설치하고 구성했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 OperatorOperatorHub를 클릭합니다.
  2. 사용 가능한 Operator 목록에서 Red Hat Build of Kueue Operator 를 선택하고 설치를 클릭합니다.

검증

  • Operator → 설치된 Operator 로 이동하여 Red Hat Build of Kueue OperatorSucceeded 상태로 나열되어 있는지 확인합니다.

2.3.3. Red Hat build of Kueue 업그레이드

이전에 Red Hat build of Kue를 설치한 경우 최신 버그 수정 및 기능 개선을 사용하려면 배포를 최신 버전으로 수동으로 업그레이드해야 합니다.

사전 요구 사항

  • 이전 버전의 Red Hat build of Kueue를 설치했습니다.
  • 클러스터 관리자 권한이 있는 OpenShift Container Platform 웹 콘솔에 로그인되어 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔의 Operator → 설치된 Operator 를 클릭한 다음 목록에서 Red Hat build of Kueue 를 선택합니다.
  2. 작업 드롭다운 메뉴에서 Operator 설치 제거를 선택합니다.
  3. Operator 설치 제거? 대화 상자가 열립니다. 제거를 클릭합니다.

    중요

    제거를 클릭하기 전에 이 Operator의 모든 피연산자 인스턴스 삭제 확인란을 선택하면 다음을 포함하여 클러스터에서 기존 리소스가 모두 삭제됩니다.

    • Kue CR
    • 생성한 클러스터 대기열, 로컬 대기열 또는 리소스 플레이버

    생성된 리소스를 유지하도록 클러스터를 업그레이드할 때 이 상자를 선택하지 않은 상태로 둡니다.

  4. OpenShift Container Platform 웹 콘솔에서 OperatorOperatorHub를 클릭합니다.
  5. 사용 가능한 Operator 목록에서 Red Hat Build of Kueue Operator 를 선택하고 설치를 클릭합니다.

검증

  1. Operator설치된 Operator 로 이동합니다.
  2. Red Hat Build of Kueue OperatorSucceeded 상태로 나열되어 있는지 확인합니다.
  3. 목록의 Operator 이름 아래에 표시된 버전이 최신 버전인지 확인합니다.

2.3.4. Kue 사용자 정의 리소스 생성

Red Hat Build of Kueue Operator를 설치한 후에는 Kueue CR(사용자 정의 리소스)을 생성하여 설치를 구성해야 합니다.

사전 요구 사항

다음 사전 요구 사항을 완료했는지 확인합니다.

  • Red Hat build of Kueue Operator가 클러스터에 설치되어 있습니다.
  • 클러스터 관리자 권한 및 kue-batch-admin-role 역할이 있습니다.
  • OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 Operator설치된 Operator를 클릭합니다.
  2. 제공된 API 테이블 열에서 Kueue 를 클릭합니다. 그러면 Operator 세부 정보 페이지의 Kue 탭으로 이동합니다.
  3. Create Kue를 클릭합니다. 그러면 Create Kueue YAML 보기가 표시됩니다.
  4. Kueue CR에 대한 세부 정보를 입력합니다.

    Kue CR 의 예

    apiVersion: kueue.openshift.io/v1
    kind: Kueue
    metadata:
      labels:
        app.kubernetes.io/name: kueue-operator
        app.kubernetes.io/managed-by: kustomize
      name: cluster 
    1
    
      namespace: openshift-kueue-operator
    spec:
      managementState: Managed
      config:
        integrations:
          frameworks: 
    2
    
          - BatchJob
        preemption:
          preemptionPolicy: Classical 
    3
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    Kueue CR의 이름은 cluster 여야 합니다.
    2
    다른 워크로드 유형과 함께 사용할 수 있도록 Red Hat build of Kue를 구성하려면 해당 유형을 여기에 추가합니다. 기본 구성의 경우 BatchJob 유형만 권장되고 지원됩니다.
    3
    선택 사항: Red Hat build of Kueue에 대한 공정 공유를 구성하려면 preemption Policy 값을 FairSharing 으로 설정합니다. Kueue CR의 기본 설정은 Classical preemption입니다.
  5. 생성을 클릭합니다.

검증

  • Kueue CR을 생성한 후 웹 콘솔은 Operator 세부 정보 페이지로 이동합니다. 여기서 Kueues 목록에서 CR을 볼 수 있습니다.
  • 선택 사항: OpenShift CLI(oc)가 설치된 경우 다음 명령을 실행하고 출력을 관찰하여 Kueue CR이 성공적으로 생성되었는지 확인할 수 있습니다.

    $ oc get kueue
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME      	AGE
    cluster   	4m
    Copy to Clipboard Toggle word wrap

2.3.5. Red Hat build of Kue to manage jobs를 위해 라벨을 지정

Red Hat build of Kueue Operator는 옵트인 Webhook 메커니즘을 사용하여 정책을 대상으로 할 것으로 예상되는 작업 및 네임스페이스에만 정책을 적용할 수 있도록 합니다.

kueue.openshift.io/managed=true 라벨을 사용하여 작업을 관리하려면 Red Hat build of Kueue의 네임스페이스에 라벨을 지정해야 합니다.

사전 요구 사항

  • 클러스터 관리자 권한이 있어야 합니다.
  • Red Hat build of Kueue Operator가 클러스터에 설치되어 있으며 Kueue CR(사용자 정의 리소스)을 생성했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  • 다음 명령을 실행하여 kue.openshift.io/managed=true 레이블을 네임스페이스에 추가합니다.

    $ oc label namespace <namespace> kueue.openshift.io/managed=true
    Copy to Clipboard Toggle word wrap

이 레이블을 추가하면 Red Hat build of Kueue Operator에 해당 네임스페이스가 웹 후크 승인 컨트롤러에서 관리되도록 지시합니다. 결과적으로 해당 네임스페이스 내의 모든 Red Hat build of Kueue 리소스가 올바르게 검증되고 변경됩니다.

2.4. 연결이 끊긴 환경에서 Red Hat build of Kue 설치

연결이 끊긴 OpenShift Container Platform 클러스터에 Red Hat build of Kue를 설치하려면 먼저 다음 단계를 완료하여 연결이 끊긴 환경에서 OLM(Operator Lifecycle Manager)을 활성화해야 합니다.

  • OLM의 기본 원격 OperatorHub 소스를 비활성화합니다.
  • 완전한 인터넷 액세스가 가능한 워크스테이션을 사용하여 OperatorHub 콘텐츠의 로컬 미러를 생성하고 미러 레지스트리로 내보냅니다.
  • 기본 원격 소스가 아닌 미러 레지스트리의 로컬 소스에서 Operator를 설치하고 관리하도록 OLM을 구성합니다.

연결이 끊긴 환경에서 OLM을 활성화한 후 무제한 워크스테이션을 계속 사용하여 최신 버전의 Operator가 릴리스되면 로컬 OperatorHub 소스를 업데이트할 수 있습니다.

이러한 단계를 완료하는 방법에 대한 전체 문서는 연결이 끊긴 환경에서 Operator Lifecycle Manager 사용에 대한 OpenShift Container Platform 설명서를 참조하십시오.

2.4.1. 호환 환경

Red Hat build of Kue를 설치하기 전에 이 섹션을 검토하여 클러스터가 요구 사항을 충족하는지 확인하십시오.

2.4.1.1. 지원되는 아키텍처

Red Hat build of Kue 버전 1.1 이상은 다음 아키텍처에서 지원됩니다.

  • ARM64
  • 64-bit x86
  • ppc64le (IBM Power®)
  • s390x (IBM Z®)
2.4.1.2. 지원되는 플랫폼

Red Hat build of Kue 버전 1.1 이상은 다음 플랫폼에서 지원됩니다.

  • OpenShift Container Platform
  • OpenShift Container Platform에서 호스팅되는 컨트롤 플레인
중요

현재 Red Hat build of Kueue는 Red Hat build of MicroShift(MicroShift)에서 지원되지 않습니다.

2.4.2. Red Hat Build of Kueue Operator 설치

웹 콘솔에서 OperatorHub를 사용하여 OpenShift Container Platform 클러스터에 Red Hat Build of Kueue Operator를 설치할 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 대한 관리자 권한이 있습니다.
  • OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
  • 클러스터용 cert-manager Operator를 설치하고 구성했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 OperatorOperatorHub를 클릭합니다.
  2. 사용 가능한 Operator 목록에서 Red Hat Build of Kueue Operator 를 선택하고 설치를 클릭합니다.

검증

  • Operator → 설치된 Operator 로 이동하여 Red Hat Build of Kueue OperatorSucceeded 상태로 나열되어 있는지 확인합니다.

2.4.3. Red Hat build of Kueue 업그레이드

이전에 Red Hat build of Kue를 설치한 경우 최신 버그 수정 및 기능 개선을 사용하려면 배포를 최신 버전으로 수동으로 업그레이드해야 합니다.

사전 요구 사항

  • 이전 버전의 Red Hat build of Kueue를 설치했습니다.
  • 클러스터 관리자 권한이 있는 OpenShift Container Platform 웹 콘솔에 로그인되어 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔의 Operator → 설치된 Operator 를 클릭한 다음 목록에서 Red Hat build of Kueue 를 선택합니다.
  2. 작업 드롭다운 메뉴에서 Operator 설치 제거를 선택합니다.
  3. Operator 설치 제거? 대화 상자가 열립니다. 제거를 클릭합니다.

    중요

    제거를 클릭하기 전에 이 Operator의 모든 피연산자 인스턴스 삭제 확인란을 선택하면 다음을 포함하여 클러스터에서 기존 리소스가 모두 삭제됩니다.

    • Kue CR
    • 생성한 클러스터 대기열, 로컬 대기열 또는 리소스 플레이버

    생성된 리소스를 유지하도록 클러스터를 업그레이드할 때 이 상자를 선택하지 않은 상태로 둡니다.

  4. OpenShift Container Platform 웹 콘솔에서 OperatorOperatorHub를 클릭합니다.
  5. 사용 가능한 Operator 목록에서 Red Hat Build of Kueue Operator 를 선택하고 설치를 클릭합니다.

검증

  1. Operator설치된 Operator 로 이동합니다.
  2. Red Hat Build of Kueue OperatorSucceeded 상태로 나열되어 있는지 확인합니다.
  3. 목록의 Operator 이름 아래에 표시된 버전이 최신 버전인지 확인합니다.

2.4.4. Kue 사용자 정의 리소스 생성

Red Hat Build of Kueue Operator를 설치한 후에는 Kueue CR(사용자 정의 리소스)을 생성하여 설치를 구성해야 합니다.

사전 요구 사항

다음 사전 요구 사항을 완료했는지 확인합니다.

  • Red Hat build of Kueue Operator가 클러스터에 설치되어 있습니다.
  • 클러스터 관리자 권한 및 kue-batch-admin-role 역할이 있습니다.
  • OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 Operator설치된 Operator를 클릭합니다.
  2. 제공된 API 테이블 열에서 Kueue 를 클릭합니다. 그러면 Operator 세부 정보 페이지의 Kue 탭으로 이동합니다.
  3. Create Kue를 클릭합니다. 그러면 Create Kueue YAML 보기가 표시됩니다.
  4. Kueue CR에 대한 세부 정보를 입력합니다.

    Kue CR 의 예

    apiVersion: kueue.openshift.io/v1
    kind: Kueue
    metadata:
      labels:
        app.kubernetes.io/name: kueue-operator
        app.kubernetes.io/managed-by: kustomize
      name: cluster 
    1
    
      namespace: openshift-kueue-operator
    spec:
      managementState: Managed
      config:
        integrations:
          frameworks: 
    2
    
          - BatchJob
        preemption:
          preemptionPolicy: Classical 
    3
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    Kueue CR의 이름은 cluster 여야 합니다.
    2
    다른 워크로드 유형과 함께 사용할 수 있도록 Red Hat build of Kue를 구성하려면 해당 유형을 여기에 추가합니다. 기본 구성의 경우 BatchJob 유형만 권장되고 지원됩니다.
    3
    선택 사항: Red Hat build of Kueue에 대한 공정 공유를 구성하려면 preemption Policy 값을 FairSharing 으로 설정합니다. Kueue CR의 기본 설정은 Classical preemption입니다.
  5. 생성을 클릭합니다.

검증

  • Kueue CR을 생성한 후 웹 콘솔은 Operator 세부 정보 페이지로 이동합니다. 여기서 Kueues 목록에서 CR을 볼 수 있습니다.
  • 선택 사항: OpenShift CLI(oc)가 설치된 경우 다음 명령을 실행하고 출력을 관찰하여 Kueue CR이 성공적으로 생성되었는지 확인할 수 있습니다.

    $ oc get kueue
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME      	AGE
    cluster   	4m
    Copy to Clipboard Toggle word wrap

2.4.5. Red Hat build of Kue to manage jobs를 위해 라벨을 지정

Red Hat build of Kueue Operator는 옵트인 Webhook 메커니즘을 사용하여 정책을 대상으로 할 것으로 예상되는 작업 및 네임스페이스에만 정책을 적용할 수 있도록 합니다.

kueue.openshift.io/managed=true 라벨을 사용하여 작업을 관리하려면 Red Hat build of Kueue의 네임스페이스에 라벨을 지정해야 합니다.

사전 요구 사항

  • 클러스터 관리자 권한이 있어야 합니다.
  • Red Hat build of Kueue Operator가 클러스터에 설치되어 있으며 Kueue CR(사용자 정의 리소스)을 생성했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  • 다음 명령을 실행하여 kue.openshift.io/managed=true 레이블을 네임스페이스에 추가합니다.

    $ oc label namespace <namespace> kueue.openshift.io/managed=true
    Copy to Clipboard Toggle word wrap

이 레이블을 추가하면 Red Hat build of Kueue Operator에 해당 네임스페이스가 웹 후크 승인 컨트롤러에서 관리되도록 지시합니다. 결과적으로 해당 네임스페이스 내의 모든 Red Hat build of Kueue 리소스가 올바르게 검증되고 변경됩니다.

2.5. 역할 기반 권한 구성

다음 절차에서는 Red Hat build of Kueue 배포에 대해 RBAC(역할 기반 액세스 제어)를 구성하는 방법에 대한 정보를 제공합니다. 이러한 RBAC 권한은 어떤 유형의 사용자가 Kueue 객체의 Red Hat build 유형을 생성할 수 있는지 결정합니다.

2.5.1. 클러스터 역할

Red Hat build of Kueue Operator는 기본적으로 kue-batch-admin-rolekue-batch-user-role 클러스터 역할을 배포합니다.

kueue-batch-admin-role
이 클러스터 역할에는 클러스터 대기열, 로컬 대기열, 워크로드 및 리소스 플레이버를 관리할 수 있는 권한이 포함되어 있습니다.
kueue-batch-user-role
이 클러스터 역할에는 작업을 관리하고 로컬 대기열 및 워크로드를 볼 수 있는 권한이 포함되어 있습니다.

2.5.2. 배치 관리자에 대한 권한 구성

kue-batch-admin-role 클러스터 역할을 사용자 또는 사용자 그룹에 바인딩하여 배치 관리자에 대한 권한을 구성할 수 있습니다.

사전 요구 사항

  • Red Hat build of Kueue Operator가 클러스터에 설치되어 있습니다.
  • 클러스터 관리자 권한이 있어야 합니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. ClusterRoleBinding 오브젝트를 YAML 파일로 생성합니다.

    ClusterRoleBinding 오브젝트의 예

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: kueue-admins 
    1
    
    subjects: 
    2
    
    - kind: User
      name: admin@example.com
      apiGroup: rbac.authorization.k8s.io
    roleRef: 
    3
    
      kind: ClusterRole
      name: kueue-batch-admin-role
      apiGroup: rbac.authorization.k8s.io
    Copy to Clipboard Toggle word wrap

    1
    ClusterRoleBinding 오브젝트의 이름을 제공합니다.
    2
    사용자 권한을 제공할 사용자 또는 사용자 그룹에 대한 세부 정보를 추가합니다.
    3
    kue-batch-admin-role 클러스터 역할에 대한 세부 정보를 추가합니다.
  2. ClusterRoleBinding 오브젝트를 적용합니다.

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하고 출력에 kue-batch-admin-role 클러스터 역할에 대한 올바른 정보가 포함되어 있는지 확인하여 ClusterRoleBinding 오브젝트가 올바르게 적용되었는지 확인할 수 있습니다.

    $ oc describe clusterrolebinding.rbac
    Copy to Clipboard Toggle word wrap

    출력 예

    ...
    Name:         kueue-batch-admin-role
    Labels:       app.kubernetes.io/name=kueue
    Annotations:  <none>
    Role:
      Kind:  ClusterRole
      Name:  kueue-batch-admin-role
    Subjects:
      Kind            Name                      Namespace
      ----            ----                      ---------
      User            admin@example.com         admin-namespace
    ...
    Copy to Clipboard Toggle word wrap

2.5.3. 사용자에 대한 권한 구성

kue-batch-user-role 클러스터 역할을 사용자 또는 사용자 그룹에 바인딩하여 Kueue의 Red Hat 빌드에 대한 권한을 구성할 수 있습니다.

사전 요구 사항

  • Red Hat build of Kueue Operator가 클러스터에 설치되어 있습니다.
  • 클러스터 관리자 권한이 있어야 합니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. RoleBinding 오브젝트를 YAML 파일로 생성합니다.

    ClusterRoleBinding 오브젝트의 예

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: kueue-users 
    1
    
      namespace: user-namespace 
    2
    
    subjects: 
    3
    
    - kind: Group
      name: team-a@example.com
      apiGroup: rbac.authorization.k8s.io
    roleRef: 
    4
    
      kind: ClusterRole
      name: kueue-batch-user-role
      apiGroup: rbac.authorization.k8s.io
    Copy to Clipboard Toggle word wrap

    1
    RoleBinding 오브젝트의 이름을 입력합니다.
    2
    RoleBinding 오브젝트가 적용되는 네임스페이스에 대한 세부 정보를 추가합니다.
    3
    사용자 권한을 제공할 사용자 또는 사용자 그룹에 대한 세부 정보를 추가합니다.
    4
    kue-batch-user-role 클러스터 역할에 대한 세부 정보를 추가합니다.
  2. RoleBinding 오브젝트를 적용합니다.

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하고 출력에 kue-batch-user-role 클러스터 역할에 대한 올바른 정보가 포함되어 있는지 확인하여 RoleBinding 오브젝트가 올바르게 적용되었는지 확인할 수 있습니다.

    $ oc describe rolebinding.rbac
    Copy to Clipboard Toggle word wrap

    출력 예

    ...
    Name:         kueue-users
    Labels:       app.kubernetes.io/name=kueue
    Annotations:  <none>
    Role:
      Kind:  ClusterRole
      Name:  kueue-batch-user-role
    Subjects:
      Kind            Name                      Namespace
      ----            ----                      ---------
      Group           team-a@example.com        user-namespace
    ...
    Copy to Clipboard Toggle word wrap

2.6. 할당량 구성

관리자는 Red Hat build of Kue를 사용하여 사용자 워크로드에 대한 리소스 할당 및 시스템 처리량을 최적화하도록 할당량을 구성할 수 있습니다. CPU, 메모리, Pod 및 GPU와 같은 컴퓨팅 리소스에 대한 할당량을 구성할 수 있습니다.

다음 단계를 완료하여 Kue의 Red Hat 빌드에서 할당량을 설정할 수 있습니다.

  1. 클러스터 큐 구성.
  2. 리소스 플레이버를 구성합니다.
  3. 로컬 큐를 구성합니다.

그런 다음 사용자가 워크로드를 로컬 큐에 제출할 수 있습니다.

2.6.1. 클러스터 대기열 구성

클러스터 큐는 CPU, 메모리, Pod와 같은 리소스 풀을 관리하는 ClusterQueue 오브젝트로 표시되는 클러스터 범위 리소스입니다. 클러스터 큐를 사용하여 사용량 제한, 리소스 플레이버 할당량, 사용 순서 및 공정 공유 규칙을 정의할 수 있습니다.

참고

ResourceFlavor 오브젝트도 구성할 때까지 클러스터 큐가 사용할 준비가 되지 않습니다.

사전 요구 사항

  • Red Hat build of Kueue Operator가 클러스터에 설치되어 있습니다.
  • 클러스터 관리자 권한 또는 kue-batch-admin-role 역할이 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. YAML 파일로 ClusterQueue 오브젝트를 생성합니다.

    단일 리소스 플레이버를 사용하는 기본 ClusterQueue 오브젝트의 예

    apiVersion: kueue.x-k8s.io/v1beta1
    kind: ClusterQueue
    metadata:
      name: cluster-queue
    spec:
      namespaceSelector: {} 
    1
    
      resourceGroups:
      - coveredResources: ["cpu", "memory", "pods", "foo.com/gpu"] 
    2
    
        flavors:
        - name: "default-flavor" 
    3
    
          resources: 
    4
    
          - name: "cpu"
            nominalQuota: 9
          - name: "memory"
            nominalQuota: 36Gi
          - name: "pods"
            nominalQuota: 5
          - name: "foo.com/gpu"
            nominalQuota: 100
    Copy to Clipboard Toggle word wrap

    1
    이 클러스터 큐에서 관리하는 리소스를 사용할 수 있는 네임스페이스를 정의합니다. 예에 표시된 대로 빈 namespaceSelector 는 모든 네임스페이스에서 이러한 리소스를 사용할 수 있음을 의미합니다.
    2
    클러스터 큐에서 관리하는 리소스 유형을 정의합니다. 이 예제 ClusterQueue 오브젝트는 CPU, 메모리, Pod 및 GPU 리소스를 관리합니다.
    3
    나열된 리소스 유형에 적용되는 resource 플레이버를 정의합니다. 이 예에서는 default-flavor 리소스 플레이버가 CPU, 메모리, Pod 및 GPU 리소스에 적용됩니다.
    4
    작업 허용을 위한 리소스 요구 사항을 정의합니다. 이 예제 클러스터 대기열에서는 다음 조건이 충족되는 경우에만 작업을 허용합니다.
    • CPU 요청 합계는 9보다 작거나 같습니다.
    • 메모리 요청 합계는 36Gi보다 작거나 같습니다.
    • 총 Pod 수는 5보다 작거나 같습니다.
    • GPU 요청 합계는 100보다 작거나 같습니다.
  2. 다음 명령을 실행하여 ClusterQueue 오브젝트를 적용합니다.

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

다음 단계

ResourceFlavor 오브젝트 도 구성할 때까지 클러스터 큐가 사용할 준비가 되지 않습니다.

2.6.2. 리소스 플레이버 구성

ClusterQueue 오브젝트를 구성한 후 ResourceFlavor 오브젝트를 구성할 수 있습니다.

클러스터의 리소스는 일반적으로 동질적이지 않습니다. 클러스터의 리소스가 동질적인 경우 사용자 지정 리소스 플레이버에 라벨을 추가하는 대신 빈 ResourceFlavor 를 사용할 수 있습니다.

사용자 지정 ResourceFlavor 오브젝트를 사용하여 라벨, 테인트 및 허용 오차를 통해 클러스터 노드와 관련된 다양한 리소스 변형을 나타낼 수 있습니다. 그런 다음 워크로드를 특정 노드 유형과 연결하여 세분화된 리소스 관리를 활성화할 수 있습니다.

사전 요구 사항

  • Red Hat build of Kueue Operator가 클러스터에 설치되어 있습니다.
  • 클러스터 관리자 권한 또는 kue-batch-admin-role 역할이 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. ResourceFlavor 오브젝트를 YAML 파일로 생성합니다.

    ResourceFlavor 오브젝트의 예

    apiVersion: kueue.x-k8s.io/v1beta1
    kind: ResourceFlavor
    metadata:
      name: default-flavor
    Copy to Clipboard Toggle word wrap

    사용자 정의 ResourceFlavor 오브젝트의 예

    apiVersion: kueue.x-k8s.io/v1beta1
    kind: ResourceFlavor
    metadata:
      name: "x86"
    spec:
      nodeLabels:
        cpu-arch: x86
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 ResourceFlavor 오브젝트를 적용합니다.

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

2.6.3. 로컬 대기열 구성

로컬 큐는 LocalQueue 오브젝트로 표시되는 네임스페이스가 지정된 오브젝트로, 단일 네임스페이스에 속하는 밀접하게 관련된 워크로드를 그룹화합니다.

관리자는 클러스터 큐를 가리키도록 LocalQueue 오브젝트를 구성할 수 있습니다. 이렇게 하면 클러스터 대기열의 리소스가 LocalQueue 오브젝트에 지정된 네임스페이스의 워크로드에 할당됩니다.

사전 요구 사항

  • Red Hat build of Kueue Operator가 클러스터에 설치되어 있습니다.
  • 클러스터 관리자 권한 또는 kue-batch-admin-role 역할이 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • ClusterQueue 오브젝트를 생성했습니다.

프로세스

  1. LocalQueue 오브젝트를 YAML 파일로 생성합니다.

    기본 LocalQueue 오브젝트의 예

    apiVersion: kueue.x-k8s.io/v1beta1
    kind: LocalQueue
    metadata:
      namespace: team-namespace
      name: user-queue
    spec:
      clusterQueue: cluster-queue
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 LocalQueue 오브젝트를 적용합니다.

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

2.6.4. 기본 로컬 대기열 구성

클러스터 관리자는 각 작업에 명시적으로 레이블을 지정하지 않고도 선택한 네임스페이스의 모든 작업을 관리하여 클러스터의 할당량 적용 기능을 개선할 수 있습니다. 기본 로컬 큐를 생성하여 이 작업을 수행할 수 있습니다.

기본 로컬 대기열은 kue.x-k8s.io/queue-name 레이블이 없는 새로 생성된 작업의 로컬 큐 역할을 합니다. 기본 로컬 큐를 생성한 후 kue.x-k8s.io/queue-name 레이블이 없는 네임스페이스에서 생성된 새 작업은 kue.x- k8s.io/queue-name: default 라벨을 갖도록 자동으로 업데이트됩니다.

중요

기본 로컬 큐를 생성할 때 네임스페이스의 기존 작업은 영향을 받지 않습니다. 기본 로컬 큐를 생성하기 전에 작업이 네임스페이스에 이미 있는 경우 해당 작업에 명시적으로 라벨을 지정하여 큐에 할당해야 합니다.

사전 요구 사항

  • Red Hat build of Kueue 버전 1.1을 클러스터에 설치했습니다.
  • 클러스터 관리자 권한 또는 kue-batch-admin-role 역할이 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • ClusterQueue 오브젝트를 생성했습니다.

프로세스

  1. default 라는 LocalQueue 오브젝트를 YAML 파일로 생성합니다.

    기본 LocalQueue 오브젝트의 예

    apiVersion: kueue.x-k8s.io/v1beta1
    kind: LocalQueue
    metadata:
      namespace: team-namespace
      name: default
    spec:
      clusterQueue: cluster-queue
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 LocalQueue 오브젝트를 적용합니다.

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

검증

  1. 기본 로컬 큐와 동일한 네임스페이스에 작업을 생성합니다.
  2. kue.x-k8s.io/queue-name: default 라벨을 사용하여 작업이 업데이트되는지 확인합니다.

2.7. 작업 및 워크로드 관리

Red Hat build of Kue는 사용자가 생성한 작업을 직접 조작하지 않습니다. 대신 Kue는 작업의 리소스 요구 사항을 나타내는 Workload 오브젝트를 관리합니다. Red Hat build of Kueue는 각 작업에 대한 워크로드를 자동으로 생성하고 두 오브젝트 간에 모든 결정과 상태를 동기화합니다.

2.7.1. Red Hat build of Kue to manage jobs를 위해 라벨을 지정

Red Hat build of Kueue Operator는 옵트인 Webhook 메커니즘을 사용하여 정책을 대상으로 할 것으로 예상되는 작업 및 네임스페이스에만 정책을 적용할 수 있도록 합니다.

kueue.openshift.io/managed=true 라벨을 사용하여 작업을 관리하려면 Red Hat build of Kueue의 네임스페이스에 라벨을 지정해야 합니다.

사전 요구 사항

  • 클러스터 관리자 권한이 있어야 합니다.
  • Red Hat build of Kueue Operator가 클러스터에 설치되어 있으며 Kueue CR(사용자 정의 리소스)을 생성했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  • 다음 명령을 실행하여 kue.openshift.io/managed=true 레이블을 네임스페이스에 추가합니다.

    $ oc label namespace <namespace> kueue.openshift.io/managed=true
    Copy to Clipboard Toggle word wrap

이 레이블을 추가하면 Red Hat build of Kueue Operator에 해당 네임스페이스가 웹 후크 승인 컨트롤러에서 관리되도록 지시합니다. 결과적으로 해당 네임스페이스 내의 모든 Red Hat build of Kueue 리소스가 올바르게 검증되고 변경됩니다.

2.7.2. 작업에 대한 라벨 정책 구성

Kueue CR(사용자 정의 리소스)의 spec.config.workloadManagement.labelPolicy 사양은 Kue의 Red Hat 빌드가 다른 작업을 관리하거나 무시할지 여부를 제어하는 선택적 필드입니다. 허용되는 값은 QueueName,None 및 비어 있음("")입니다.

labelPolicy 설정이 생략되거나 비어 있거나("")인 경우 기본 정책은 Kueue의 Red Hat build가 kueue.x-k8s.io/queue-name 레이블이 있는 작업을 관리하고 kue.x-k8s.io/queue-name 레이블이 없는 작업을 무시한다는 것입니다. labelPolicyQueueName 으로 설정된 경우와 동일한 워크플로우입니다.

labelPolicy 설정이 None 으로 설정된 경우 kueue.kue.x-k8s.io/queue-name 레이블이 없는 경우에도 Red Hat build of Kueue에서 작업을 관리합니다.

workloadManagement 사양 구성의 예

apiVersion: kueue.openshift.io/v1
kind: Kueue
metadata:
  labels:
    app.kubernetes.io/name: kueue-operator
    app.kubernetes.io/managed-by: kustomize
  name: cluster
  namespace: openshift-kueue-operator
spec:
  config:
    workloadManagement:
      labelPolicy: QueueName
# ...
Copy to Clipboard Toggle word wrap

kue.x-k8s.io/queue-name 라벨을 포함하는 사용자가 생성한 Job 오브젝트의 예

apiVersion: batch/v1
kind: Job
metadata:
  generateName: sample-job-
  namespace: my-namespace
  labels:
    kueue.x-k8s.io/queue-name: user-queue
spec:
# ...
Copy to Clipboard Toggle word wrap

2.8. 코호트 사용

cohorts를 사용하여 클러스터 큐를 그룹화하고 차용 가능한 리소스를 서로 공유할 수 있는 클러스터 큐를 결정할 수 있습니다. Borrowable 리소스는 코호트에서 모든 클러스터 대기열의 사용되지 않은 nominal 할당량으로 정의됩니다.

코호트를 사용하면 활용도를 낮추고 공정하게 공유 구성을 활성화하여 리소스 사용률을 최적화하는 데 도움이 될 수 있습니다. 또한 코호트는 관련 워크로드 또는 각 팀에 대해 클러스터 대기열을 그룹화할 수 있으므로 팀 간 리소스 관리 및 할당을 단순화하는 데 도움이 될 수 있습니다. cohorts를 사용하여 그룹 수준에서 리소스 할당량을 설정하여 클러스터 대기열 그룹에서 사용할 수 있는 리소스에 대한 제한을 정의할 수도 있습니다.

2.8.1. 클러스터 큐 사양 내에서 코호트 구성

다음 예와 같이 ClusterQueue 오브젝트의 .spec.cohort 필드에 코호트 이름을 지정하여 클러스터 큐를 코호트에 추가할 수 있습니다.

apiVersion: kueue.x-k8s.io/v1beta1
kind: ClusterQueue
metadata:
  name: cluster-queue
spec:
# ...
  cohort: example-cohort
# ...
Copy to Clipboard Toggle word wrap

spec.cohort 일치하는 모든 클러스터 대기열은 동일한 코호트의 일부입니다.

spec.cohort 필드를 생략하면 클러스터 대기열이 코호트에 속하지 않으며 차용 가능한 리소스에 액세스할 수 없습니다.

2.9. 공정 공유 구성

공정 공유는 코호트 테넌트 간에 차용 가능한 리소스의 동등하거나 가중된 공유를 달성하는 데 사용되는 선점 전략입니다. Borrowable 리소스는 코호트에서 모든 클러스터 대기열의 사용되지 않는 명예 할당량입니다.

Kue CR(사용자 정의 리소스)의 preemptionPolicy 값을 FairSharing 으로 설정하여 공정하게 공유를 구성할 수 있습니다.

2.9.1. 클러스터 대기열 가중치

공정한 공유를 활성화한 후에는 공정한 공유가 이루어지기 전에 각 클러스터 큐에 대한 공유 값을 설정해야 합니다. 공유 값은 ClusterQueue 오브젝트에서 weight 값으로 표시됩니다.

공유 값은 관리자가 특정 작업 유형 또는 팀에 우선 순위를 지정할 수 있기 때문에 중요합니다. 중요 애플리케이션 또는 높은 우선 순위 팀은 사용 가능한 리소스의 비례 큰 공유를 수신하도록 가중치가 지정된 값으로 구성할 수 있습니다. 가중치를 구성하면 먼저 예약되는 것이 아니라 정의된 조직 또는 프로젝트 우선 순위에 따라 사용되지 않는 리소스를 배포할 수 있습니다.

weight 값 또는 share 값은 차용할 수 있는 리소스를 경쟁할 때 클러스터 큐에 대한 비교 이점을 정의합니다. 일반적으로 Red Hat build of Kueue는 더 낮은 공유 가치를 가진 작업을 먼저 승인합니다. 공유 값이 높은 작업은 더 낮은 공유 값을 가진 작업보다 먼저 선점될 가능성이 높습니다.

공정 공유 가중치가 구성된 클러스터 대기열의 예

apiVersion: kueue.x-k8s.io/v1beta1
kind: ClusterQueue
metadata:
  name: cluster-queue
spec:
  namespaceSelector: {}
  resourceGroups:
  - coveredResources: ["cpu"]
    flavors:
    - name: default-flavor
      resources:
      - name: cpu
        nominalQuota: 9
  cohort: example-cohort
  fairSharing:
    weight: 2
Copy to Clipboard Toggle word wrap

2.9.1.1. 가중치 0

weight0 은 무한 공유 값을 나타냅니다. 즉, 클러스터 큐가 항상 다른 사용자와 비교하여 문제가 발생하며, 공정 공유가 활성화된 경우 해당 워크로드가 항상 선점됩니다.

2.10. gang 스케줄링

gang 스케줄링은 필요한 모든 리소스를 사용할 수 있는 경우에만 관련 작업의 그룹 또는 gang 이 시작되도록 합니다. Red Hat build of Kueue는 OpenShift Container Platform 클러스터가 갱단에서 모든 관련 작업을 시작하고 실행할 수 있는 용량을 보장할 때까지 작업을 일시 중지하여 gang 스케줄링을 활성화합니다. 이는 all-or-nothing 스케줄링이라고도 합니다.

GPU와 같이 비용이 많이 드는 리소스가 제한된 경우 gang 스케줄링이 중요합니다. gang 스케줄링을 사용하면 작업이 GPU 사용률을 개선하고 실행 비용을 줄일 수 있는 GPU를 사용하지 않도록 할 수 있습니다. 또한 gang 스케줄링은 리소스 분할 및 교착 상태와 같은 문제를 방지하는 데 도움이 될 수 있습니다.

2.10.1. gang 스케줄링 구성

클러스터 관리자는 Kueue CR(사용자 정의 리소스)에서 gangScheduling 사양을 수정하여 gang 스케줄링을 구성할 수 있습니다.

gang 스케줄링 이 구성된 Kue CR의 예

apiVersion: kueue.openshift.io/v1
kind: Kueue
metadata:
  name: cluster
  labels:
    app.kubernetes.io/managed-by: kustomize
    app.kubernetes.io/name: kueue-operator
  namespace: openshift-kueue-operator
spec:
  config:
    gangScheduling:
      policy: ByWorkload 
1

      byWorkload:
        admission: Parallel 
2

# ...
Copy to Clipboard Toggle word wrap

1
정책 값을 설정하여 gang 예약을 활성화하거나 비활성화할 수 있습니다. 가능한 값은 ByWorkload,None 또는 빈 값 ("")입니다.
ByWorkload
정책 값이 ByWorkload 로 설정되면 각 작업이 처리되고 허용을 단일 단위로 간주합니다. 지정된 시간 내에 작업이 준비되지 않으면 전체 작업이 제거되고 나중에 다시 시도합니다.
없음
정책 값을 None 으로 설정하면 gang 스케줄링이 비활성화됩니다.
비어 있음("")
정책 값이 비어 있거나 "" 로 설정된 경우 Kue Operator의 Red Hat 빌드에서 gang 스케줄링 설정을 결정합니다. 현재 gang 스케줄링은 기본적으로 비활성화되어 있습니다.
2
정책 값이 ByWorkload 로 설정된 경우 작업 승인 설정을 구성해야 합니다. 허용 사양에 사용 가능한 값은 Parallel,Sequential 또는 비어 있음("")입니다.
병렬
허용 값이 Parallel 으로 설정되면 언제든지 작업의 Pod를 승인 할 수 있습니다. 이로 인해 작업이 클러스터 용량에 대한 경합에 있는 교착 상태가 발생할 수 있습니다. 교착 상태가 발생하면 다른 작업에서 Pod를 성공적으로 예약하면 Pod 예약이 현재 작업에서 발생하지 않을 수 있습니다.
순차적
승인 값이 Sequential 으로 설정되면 현재 처리 작업의 Pod만 허용됩니다. 현재 작업의 모든 Pod가 승인되고 준비되면 Red Hat build of Kueue가 다음 작업을 처리합니다. 클러스터에 여러 작업에 대한 충분한 용량이 있는 경우 순차적 처리 속도가 느려질 수 있지만 작업의 모든 Pod가 성공적으로 예약될 가능성이 높습니다.
비어 있음("")
승인 값이 비어 있거나 "" 로 설정된 경우 Kueue Operator의 Red Hat build에서 작업 승인 설정을 결정합니다. 현재 승인 값은 기본적으로 병렬 으로 설정됩니다.

2.11. 할당량 제한을 사용하여 작업 실행

Red Hat build of Kueue가 활성화된 상태에서 Kubernetes 작업을 실행하여 정의된 할당량 제한 내에서 리소스 할당을 관리할 수 있습니다. 이를 통해 예측 가능한 리소스 가용성, 클러스터 안정성 및 최적화된 성능을 보장할 수 있습니다.

2.11.1. 사용 가능한 로컬 대기열 식별

작업을 큐에 제출하려면 먼저 로컬 대기열의 이름을 찾아야 합니다.

사전 요구 사항

  • 클러스터 관리자가 OpenShift Container Platform 클러스터에 Red Hat build of Kue를 설치 및 구성했습니다.
  • 클러스터 관리자가 kue-batch-user-role 클러스터 역할을 할당했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  • 다음 명령을 실행하여 네임스페이스에서 사용 가능한 로컬 대기열을 나열합니다.

    $ oc -n <namespace> get localqueues
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME         CLUSTERQUEUE    PENDING WORKLOADS
    user-queue   cluster-queue   3
    Copy to Clipboard Toggle word wrap

2.11.2. Red Hat build of Kueue로 실행할 작업 정의

Red Hat build of Kueue를 사용하여 실행할 작업을 정의하는 경우 다음 기준을 충족해야 합니다.

  • kue.x-k8s.io/queue-name 레이블을 사용하여 작업을 제출할 로컬 큐를 지정합니다.
  • 각 작업 Pod에 대한 리소스 요청을 포함합니다.

Red Hat build of Kueue는 작업을 일시 중단한 다음, 리소스를 사용할 수 있을 때 시작됩니다. Red Hat build of Kueue는 작업과 일치하는 이름으로 Workload 오브젝트로 표시되는 해당 워크로드를 생성합니다.

사전 요구 사항

  • 클러스터 관리자가 OpenShift Container Platform 클러스터에 Red Hat build of Kue를 설치 및 구성했습니다.
  • 클러스터 관리자가 kue-batch-user-role 클러스터 역할을 할당했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • 작업을 제출할 로컬 대기열의 이름을 확인했습니다.

프로세스

  1. Job 오브젝트를 생성합니다.

    작업 예

    apiVersion: batch/v1
    kind: Job 
    1
    
    metadata:
      generateName: sample-job- 
    2
    
      namespace: my-namespace
      labels:
        kueue.x-k8s.io/queue-name: user-queue 
    3
    
    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
    Copy to Clipboard Toggle word wrap

    1
    리소스 유형을 작업 오브젝트로 정의합니다. 이 오브젝트는 배치 계산 작업을 나타냅니다.
    2
    작업의 고유 이름을 생성하기 위한 접두사를 제공합니다.
    3
    작업을 보낼 큐를 식별합니다.
    4
    각 포드에 대한 리소스 요청을 정의합니다.
  2. 다음 명령을 실행하여 작업을 실행합니다.

    $ oc create -f <filename>.yaml
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하고 출력을 관찰하여 Pod가 생성한 작업에 대해 실행 중인지 확인합니다.

    $ oc get job <job-name>
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME               STATUS      COMPLETIONS   DURATION   AGE
    sample-job-sk42x   Suspended   0/1                      2m12s
    Copy to Clipboard Toggle word wrap

  • 다음 명령을 실행하고 출력을 관찰하여 작업의 네임스페이스에 워크로드가 생성되었는지 확인합니다.

    $ oc -n <namespace> get workloads
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                         QUEUE          RESERVED IN   ADMITTED   FINISHED   AGE
    job-sample-job-sk42x-77c03   user-queue                                         3m8s
    Copy to Clipboard Toggle word wrap

2.12. 지원 요청

이 문서에 설명된 절차 또는 Red Hat build of Kue에서 일반적으로 문제가 발생하는 경우 Red Hat 고객 포털 을 방문하십시오.

고객 포털에서 다음을 수행할 수 있습니다.

  • Red Hat 제품과 관련된 기사 및 솔루션에 대한 Red Hat 지식베이스를 검색하거나 살펴보십시오.
  • Red Hat 지원에 지원 케이스 제출.
  • 다른 제품 설명서에 액세스 가능합니다.

2.12.1. Red Hat 지식베이스 정보

Red Hat 지식베이스 는 Red Hat의 제품 및 기술을 최대한 활용할 수 있도록 풍부한 컨텐츠를 제공합니다. Red Hat 지식베이스는 Red Hat 제품의 설치, 구성 및 사용에 대한 기사, 제품 문서 및 동영상으로 구성되어 있습니다. 또한 알려진 문제에 대한 솔루션을 검색할 수 있으며, 간결한 근본 원인 설명 및 해결 단계를 제공합니다.

2.12.2. Red Hat 지원을 위한 데이터 수집

oc adm must-gather CLI 명령을 사용하여 다음을 포함하여 문제를 디버깅하는 데 가장 필요한 Kueue 인스턴스의 Red Hat 빌드에 대한 정보를 수집할 수 있습니다.

  • Red Hat build of Kueue 사용자 정의 리소스(예: 워크로드, 클러스터 대기열, 로컬 대기열, 리소스 플레이버, 승인 확인, 해당 클러스터 리소스 정의(CRD))
  • 서비스
  • 끝점
  • Webhook 구성
  • openshift-kueue-operator 네임 스페이스 및 kueue-controller-manager Pod의 로그

수집된 데이터는 기본적으로 현재 작업 디렉터리에 있는 must-gather/ 라는 새 디렉터리에 작성됩니다.

사전 요구 사항

  • Red Hat build of Kueue Operator가 클러스터에 설치되어 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. must-gather 데이터를 저장하려는 디렉터리로 이동합니다.
  2. 다음 명령을 실행하여 must-gather 데이터를 수집합니다.

    $ oc adm must-gather \
      --image=registry.redhat.io/kueue/kueue-must-gather-rhel9:<version>
    Copy to Clipboard Toggle word wrap

    여기서 <version >은 Red Hat build of Kueue의 현재 버전입니다.

  3. 작업 디렉토리에서 생성된 must-gather 디렉토리에서 압축 파일을 만듭니다. 고유한 must-gather 데이터에 대한 날짜 및 클러스터 ID를 제공해야 합니다. 클러스터 ID를 찾는 방법에 대한 자세한 내용은 OpenShift 클러스터에서 클러스터 ID 또는 이름을 찾는 방법을 참조하십시오.
  4. 압축 파일을 Red Hat 고객 포털 고객 지원 페이지의 지원 케이스에 첨부합니다.

3장. leader Worker Set Operator

3.1. leader Worker Set Operator 개요

AI/ML 유추에 대용량 언어 모델(LLM)을 사용하려면 종종 상당한 컴퓨팅 리소스가 필요하며 일반적으로 여러 노드에 워크로드를 분할해야 합니다. 이로 인해 배포가 복잡하고 스케일링에 대한 문제가 발생하며, 실패에서 복구하고, Pod 배치를 효율적으로 배치할 수 있습니다.

Leader Worker Set Operator는 Pod 그룹을 조정된 단일 단위로 처리하여 이러한 다중 노드 배포를 단순화합니다. 그룹에서 각 pod의 라이프사이클을 관리하고, 전체 그룹을 함께 스케일링하고, 그룹 수준에서 업데이트 및 실패 복구를 수행하여 일관성을 보장합니다.

3.1.1. Leader Worker Set Operator 정보

Leader Worker Set Operator는 LeaderWorkerSet 오픈 소스 프로젝트를 기반으로 합니다. LeaderWorkerSet 은 Pod 그룹을 단위로 배포하는 데 사용할 수 있는 사용자 지정 Kubernetes API입니다. 이는 대용량 언어 모델(LLM)이 여러 노드에 분할되는 AI(AI) 및 머신 러닝(ML) 추론 워크로드에 유용합니다.

LeaderWorkerSet API를 사용하면 Pod가 하나의 리더와 여러 작업자로 구성된 단위로 그룹화되며, 모두 단일 엔티티로 함께 관리됩니다. 그룹의 각 Pod에는 고유한 Pod ID가 있습니다. 그룹 내의 Pod는 병렬로 생성되고 동일한 라이프사이클 단계를 공유합니다. 롤아웃, 롤링 업데이트 및 Pod 실패 재시작은 그룹으로 수행됩니다.

LeaderWorkerSet 구성에서는 그룹 크기와 그룹 복제본 수를 정의합니다. 필요한 경우 리더 및 작업자 Pod에 대해 별도의 템플릿을 정의하여 역할별 사용자 지정을 수행할 수 있습니다. 동일한 그룹의 Pod가 동일한 토폴로지에 공동 배치되도록 토폴로지 인식 배치를 구성할 수도 있습니다.

중요

Leader Worker Set Operator를 설치하기 전에 서비스를 구성하고 메트릭 컬렉션을 관리하는 데 필요하므로 cert-manager Operator for Red Hat OpenShift를 설치해야 합니다.

Leader Worker Set Operator에 대한 모니터링은 기본적으로 Prometheus를 통해 OpenShift Container Platform과 함께 제공됩니다.

3.1.1.1. LeaderWorkerSet 아키텍처

다음 다이어그램에서는 LeaderWorkerSet API에서 하나의 Pod가 리더로, 나머지를 작업자로 조정하여 Pod 그룹을 단일 단위로 구성하는 방법을 보여줍니다.

그림 3.1. 리더 작업자 세트 아키텍처

LeaderWorkerSet API는 리더 상태 저장 세트를 사용하여 Pod 그룹의 배포 및 라이프사이클을 관리합니다. 정의된 각 복제본에 대해 leader-worker 그룹이 생성됩니다.

각 leader-worker 그룹에는 리더 Pod 및 작업자 상태 저장 세트가 포함되어 있습니다. worker stateful 세트는 리더 Pod에 의해 소유되며 해당 리더 Pod와 연결된 작업자 Pod 세트를 관리합니다. 지정된 크기는 리더 Pod가 해당 수에 포함된 각 leader-worker 그룹의 총 Pod 수를 정의합니다.

3.2. leader Worker Set Operator 릴리스 노트

Leader Worker Set Operator를 사용하여 분산 유추 워크로드를 관리하고 대규모 유추 요청을 효율적으로 처리할 수 있습니다.

이 릴리스 노트는 Leader Worker Set Operator의 개발을 추적합니다.

자세한 내용은 Leader Worker Set Operator 정보를 참조하십시오.

3.2.1. Leader Worker Set Operator 1.0.0 릴리스 정보

출시 날짜: 2025년 9월 18일

Leader Worker Set Operator 1.0.0에 다음 권고를 사용할 수 있습니다.

3.2.1.1. 새로운 기능 및 개선 사항
  • 이는 Leader Worker Set Operator의 초기 릴리스입니다.

3.3. Leader Worker Set Operator를 사용하여 분산 워크로드 관리

Leader Worker Set Operator를 사용하여 분산 유추 워크로드를 관리하고 대규모 유추 요청을 효율적으로 처리할 수 있습니다.

3.3.1. Leader Worker Set Operator 설치

웹 콘솔을 사용하여 Leader Worker Set Operator를 설치할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
  • cert-manager Operator for Red Hat OpenShift가 설치되어 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. cert-manager Operator for Red Hat OpenShift가 설치되었는지 확인합니다.
  3. Leader Worker Set Operator를 설치합니다.

    1. OperatorsOperatorHub로 이동합니다.
    2. Leader Worker Set Operator 를 필터 상자에 입력합니다.
    3. Leader Worker Set Operator 를 선택하고 설치를 클릭합니다.
    4. Operator 설치 페이지에서 다음을 수행합니다.

      1. Update 채널은 Leader Worker Set Operator 1.0의 안정적인 최신 릴리스를 설치하는 stable-v1.0 으로 설정됩니다.
      2. 설치 모드에서 클러스터의 특정 네임스페이스를 선택합니다.
      3. 설치된 네임스페이스 에서 Operator 권장 네임스페이스: openshift-lws-operator 를 선택합니다.
      4. 업데이트 승인 에서 다음 업데이트 전략 중 하나를 선택합니다.

        • 자동 전략을 사용하면 Operator 새 버전이 준비될 때 OLM(Operator Lifecycle Manager)이 자동으로 Operator를 업데이트할 수 있습니다.
        • 수동 전략을 사용하려면 적절한 자격 증명을 가진 사용자가 Operator 업데이트를 승인해야 합니다.
      5. 설치를 클릭합니다.
  4. Leader Worker Set Operator에 대한 CR(사용자 정의 리소스)을 생성합니다.

    1. 설치된 Operator리더 작업자 세트 Operator 로 이동합니다.
    2. 제공된 API 아래에서 LeaderWorkerSetOperator 창에서 인스턴스 생성 을 클릭합니다.
    3. 생성을 클릭합니다.

3.3.2. 리더 작업자 세트 배포

Leader Worker Set Operator를 사용하여 노드 간에 분산 워크로드 관리를 지원하기 위해 리더 작업자 세트를 배포할 수 있습니다.

사전 요구 사항

  • Leader Worker Set Operator를 설치했습니다.

프로세스

  1. 다음 명령을 실행하여 새 프로젝트를 생성합니다.

    $ oc new-project my-namespace
    Copy to Clipboard Toggle word wrap
  2. leader-worker-set.yaml이라는 파일을 생성합니다.

    apiVersion: leaderworkerset.x-k8s.io/v1
    kind: LeaderWorkerSet
    metadata:
      generation: 1
      name: my-lws 
    1
    
      namespace: my-namespace 
    2
    
    spec:
      leaderWorkerTemplate:
        leaderTemplate: 
    3
    
          metadata: {}
          spec:
            containers:
            - image: nginxinc/nginx-unprivileged:1.27
              name: leader
              resources: {}
        restartPolicy: RecreateGroupOnPodRestart 
    4
    
        size: 3 
    5
    
        workerTemplate: 
    6
    
          metadata: {}
          spec:
            containers:
            - image: nginxinc/nginx-unprivileged:1.27
              name: worker
              ports:
              - containerPort: 8080
                protocol: TCP
              resources: {}
      networkConfig:
        subdomainPolicy: Shared 
    7
    
      replicas: 2 
    8
    
      rolloutStrategy:
        rollingUpdateConfiguration:
          maxSurge: 1 
    9
    
          maxUnavailable: 1
        type: RollingUpdate
      startupPolicy: LeaderCreated
    Copy to Clipboard Toggle word wrap
    1
    리더 작업자 세트 리소스의 이름을 지정합니다.
    2
    실행할 리더 작업자의 네임스페이스를 지정합니다.
    3
    리더 Pod의 Pod 템플릿을 지정합니다.
    4
    Pod 오류가 발생하는 경우 재시작 정책을 지정합니다. 허용되는 값은 전체 그룹을 다시 시작하거나 그룹을 재시작하지 않도록 RecreateGroupOnPodRestart 입니다.
    5
    리더 Pod를 포함하여 각 그룹에 생성할 Pod 수를 지정합니다. 예를 들어 3 의 값은 1개의 리더 Pod와 2개의 작업자 Pod를 생성합니다. 기본값은 1 입니다.
    6
    작업자 Pod에 대한 Pod 템플릿을 지정합니다.
    7
    헤드리스 서비스를 생성할 때 사용할 정책을 지정합니다. 허용되는 값은 UniquePerReplica 또는 Shared 입니다. 기본값은 Shared 입니다.
    8
    복제본 수 또는 leader-worker 그룹을 지정합니다. 기본값은 1 입니다.
    9
    롤링 업데이트 중에 replicas 값 이상으로 예약할 수 있는 최대 복제본 수를 지정합니다. 값은 정수 또는 백분율로 지정할 수 있습니다.

    구성할 수 있는 모든 필드에 대한 자세한 내용은 LeaderWorkerSet API 업스트림 문서를 참조하십시오.

  3. 다음 명령을 실행하여 리더 작업자 세트 구성을 적용합니다.

    $ oc apply -f leader-worker-set.yaml
    Copy to Clipboard Toggle word wrap

검증

  1. 다음 명령을 실행하여 Pod가 생성되었는지 확인합니다.

    $ oc get pods -n my-namespace
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME         READY   STATUS    RESTARTS   AGE
    my-lws-0     1/1     Running   0          4s 
    1
    
    my-lws-0-1   1/1     Running   0          3s
    my-lws-0-2   1/1     Running   0          3s
    my-lws-1     1/1     Running   0          7s 
    2
    
    my-lws-1-1   1/1     Running   0          6s
    my-lws-1-2   1/1     Running   0          6s
    Copy to Clipboard Toggle word wrap

    1
    첫 번째 그룹의 리더 포드입니다.
    2
    두 번째 그룹의 리더 포드입니다.
  2. 다음 명령을 실행하여 상태 저장 세트를 검토합니다.

    $ oc get statefulsets
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME       READY   AGE
    my-lws     4/4     111s 
    1
    
    my-lws-0   2/2     57s 
    2
    
    my-lws-1   2/2     60s 
    3
    Copy to Clipboard Toggle word wrap

    1
    모든 leader-worker 그룹에 대한 리더 상태 저장 세트입니다.
    2
    첫 번째 그룹에 대한 worker 상태 저장 세트입니다.
    3
    두 번째 그룹에 대한 worker 상태 저장 세트입니다.

3.4. Leader Worker Set Operator 설치 제거

Operator를 설치 제거하고 관련 리소스를 제거하여 OpenShift Container Platform에서 Leader Worker Set Operator를 제거할 수 있습니다.

3.4.1. Leader Worker Set Operator 설치 제거

웹 콘솔을 사용하여 Leader Worker Set Operator를 제거할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
  • Leader Worker Set Operator를 설치했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. Operators설치된 Operator로 이동합니다.
  3. 프로젝트 드롭다운 목록에서 openshift-lws-operator 를 선택합니다.
  4. LeaderWorkerSetOperator 인스턴스를 삭제합니다.

    1. Leader Worker Set Operator 를 클릭하고 LeaderWorkerSetOperator 탭을 선택합니다.
    2. 클러스터 항목 옆에 있는 옵션 메뉴 kebab 를 클릭하고 LeaderWorkerSetOperator 삭제 를 선택합니다.
    3. 확인 대화 상자에서 삭제를 클릭합니다.
  5. Leader Worker Set Operator를 설치 제거합니다.

    1. Operators설치된 Operator로 이동합니다.
    2. Leader Worker Set Operator 항목 옆에 있는 옵션 메뉴 kebab 를 클릭하고 Operator 설치 제거를 클릭합니다.
    3. 확인 대화 상자에서 설치 제거를 클릭합니다.

3.4.2. Leader Worker Set Operator 리소스 설치 제거

필요한 경우 Leader Worker Set Operator를 설치 제거한 후 클러스터에서 관련 리소스를 제거할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
  • Leader Worker Set Operator를 설치 제거했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. Leader Worker Set Operator가 설치될 때 생성된 CRD를 제거합니다.

    1. 관리클러스터 리소스 정의로 이동합니다.
    2. Name 필드에 LeaderWorkerSetOperator 를 입력하여 CRD를 필터링합니다.
    3. LeaderWorkerSetOperator CRD 옆에 있는 옵션 메뉴 kebab 를 클릭하고 CustomResourceDefinition 삭제 를 선택합니다.
    4. 확인 대화 상자에서 삭제를 클릭합니다.
  3. openshift-lws-operator 네임스페이스를 삭제합니다.

    1. 관리네임스페이스로 이동합니다.
    2. 필터 상자에 openshift-lws-operator 를 입력합니다.
    3. openshift-lws-operator 항목 옆에 있는 옵션 메뉴 kebab 를 클릭하고 네임스페이스 삭제 를 선택합니다.
    4. 확인 대화 상자에서 openshift-lws-operator 를 입력하고 삭제 를 클릭합니다.

4장. JobSet Operator

4.1. JobSet Operator 개요

OpenShift Container Platform에서 JobSet Operator를 사용하여 HPC(고성능 컴퓨팅) 및 AI 교육과 같은 대규모 조정된 워크로드를 쉽게 관리하고 실행합니다. JobSet Operator는 다중 템플릿 작업 지원 및 안정적인 네트워킹과 같은 기능을 통해 빠른 복구 및 효율적인 리소스 사용을 지원합니다.

중요

JobSet Operator는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

4.1.1. JobSet Operator 정보

OpenShift Container Platform에서 JobSet Operator를 사용하여 HPC(고성능 컴퓨팅) 또는 AI(인공 지능) 교육과 같은 대규모 분산 및 조정된 컴퓨팅 워크로드를 관리하고 자동 안정성, 조정 및 오류 복구를 얻을 수 있습니다.

JobSet Operator는 JobSet 오픈 소스 프로젝트를 기반으로 합니다.

JobSet Operator는 조정된 단일 단위로 작업 그룹을 관리하도록 설계되었습니다. 이는 HPC와 같은 필드에 특히 유용합니다. 단 몇 시간 또는 며칠 동안 실행하는 데 필요한 대규모 AI 모델 교육이 필요합니다.

JobSet Operator를 사용하여 표준 OpenShift Container Platform 작업에 너무 크거나 너무 복잡한 문제를 해결할 수 있습니다. JobSet Operator는 조정, 안정성 및 복구 기능을 제공합니다.

JobSet Operator는 실패 및 재시작 후에도 작업자가 서로 찾고 통신할 수 있도록 안정적인 헤드리스 서비스를 자동으로 설정하여 IP 주소를 가져옵니다. 자동 장애 복구도 제공합니다. 대규모 교육 작업의 작은 부분 중 하나가 실패하면 저장된 체크포인트에서 전체 작업자 그룹을 다시 시작하도록 Operator를 구성할 수 있습니다. 이를 통해 시간과 컴퓨팅 비용을 절감할 수 있습니다.

JobSet Operator는 시작 컨트롤을 제공하여 특정 시작 순서를 정의하여 종속성을 충족할 수 있습니다. 예를 들어 작업자가 연결을 시도하기 전에 리더가 실행되고 있는지 확인합니다.

JobSet Operator를 사용하면 OpenShift Container Platform에서 대규모, 분산 및 조정된 컴퓨팅 작업을 쉽게 관리할 수 있으므로 많은 개별 구성 요소가 하나의 탄력적이고 관리 가능한 시스템으로 전환됩니다.

4.2. JobSet Operator 설치

OpenShift Container Platform에 JobSet Operator를 설치하여 대규모의 조정된 컴퓨팅 워크로드를 관리할 수 있으므로 애플리케이션에 통합 API 및 실패 복구를 제공합니다.

중요

JobSet Operator는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

4.2.1. JobSet Operator 설치

웹 콘솔을 사용하여 OpenShift Container Platform에 JobSet Operator를 설치하여 조정된 대규모 컴퓨팅 워크로드 관리를 시작합니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
  • cert-manager Operator for Red Hat OpenShift가 설치되어 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. cert-manager Operator for Red Hat OpenShift가 설치되었는지 확인합니다.
  3. JobSet Operator를 설치합니다.

    1. 에코시스템소프트웨어 카탈로그 로 이동합니다.
    2. openshift-operators 프로젝트를 검색하고 선택합니다.
    3. JobSet Operator 를 필터 상자에 입력합니다.
    4. JobSet Operator 를 선택하고 설치를 클릭합니다.
    5. Operator 설치 페이지에서 다음을 수행합니다.

      1. Update 채널은 JobSet Operator 0.1의 안정적인 최신 릴리스를 설치하는 tech-preview-v0.1 로 설정됩니다.
      2. 설치 모드에서 클러스터의 특정 네임스페이스를 선택합니다.
      3. 설치된 네임스페이스 에서 Operator 권장 네임스페이스: openshift-jobset-operator를 선택합니다.
      4. 업데이트 승인 에서 다음 업데이트 전략 중 하나를 선택합니다.

        • 자동 전략을 사용하면 Operator 새 버전이 준비될 때 OLM(Operator Lifecycle Manager)이 자동으로 Operator를 업데이트할 수 있습니다.
        • 수동 전략을 사용하려면 적절한 자격 증명을 가진 사용자가 Operator 업데이트를 승인해야 합니다.
      5. 설치를 클릭합니다.
  4. JobSet Operator에 대한 CR(사용자 정의 리소스)을 생성합니다.

    1. 설치된 OperatorJobSet Operator 로 이동합니다.
    2. 제공된 API 에서 JobSetOperator 창에서 인스턴스 생성 을 클릭합니다.
    3. 이름을 cluster 로 설정합니다.
    4. managementStateManaged 로 설정합니다.
    5. 생성을 클릭합니다.

검증

  • 다음 명령을 입력하여 JobSet Operator 및 피연산자 Pod가 실행 중인지 확인합니다.

    $ oc get pod -n openshift-jobset-operator
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                                        READY   STATUS    RESTARTS   AGE
    jobset-controller-manager-5595547fb-b4g2x   1/1     Running   0          48s
    jobset-operator-596cb848c6-q2dmp            1/1     Running   0          2m33s
    Copy to Clipboard Toggle word wrap

4.3. JobSet Operator 릴리스 노트

OpenShift Container Platform에서 조정된 대규모 컴퓨팅 워크로드를 관리하는 JobSet Operator의 개발, 기능 및 수정 사항을 추적합니다.

중요

JobSet Operator는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

자세한 내용은 JobSet Operator 정보를 참조하십시오.

4.3.1. JobSet Operator 0.1.0 릴리스 노트

JobSet Operator 0.1.0의 초기 기술 프리뷰 릴리스에 대한 새로운 기능 및 권고 사항을 검토하십시오.

출시 날짜: 2025년 11월 4일

JobSet Operator 0.1.0에 대해 다음 권고를 사용할 수 있습니다.

4.3.1.1. 새로운 기능 및 개선 사항
  • 이는 JobSet Operator의 초기 기술 프리뷰 릴리스입니다.

Legal Notice

Copyright © 2025 Red Hat

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat