Taints-And-Tolerations
1 Taint
- Taint와 Toleration는 함께 작동하여 특정한 노드에 포드가 배치되지 않도록 한다.
- 하나 이상의 Taint가 노드에 적용되면 Taint에 대한 Toleration이 없는 파드는 해당 노드에 배치되지 않는다.
예시
- 기본적으로 클러스터의 마스터 노드는 Taint가 적용되어 컨트롤 플레인 파드만 배치할 수 있다.
- 테인트는
<key>=<value>:<effect>
형태로 표시된다.- key :
node-role.kubernetes.io/control-plane
- value :
null
- effect:
NoSchedule
- key :
- 아래와 같이 coredns 파드는 Taint에 Toleration이 있어 마스터 노드에 배치될 수 있다.
$ kubectl describe node master-node
...
Taints: node-role.kubernetes.io/control-plane:NoSchedule
...
$ kubectl describe pod coredns-565d847f94-44bl5 -n kube-system
...
Tolerations: CriticalAddonsOnly op=Exists
node-role.kubernetes.io/control-plane:NoSchedule
node-role.kubernetes.io/master:NoSchedule
node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
...