Taints ?
- 비유하자면, 사람이 벌레에게 물리지 않기위해 몸에 해충제를 뿌리는 것과 같다.
- Node에 Taint를 설정함으로써, pod가 노드에 할당되지 않도록 막는다.
- 완전히 규제를 하는 것은 아니기 때문에, Scheduling 상 할당이 될 수도 있다. (설정으로 조정가능)
Tolerations?
- 위의 이미지에서, Taint를 위와 같이 설정하였을 때, D에게 하는 작업이 Toleration 이다.
- D는 Node 1에 할당될 수 있도록 작업을 거쳤다. 따라서 D만 할당될 수 있다.
Node에 Taint 부여하기
# kubectl taint nodes node-name key=value:taint-effect
=> taint-effect : 이 taint 를 설정하였고, 이 taint를 무시하고 할당된 pod에 어떤 영향을 줄지 결정. 3개의 영향을 설정할 수 있다.
* NoSchedule : taint(규제)에 대해 toleration(저항) 이 없다면 스케줄 되지 않는다.
* PreferNoSchedule : 되도록 스케줄되지 않도록 하지만, 보장되지는 않는다.
* NoExecute : taint에 대해 toleration이 없다면 스케줄되지 않으며, 이미 할당된 pod가 있다면 삭제된다. (즉, 저항이 없으면 실행 불가함)
Node에 Taint를 부여하고, pod에 toleration을 부여하는 것은 위와같이 진행할 수 있다.
이 때 주의해야할 점은, pod에 toleration 부여 시, "" 를 꼭 붙여야 한다.(더블 코드)
★ 주의해야할 점은, Taints와 Tolerations은 특정 노드로 배치를 하도록 의도를 하는 것은 아니다. 해당 노드에 특정한 노드가 배정되지 않는 것에 초점을 맞추어야 한다.
위 이미지에서, D는 Node 1,2,3 에 모두 할당이 될 수 있다는 의미이다. 단, A/B/C 는 2와 3에만 할당 가능하다.
참고 사항 - Master Node
Master Node에는 Pod 생성이 불가하다. 이는 Taints 설정이 존재하기 때문.
'IT > CKA' 카테고리의 다른 글
CKA 준비과정 - Scheduling (5) / 리소스 요구사항과 한도 (0) | 2023.05.20 |
---|---|
CKA 준비과정 - Scheduling (4) / Node selectors, Node Affinity (1) | 2023.05.14 |
CKA 준비과정 - Scheduling (2) / Labels and Selectors (0) | 2023.05.13 |
CKA 준비과정 - Scheduling (1) (0) | 2023.05.13 |
CKA 준비과정 - Kubernetes 개념 (8) / Imperative vs Declarative (0) | 2023.05.09 |