https://kubernetes.io/ko/docs/concepts/scheduling-eviction/taint-and-toleration/
https://gruuuuu.github.io/cloud/k8s-taint-toleration/
이 강의에서 우리는 관계에서 주목, 제한 할수 있는지에 대해 논의한다.
비유: 벌레와 사람 (= Pod vs Node)
Taints and Tolerations는 보안이나 침입과 아무 관련이 없다. 스케줄링에 있어서, pod 를 node 에 할당할 때 이용된다.
taint: 비밀번호 486에 걸린 나 / tolerations: 너
taint : 노드마다 설정가능. 설정한 노드에는 pod이 스케줄되지 않음
toleration : taint를 무시할수있
$kubectl taint nodes [node-name] [key]=[value]:[taint-effect]
- `taint-effect`: what happens to PODs that do not tolerate this taint?
- NoSchedule : 일정 없음
- PreferNoSchedule : 일정없음을 선호
- NoExecute : 실행안함.
$kubectl taint nodes node1 app=myapp:NoSchedule
node/node1 tainted
NoSchedule
: toleration이 없으면 pod이 스케쥴되지 않음, 기존 실행되던 pod에는 적용 안됨(예. master node)
$kubectl describe node kubemaster | grep Taint
Taints: node-role.kubernetes.io/master:NoSchedule
# 대소문자 주의ㅏ ㅅ
PreferNoSchedule
: toleration이 없으면 pod을 스케줄링안하려고 하지만 필수는 아님, 클러스터내에 자원이 부족하거나 하면 taint가 걸려있는 노드에서도 pod이 스케줄링될 수 있음
NoExecute
: toleration이 없으면 pod이 스케줄되지 않으며 기존에 실행되던 pod도 toleration이 없으면 종료시킴.