패스잇
인프라 & 클라우드 · 심화

대규모 Kubernetes 클러스터에서 특정 워크로드의 스케줄링 지연이 발생하거나, 노드 자원 활용률이 불균형하게 나타나는 문제가 지속될 때, 기본 스케줄러의 한계를 극복하고 최적의 스케줄링을 달성하기 위한 방안을 제시해 주십시오. 이에는 커스텀 스케줄러 구현, 스케줄러 확장(Scheduler Extender), 또는 고급 스케줄링 정책(Taints/Tolerations, Node Affinity/Anti-Affinity, PriorityClass)의 복합적인 활용이 포함될 수 있습니다.

힌트 · Kubernetes 스케줄링 파이프라인의 Predicate와 Priority 단계에 대한 이해를 바탕으로, 스케줄러 확장 포인트 활용 또는 Multi-Scheduler 구성 방안, 그리고 QoS 클래스 및 리소스 요청/제한 설정의 중요성을 강조할 수 있습니다.

커스텀 스케줄러Scheduler ExtenderTaints/TolerationsNode Affinity/Anti-AffinityPriorityClass

모범답안

대규모 클러스터에서 스케줄링 지연이나 자원 불균형 문제는 기본 스케줄러의 한계를 보여줍니다. 이를 해결하기 위해 저는 다음과 같은 복합적인 접근 방식을 고려할 것입니다.

먼저, 특정 워크로드의 요구사항이 복잡하거나 고도화된 경우, 커스텀 스케줄러를 구현하여 Predicate 및 Priority 로직을 세밀하게 조정할 수 있습니다. 예를 들어, 특정 하드웨어 가속기 사용이나 복잡한 네트워크 토폴로지 고려가 필요할 때 유용합니다.

또는, 기존 스케줄러의 기능을 확장하는 Scheduler Extender를 활용하여 외부 로직을 통합하는 것도 좋은 방법입니다. 이는 기존 스케줄러를 유지하면서 유연성을 확보할 수 있습니다.

이와 더불어, Taints/Tolerations, Node Affinity/Anti-Affinity, PriorityClass와 같은 고급 스케줄링 정책을 적극적으로 활용하여 워크로드와 노드 간의 관계를 명확히 정의하고, 우선순위를 관리하여 자원 활용률을 최적화할 것입니다. 특히, 특정 워크로드가 특정 노드에만 스케줄링되도록 하거나, 특정 워크로드 간의 격리를 보장하는 데 효과적입니다.

이러한 방안들을 워크로드의 특성과 클러스터 환경에 맞게 조합하여 적용함으로써, 스케줄링 지연을 줄이고 노드 자원 활용률을 균형 있게 개선할 수 있다고 생각합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Docker / Kubernetes 면접 질문

← Docker / Kubernetes 면접 질문 전체 보기