위키득계정 ↗
기술

Descheduler

Descheduler기술
대상 환경
Kubernetes
주요 동작
정책에 따른 파드 축출
후속 배치
기본 스케줄러에 위임
실행 방식
Job과 CronJob 및 Deployment
Descheduler는 Kubernetes에서 현재 배치가 정책에 맞지 않게 된 파드를 찾아 축출하는 도구다. 대체 파드를 직접 배치하지 않으며 이후의 배치는 Kubernetes 스케줄러가 맡는다.

최초 배치 이후의 변화

스케줄러는 파드가 배치될 때의 클러스터 상태를 기준으로 노드를 선택한다. 이후 노드가 추가되거나 레이블과 테인트가 달라지고 자원 사용이 변하면 처음의 배치가 덜 적절해질 수 있다. Descheduler는 이런 상황에서 정책에 따라 이동 대상으로 삼을 파드를 찾는다.

직접 이동과 축출의 차이

Descheduler는 실행 중인 파드를 다른 노드로 그대로 옮기는 도구가 아니다. 정책에 따라 파드를 축출하며 대체 파드의 배치는 기본 스케줄러에 의존한다. 따라서 축출 이후 어떤 파드가 다시 만들어지고 어디에 배치될지는 워크로드의 관리 방식과 스케줄링 조건에 영향을 받는다.

정책과 운영 범위

클러스터 안에서 Job과 CronJob, Deployment로 실행할 수 있다. 사용할 전략과 축출 대상을 정책으로 설정하며 노드와 네임스페이스 등의 범위에 적용할 제한도 다룬다. 운영에서는 실행 버전에 맞는 정책 문서를 사용하고 축출이 서비스 가용성에 미치는 영향을 함께 검토해야 한다.

관련 문서

Reloader / Goldilocks / Popeye Kubernetes 검사 도구