Kubernetes 스케줄링 프로세스

Kubernetes 스케줄링 프로세스 A workflow diagram generated by Archify. 01 / 스케줄링 큐 02 / 필터링 단계 (Filtering) 03 / 점수 매기기 단계 (Scoring) 04 / 바인딩 단계 (Binding) EX / 스케줄링 불가 · 재시도 스케줄링 시작 · 새 Pod 생성 · 스케줄링 큐 스케줄링 시작 새 Pod 생성 스케줄링 큐에 Pod 추가 · 대기 중인 Pod · 스케줄링 큐 스케줄링 큐에 Pod 추가 대기 중인 Pod 필터링 단계 · 적합한 노드 후보 선별 · 필터링 단계 (Filtering) 필터링 단계 적합한 노드 후보 선별 적합한 노드 있음? · 필터 통과 노드 확인 · 필터링 단계 (Filtering) 적합한 노드 있음? 필터 통과 노드 확인 점수 매기기 단계 · 노드별 0-100점 부여 · 점수 매기기 단계 (Scoring) 점수 매기기 단계 노드별 0-100점 부여 최고 점수 노드 선택 · 가중치 적용 최종 점수 · 점수 매기기 단계 (Scoring) 최고 점수 노드 선택 가중치 적용 최종 점수 바인딩 단계 · API로 Pod-노드 바인딩 · 바인딩 단계 (Binding) 바인딩 단계 API로 Pod-노드 바인딩 스케줄링 완료 · 노드에 Pod 배치 · 바인딩 단계 (Binding) 스케줄링 완료 노드에 Pod 배치 재시도 큐에 추가 · 이후 다시 스케줄링 시도 · 스케줄링 불가 · 재시도 재시도 큐에 추가 이후 다시 스케줄링 시도 스케줄링 불가능으로 표시 · Unschedulable · 스케줄링 불가 · 재시도 스케줄링 불가능으로 표시 Unschedulable 예 아니오 재시도 Legend 스케줄러 단계 판단 · 예외 처리 스케줄링 큐 시작 / 완료

필터링 단계 플러그인

  • • 노드 리소스 적합성
  • • 노드 이름
  • • 노드 스케줄 가능 여부
  • • 노드 어피니티
  • • 테인트 · 톨러레이션

점수 매기기 단계 플러그인

  • • 리소스 균형 할당
  • • 이미지 지역성
  • • Pod 간 어피니티
  • • 노드 어피니티

단계별 규칙

  • • 필터 하나라도 실패하면 해당 노드는 후보에서 제외
  • • 점수 플러그인마다 0-100점을 부여하고 가중치로 최종 점수 계산
  • • 최고 점수 노드에 Pod를 할당하고 Kubernetes API로 바인딩 정보 업데이트