4.10. 보조 스케줄러
4.10.1. 보조 스케줄러 개요
Secondary Scheduler Operator를 설치하여 기본 스케줄러와 함께 사용자 정의 보조 스케줄러를 실행하여 Pod를 예약할 수 있습니다.
4.10.1.1. Secondary Scheduler Operator 정보
Red Hat OpenShift용 Secondary Scheduler Operator는 OpenShift Container Platform에 사용자 지정 보조 스케줄러를 배포할 수 있습니다. 보조 스케줄러는 Pod를 예약하기 위해 기본 스케줄러와 함께 실행됩니다. Pod 구성은 사용할 스케줄러를 지정할 수 있습니다.
사용자 정의 스케줄러에는 /bin/kube-scheduler
바이너리가 있어야 하며 Kubernetes 스케줄링 프레임워크 를 기반으로 합니다.
Secondary Scheduler Operator를 사용하여 OpenShift Container Platform에 사용자 정의 보조 스케줄러를 배포할 수 있지만 Red Hat은 사용자 정의 보조 스케줄러의 기능을 직접 지원하지 않습니다.
Secondary Scheduler Operator는 보조 스케줄러에 필요한 기본 역할 및 역할 바인딩을 생성합니다. 보조 스케줄러에 대해 KubeSchedulerConfiguration
리소스를 구성하여 활성화 또는 비활성화할 스케줄링 플러그인을 지정할 수 있습니다.
4.10.2. Red Hat OpenShift 릴리스 노트용 secondary Scheduler Operator
Red Hat OpenShift용 Secondary Scheduler Operator를 사용하면 OpenShift Container Platform 클러스터에 사용자 정의 보조 스케줄러를 배포할 수 있습니다.
이 릴리스 노트에서는 Red Hat OpenShift용 Secondary Scheduler Operator의 개발을 추적합니다.
자세한 내용은 Secondary Scheduler Operator 정보를 참조하십시오.
4.10.2.1. Secondary Scheduler Operator for Red Hat OpenShift 1.1.0 릴리스 노트
출시 날짜: 2022-9-1
Secondary Scheduler Operator for Red Hat OpenShift 1.1.0에 다음 권고를 사용할 수 있습니다.
4.10.2.1.1. 새로운 기능 및 개선 사항
- Pod 보안 승인 적용을 준수하도록 Secondary Scheduler Operator 보안 컨텍스트 구성이 업데이트되었습니다.
4.10.2.1.2. 확인된 문제
- 현재는 보조 스케줄러 Operator를 통해 구성 맵, CRD 또는 RBAC 정책과 같은 추가 리소스를 배포할 수 없습니다. 사용자 정의 보조 스케줄러에 필요한 역할 및 역할 바인딩 이외의 모든 리소스를 외부에서 적용해야 합니다. (BZ#2071684)
4.10.2.2. Secondary Scheduler Operator for Red Hat OpenShift 1.0.1 릴리스 노트
출시 날짜: 2022-07-28
Secondary Scheduler Operator for Red Hat OpenShift 1.0.1에 다음 권고를 사용할 수 있습니다.
4.10.2.2.1. 새로운 기능 및 개선 사항
- Secondary Scheduler Operator for Red Hat OpenShift 1.0.1의 최대 OpenShift Container Platform 버전은 4.11입니다.
4.10.2.2.2. 버그 수정
- 이전 버전에서는 보조 스케줄러 CR(사용자 정의 리소스)이 삭제된 후 보조 스케줄러 배포가 삭제되지 않아 Secondary Scheduler Operator 및 피연산자가 완전히 제거되지 않았습니다. 이제 보조 스케줄러 CR이 삭제될 때 보조 스케줄러 배포가 삭제되므로 Secondary Scheduler Operator를 완전히 제거할 수 있습니다. (BZ#2100923)
4.10.2.2.3. 확인된 문제
- 현재는 보조 스케줄러 Operator를 통해 구성 맵, CRD 또는 RBAC 정책과 같은 추가 리소스를 배포할 수 없습니다. 사용자 정의 보조 스케줄러에 필요한 역할 및 역할 바인딩 이외의 모든 리소스를 외부에서 적용해야 합니다. (BZ#2071684)
4.10.2.3. Red Hat OpenShift 1.0.0용 Secondary Scheduler Operator 릴리스 노트
출시 날짜: 2022-04-18
Red Hat OpenShift 1.0.0의 Secondary Scheduler Operator에 대해 다음 권고를 사용할 수 있습니다.
4.10.2.3.1. 새로운 기능 및 개선 사항
- 이는 Red Hat OpenShift용 Secondary Scheduler Operator의 초기 릴리스입니다.
4.10.2.3.2. 확인된 문제
- 현재는 보조 스케줄러 Operator를 통해 구성 맵, CRD 또는 RBAC 정책과 같은 추가 리소스를 배포할 수 없습니다. 사용자 정의 보조 스케줄러에 필요한 역할 및 역할 바인딩 이외의 모든 리소스를 외부에서 적용해야 합니다. (BZ#2071684)
4.10.3. 보조 스케줄러를 사용하여 Pod 예약
보조 스케줄러 Operator를 설치하고 보조 스케줄러를 배포하고 Pod 정의에서 보조 스케줄러를 설정하여 OpenShift Container Platform에서 사용자 정의 보조 스케줄러를 실행할 수 있습니다.
4.10.3.1. Secondary Scheduler Operator 설치
웹 콘솔을 사용하여 Red Hat OpenShift용 Secondary Scheduler Operator를 설치할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 클러스터에 액세스할 수 있습니다. - OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
절차
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
Red Hat OpenShift용 Secondary Scheduler Operator에 필요한 네임스페이스를 생성합니다.
-
관리
네임스페이스로 이동하여 네임스페이스 생성을 클릭합니다. -
이름 필드에
openshift-secondary-scheduler-operator
를 입력하고 생성을 클릭합니다.
-
관리
Red Hat OpenShift용 Secondary Scheduler Operator를 설치합니다.
-
Operators
OperatorHub로 이동합니다. - Red Hat OpenShift의 Secondary Scheduler Operator를 필터 상자에 입력합니다.
- Red Hat OpenShift의 Secondary Scheduler Operator를 선택하고 설치를 클릭합니다.
Operator 설치 페이지에서 다음을 수행합니다.
- Update 채널은 stable 으로 설정되어 Red Hat OpenShift용 Secondary Scheduler Operator의 안정적인 최신 릴리스를 설치합니다.
- 클러스터에서 특정 네임스페이스 를 선택하고 드롭다운 메뉴에서 openshift-secondary-scheduler-operator 를 선택합니다.
업데이트 승인 전략을 선택합니다.
- 자동 전략을 사용하면 Operator 새 버전이 준비될 때 OLM(Operator Lifecycle Manager)이 자동으로 Operator를 업데이트할 수 있습니다.
- 수동 전략을 사용하려면 적절한 자격 증명을 가진 사용자가 Operator 업데이트를 승인해야 합니다.
- 설치를 클릭합니다.
-
Operators
검증
-
Operators
설치된 Operator로 이동합니다. - Red Hat OpenShift의 Secondary Scheduler Operator 가 성공 상태로 나열되어 있는지 확인합니다.
4.10.3.2. 보조 스케줄러 배포
Secondary Scheduler Operator를 설치한 후 보조 스케줄러를 배포할 수 있습니다.
전제 조건
-
cluster-admin
권한이 있는 클러스터에 액세스할 수 있습니다. - OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
- Red Hat OpenShift용 Secondary Scheduler Operator가 설치되어 있습니다.
절차
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
보조 스케줄러에 대한 구성을 유지하는 구성 맵을 생성합니다.
-
워크로드
ConfigMap으로 이동합니다. - ConfigMap 생성을 클릭합니다.
YAML 편집기에서 필요한
KubeSchedulerConfiguration
구성이 포함된 구성 맵 정의를 입력합니다. 예를 들어 다음과 같습니다.apiVersion: v1 kind: ConfigMap metadata: name: "secondary-scheduler-config" 1 namespace: "openshift-secondary-scheduler-operator" 2 data: "config.yaml": | apiVersion: kubescheduler.config.k8s.io/v1beta3 kind: KubeSchedulerConfiguration 3 leaderElection: leaderElect: false profiles: - schedulerName: secondary-scheduler 4 plugins: 5 score: disabled: - name: NodeResourcesBalancedAllocation - name: NodeResourcesLeastAllocated
- 1
- 구성 맵의 이름입니다. 이는 스케줄러 구성 필드에
SecondaryScheduler
CR을 생성할 때 사용됩니다. - 2
- 구성 맵은
openshift-secondary-scheduler-operator
네임스페이스에 생성해야 합니다. - 3
- 보조 스케줄러의
KubeSchedulerConfiguration
리소스입니다. 자세한 내용은 Kubernetes API 문서의KubeSchedulerConfiguration
을 참조하십시오. - 4
- 보조 스케줄러의 이름입니다.
spec.schedulerName
필드를 이 값으로 설정하는 Pod는 이 보조 스케줄러로 예약됩니다. - 5
- 보조 스케줄러를 활성화하거나 비활성화할 플러그인입니다. 목록의 기본 스케줄링 플러그인은 Kubernetes 문서의 스케줄링 플러그인을 참조하십시오.
- 생성을 클릭합니다.
-
워크로드
SecondaryScheduler
CR을 생성합니다.-
Operators
설치된 Operator로 이동합니다. - Red Hat OpenShift에 대해 Secondary Scheduler Operator를 선택합니다.
- Secondary Scheduler 탭을 선택하고 Create SecondaryScheduler 를 클릭합니다.
-
Name 필드는 기본적으로
클러스터
; 이 이름을 변경하지 마십시오. -
Scheduler 구성 필드는 기본적으로
secondary-scheduler-config
로 설정됩니다. 이 값이 이 절차의 앞부분에서 생성된 구성 맵의 이름과 일치하는지 확인합니다. Scheduler Image 필드에 사용자 정의 스케줄러의 이미지 이름을 입력합니다.
중요Red Hat은 사용자 정의 보조 스케줄러 기능을 직접 지원하지 않습니다.
- 생성을 클릭합니다.
-
Operators
4.10.3.3. 보조 스케줄러를 사용하여 Pod 예약
보조 스케줄러를 사용하여 Pod를 예약하려면 Pod 정의에서 schedulerName
필드를 설정합니다.
전제 조건
-
cluster-admin
권한이 있는 클러스터에 액세스할 수 있습니다. - OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
- Red Hat OpenShift용 Secondary Scheduler Operator가 설치되어 있습니다.
- 보조 스케줄러가 구성되어 있습니다.
절차
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
-
워크로드
Pod로 이동합니다. - 포드 생성을 클릭합니다.
YAML 편집기에서 원하는 Pod 구성을 입력하고
schedulerName
필드를 추가합니다.apiVersion: v1 kind: Pod metadata: name: nginx namespace: default spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 schedulerName: secondary-scheduler 1
- 1
schedulerName
필드는 보조 스케줄러를 구성할 때 구성 맵에 정의된 이름과 일치해야 합니다.
- 생성을 클릭합니다.
검증
- OpenShift CLI에 로그인합니다.
다음 명령을 사용하여 Pod를 설명합니다.
$ oc describe pod nginx -n default
출력 예
Name: nginx Namespace: default Priority: 0 Node: ci-ln-t0w4r1k-72292-xkqs4-worker-b-xqkxp/10.0.128.3 ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 12s secondary-scheduler Successfully assigned default/nginx to ci-ln-t0w4r1k-72292-xkqs4-worker-b-xqkxp ...
-
이벤트 표에서
Successfully assigned <namespace>/<pod_name>과 유사한 메시지가 있는 이벤트를 <node_name>으로
찾습니다. "From" 열에서 기본 스케줄러가 아닌 보조 스케줄러에서 이벤트가 생성되었는지 확인합니다.
참고또한
openshift-secondary-scheduler-namespace
의secondary-scheduler-*
Pod 로그를 확인하여 보조 스케줄러에서 Pod를 예약했는지 확인할 수 있습니다.
4.10.4. Secondary Scheduler Operator 설치 제거
Operator를 제거하고 관련 리소스를 제거하여 OpenShift Container Platform에서 Red Hat OpenShift의 Secondary Scheduler Operator를 제거할 수 있습니다.
4.10.4.1. Secondary Scheduler Operator 설치 제거
웹 콘솔을 사용하여 Red Hat OpenShift용 Secondary Scheduler Operator를 설치 제거할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 클러스터에 액세스할 수 있습니다. - OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
- Red Hat OpenShift용 Secondary Scheduler Operator가 설치되어 있습니다.
절차
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
Red Hat OpenShift Operator용 Secondary Scheduler Operator를 설치 제거합니다.
-
Operators
설치된 Operator로 이동합니다. - Secondary Scheduler Operator 항목 옆에 있는 옵션 메뉴 를 클릭하고 Operator 설치 제거를 클릭합니다.
- 확인 대화 상자에서 설치 제거를 클릭합니다.
-
Operators
4.10.4.2. Secondary Scheduler Operator 리소스 제거
선택적으로 Red Hat OpenShift용 Secondary Scheduler Operator를 제거한 후 클러스터에서 관련 리소스를 제거할 수 있습니다.
사전 요구 사항
-
cluster-admin
권한이 있는 클러스터에 액세스할 수 있습니다. - OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
절차
- OpenShift Container Platform 웹 콘솔에 로그인합니다.
Secondary Scheduler Operator가 설치한 CRD를 제거합니다.
-
Administration
CustomResourceDefinitions 로 이동합니다. -
Name 필드에
SecondaryScheduler
를 입력하여 CRD를 필터링합니다. - SecondaryScheduler CRD 옆에 있는 옵션 메뉴 를 클릭하고 사용자 정의 리소스 정의 삭제 를 선택합니다.
-
Administration
openshift-secondary-scheduler-operator
네임스페이스를 제거합니다.-
관리
네임스페이스로 이동합니다. - openshift-secondary-scheduler-operator 옆에 있는 옵션 메뉴 를 클릭하고 네임스페이스 삭제 를 선택합니다.
-
확인 대화 상자에서 필드에
openshift-secondary-scheduler-operator
를 입력하고 삭제를 클릭합니다.
-
관리