16.3. 일정 변경
16.3.1. 개요
예약 취소는 특정 정책에 따라 Pod를 제거하여 보다 적절한 노드에 Pod를 다시 예약할 수 있도록 합니다.
클러스터는 다양한 이유로 이미 실행 중인 Pod를 스케줄링하고 다시 스케줄링할 수 있습니다.
- 노드가 활용도가 낮거나 과도하게 사용됨.
- 오염 또는 라벨과 같은 Pod 및 노드 선호도 요구 사항이 변경되었으며, 원래 일정 결정이 더 이상 특정 노드에 적합하지 않습니다.
- 노드 장애로 Pod를 이동해야 합니다.
- 새 노드가 클러스터에 추가되었습니다.
Descheduler는 제거된 Pod의 교체를 예약하지 않습니다. 제거된 Pod에 대해 스케줄러 에서 이 작업을 자동으로 수행합니다.
완전히 작동하는 클러스터에 중요하지만 마스터가 아닌 일반 클러스터 노드에서 실행되는 DNS와 같은 여러 핵심 구성 요소가 있다는 점에 유의해야 합니다. 구성 요소가 제거되면 클러스터가 제대로 작동하지 않을 수 있습니다. Descheduler가 이러한 Pod를 제거하지 않도록 하려면 scheduler.alpha.kubernetes.io/critical-pod
주석을 Pod 사양에 추가하여 Pod를 중요한 Pod로 구성합니다.
Descheduler 작업은 중요한 Pod로 간주되어 Descheduler Pod가 Descheduler Pod가 제거되지 않도록 합니다.
Descheduler 작업 및 Descheduler Pod는 기본적으로 생성된 kube-system
프로젝트에 생성됩니다.
Descheduler는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.
Descheduler는 다음 유형의 Pod를 제거하지 않습니다.
-
중요한 Pod(
scheduler.alpha.kubernetes.io/critical-pod
주석 포함). - Pod(독립 실행형 모드에서정적 및 미러 Pod 또는 Pod)는 복제 세트, 복제 컨트롤러, 배포 또는 작업(이러한 Pod가 재생성되지 않기 때문에)과 연결되어 있지 않습니다.
- DaemonSet과 연결된 Pod.
- 로컬 스토리지가 있는 pod
- PDB(Pod Disruption Budget)가 적용되는 Pod 는 PDB를 위반하는 경우 제거되지 않습니다. Pod는 제거 정책을 사용하여 제거할 수 있습니다.
Burstable 및 Guaranteed Pod보다 최상의 Pod가 제거됩니다.
다음 섹션에서는 Descheduler를 구성하고 실행하는 프로세스를 설명합니다.
- 역할을 만듭니다.
- 정책 파일에서 일정 변경 동작을 정의합니다.
- 정책 파일을 참조할 구성 맵을 생성합니다.
- Descheduler 작업 구성을 생성합니다.
- Descheduler 작업을 실행합니다.