
178
쿠버네티스 창시자에게 배우는 모범 사례 2판
이 장에서는 쿠버네티스 리소스를 관리하고 최적화하는 모범 사례를 소개한다. 워크로드 스
케줄링, 클러스터 관리, 파드 리소스 관리, 네임스페이스 관리, 애플리케이션 스케일링을 설
명하고, 어피니티, 안티-어피니티, 테인트, 톨러레이션, 노드셀렉터 등 쿠버네티스가 기본
제공하는 고급 스케줄링 기법을 자세히 다룬다.
리소스 리밋, 리소스 요청, 파드
QoS
,
PodDisruptionBudget
, 리밋레인지, 안티-어피니티
정책을 구현하는 방법도 알아보겠다.
8.1
쿠버네티스 스케줄러
쿠버네티스 스케줄러
scheduler
는 컨트롤 플레인에 위치하여 클러스터에 배포된 파드를 어떻게
배치할지 결정하는 주요 컴포넌트 중 하나다. 스케줄러는 클러스터의 제약조건과 유저가 지
정한 제약조건에 따라 리소스를 최적화하는데, 프레디킷
predicate
(단정)과 우선순위에 기반한
가점 알고리즘
scoring
algorithm
을 사용한다.
8.1.1
프레디킷
쿠버네티스가 스케줄링하기 위해 사용하는 첫 번째 함수는 어느 노드에 파드를 스케줄링할
지 결정하는 프레디킷이다. 프레디킷은
true/false
를 반환하는 강한 제약조건
hard
constraint
이
다. 예를 들어, 어떤 파드가
4GB
의 메모리를 요청했지만 노드가 이 요건을 충족할 수 없는 ...