모래성 말고 철옹성

[1분 쿠버네티스] Taint & Tolerations란? Kubernetes 노드 스케줄링 제약 본문

카테고리 없음

[1분 쿠버네티스] Taint & Tolerations란? Kubernetes 노드 스케줄링 제약

JDhyeok 2025. 8. 20. 22:11

Taints & Tolerations 이란?

Taint와 Tolerations 는 Kubernetes의 Pod 스케줄링 제약 조건을 정의하는 기능이다.

  • Taint: 노드에 "특정 Pod는 오지 마라"라는 표시
  • Tolerations: Pod가 특정 Taint를 무시하고 해당 노드에 스케줄링 될 수 있도록 허용

노드에 들어올 수 있는 Pod를 필터링 하는 기능이라고 생각하면 된다.

 

*Taint & Toleration을 직역하면 오염 & 관용 이라는 뜻이다. 즉, 노드를 오염시켜 Pod를 받지 않고, Pod에 오염을 참을 수 있는 관용을 부여한다 라고 보면 된다.

Kube-Scheduler의 주요 기능

  1. 노드 전용화 (Node Isolation)
    • 특정 워크로드만 실행하도록 노드를 전용으로 할당
  2. 리소스 보호 (Resource Protection)
    • 중요 리소스를 차지하지 않도록 일반 Pod의 접근을 제한
    • master노드에 일반 Pod를 위치시키지 않는 예시
  3. 장애 처리 (Failure Handling)
    • 장애 난 노드를 자동으로 격리

사용 예시

  • 노드에 Taint 추가
# node01에는 Toleration이 없는 Pod는 스케줄링되지 않음
kubectl taint nodes node01 key=value:NoSchedule
  • Pod에 Toleration 추가
# 위 node01에 스케줄링 될 수 있도록 만든 tolerations
tolerations:
- key: key
  operator: Equal
  value: value
  effect: NoSchedule

 

주의점

  • 잘못 설정하면 Pod가 계속 Pending 상태에서 멈출 수 있음
  • 운영 환경에서는 핵심적인 비즈니스가 있는 서비스의 전용 노드나 GPU노드에 사용

 

Taint & Tolerations를 잘 활용하면 Kubernetes 클러스터 자원 관리와 워크로드 격리를 정교하게 다룰 수 있게된다.

반응형
Comments