Taints and Tolerations

Describe about Taints and Tolerations

Taint is like a spray the we set set on Node after we spray on the Node we need to set toleration on Pod to make it can tolerant in that Node Example

From this example you will see Node 1 has taint blue and Node 2 , Node 3 has taint green.

So the Pod that tolerant for blue is A then Pod A will created on Node 1 but Pod B, C, and D it tolerant for green then it will got to Node 2 and Node 3 in order.

CheatSheet Command

  1. Taint Node: kubectl taint nodes <node_name> <key>=<value>:<taint_effect> There are 3 type of taint effect: NoSchedule, PreferNoSchedule and NoExecute

  2. Add the tolerant on Pod:

# Pod Template
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
  - name: nginx-container
    image: nginx
  tolerations:
  # all of below value need to have double quote
  - key: "app"  
    operator: "Equal" 
    value: "blue"
    effect: "NoSchedule"
  1. Remove taint from Node: kubectl taint node <node_name> <taint_name>:<taint_effect>-

NoSchedule

It mean avoid to create pod on the Node.

PreferNoSchedule It will avoid to have pod on the Node but it is not guarantee the Pod will be create on Node even the pod tolerant for taint on that Node

No Execute

It will avoid to have pod on the Node and If the existing pod does not tolerant for the taint it will be evict

Last updated