- Taint는 오점.
- 노드에 Taint를 설정해주는 것.
- Tolerations는 오점을 견딜 수 있는지.
- Pod가 노드의 오점을 견딜 수 있는지 설정해주는 것.
- 오점이 없으면 스케줄러는 Pod를 적절히 아무 노드에 할당할 수 있다.
- 오점이 있으면 오점을 견딜 수 없는 Pod는 그 노드에 할당할 수 없다.
- Pod가 Node의 오점을 견딜 수 있다고 해서, 그 Pod가 무조건 그 Node로 가는 것이 아니다.
- 이것은 nodeAffinity를 통해서 할 수 있다.
- Taints와 Tolerations는 그냥 Pod가 그 Node에 할당될 수 있는지만 설정하는 것이다.
- 마스터 노드에는 자동으로 Taint가 설정되어서 Pod가 할당되지 않는 것이다.
Node에 Taint 설정
kubectl taint nodes node-name key=value:taint-effect
- taint-effect
- Pod가 노드의 taint를 견디지 못하면 어떻게 할지
- NoSchedle
- PreferNoSchedule
- NoExecute
- 예시
kubectl taint nodes node1 app=blue:NoSchedule
Pod에 Toleration 설정
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
spec:
containers:
- name: nginx-container
image: nginx
tolerations:
- key: "app"
operator: "Equal"
value: "blue"
effect: "NoSchedule"
728x90
'클라우드' 카테고리의 다른 글
Monitor Kubernetes Cluster (0) | 2024.12.17 |
---|---|
Node Selector, Node Affinity (0) | 2024.12.16 |
Maual Scheduling (0) | 2024.12.16 |
Secret, ConfigMap (0) | 2024.12.07 |
환경 변수 (2) | 2024.11.28 |