| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
Tags
- elasticsearch
- Observability
- AWS
- OS
- 데이터엔지니어
- Monitoring
- Kafka
- 커널
- Pub/Sub
- Network
- 시스템호출
- 엘라스틱서치
- 개발
- devsecops
- 대규모시스템
- SRE
- 개발자
- k8s
- 인프라
- 쿠버네티스
- 코테
- 스프링빈
- fork()
- 운영체제
- etcd
- tech
- 분산시스템
- Data Engineering
- Kubernetes
- it
Archives
- Today
- Total
모래성 말고 철옹성
[1분 쿠버네티스] Taint & Tolerations란? Kubernetes 노드 스케줄링 제약 본문

Taints & Tolerations 이란?
Taint와 Tolerations 는 Kubernetes의 Pod 스케줄링 제약 조건을 정의하는 기능이다.
- Taint: 노드에 "특정 Pod는 오지 마라"라는 표시
- Tolerations: Pod가 특정 Taint를 무시하고 해당 노드에 스케줄링 될 수 있도록 허용
노드에 들어올 수 있는 Pod를 필터링 하는 기능이라고 생각하면 된다.
*Taint & Toleration을 직역하면 오염 & 관용 이라는 뜻이다. 즉, 노드를 오염시켜 Pod를 받지 않고, Pod에 오염을 참을 수 있는 관용을 부여한다 라고 보면 된다.
Kube-Scheduler의 주요 기능
- 노드 전용화 (Node Isolation)
- 특정 워크로드만 실행하도록 노드를 전용으로 할당
- 리소스 보호 (Resource Protection)
- 중요 리소스를 차지하지 않도록 일반 Pod의 접근을 제한
- master노드에 일반 Pod를 위치시키지 않는 예시
- 장애 처리 (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