문제 현상 EKS 환경에서 특정 CronJob 실행 시 다음과 같은 메시지와 함께 Pod가 Pending 상태에 머무르며 일정 시간 이후에야 실행되는 현상이 발생했습니다: 원인 분석 이 메시지는 Kubernetes 스케줄러가 다음과 같은 조건 중 하나 이상으로 인해 Pod를 즉시 스케줄하지 못했음을 의미합니다: 1. 리소스 부족 2. 스케줄 조건 미충족 (Affinity, Toleration 등) 더 읽기
Affinity
EKS Kubernetes CronJob의 노드 분산 원리: 스케줄러 점수 기반 배치 완전 이해하기
본문 요약 (개요 흐름)
핵심 질문 EKS CronJob은 LB가 없이 어떻게 노드에 분산되는가?스케줄러는 어떤 기준으로 점수를 계산해 Pod을 배치하는가?
Kubernetes 스케줄러의 2단계 배치 알고리즘
점수 산정에 사용되는 주요 요소들 기준 설명 preferred nodeAffinity 특정 라벨 가진 노드를 선호 → 점수 +10~+100 podAntiAffinity 동일한 app의 Pod이 있으면 더 읽기
Kubernetes CronJob에서 soft affinity와 podAntiAffinity의 실제 작동 방식과 노드 분산 전략 이해하기
실전 운영 중 발생 가능한 핵심 질문들
핵심 개념 요약 개념 요약 preferredDuringSchedulingIgnoredDuringExecution soft 조건이므로 만족하지 않으면 무시하고 실행 podAntiAffinity 기준 라벨 Pod 템플릿 내 template.metadata.labels 기준 Completed, Terminating 상태 anti-affinity 대상에 포함됨 (Pod 리소스 살아 있으면 영향 줌) TTLSecondsAfterFinished Pod을 자동 GC 처리해 anti-affinity 영향 최소화 동일 더 읽기