Kubernetes Taints

Dans Kubernetes, chaque nodes peuvent avoir des teintes pour changer leur comportement. Il est possible de voir les teintes sur une node en faisant:

kubectl describe node [<node_name>]

Il y aura une section Taints qui liste toutes les teintes du node.

Un exemple de teinte est: node-role.kubernetes.io/control-plane:NoSchedule. Elle empêche des pods qui ne font pas partie de l’infrastructure de se faire exécuter dessus. Les 3 actions effets sont:

  1. NoSchedule, n’assigne aucun 1. Pods sur les nodes qui ont cette teintes. Si un Pod est déjà dessus, il continuera à s’exécuter.
  2. PreferNoSchedule, préfère ne pas s’exécuter sur les nodes avec cette teintes
  3. NoExecute, aucun Pods ne sera assigné à ces nodes, et les Pods qui sont déjà dessus seront expulsé s’ils n’ont pas de Tolerations.

Modification

Pour modifier les teintes d’une node, il est possible d’entrer kubeclt taint nodes [<node>] <taint>[-]. Il faut mettre un - à la fin pour retirer une teinte.

Exemple

Pour retirer la teinte qui empêche les nodes qui font partie du Control Plane, il faut faire:

kubectl taint nodes [ <master_node_name> | --all ] node-role.kubernetes.io/control-plane-

References

  1. taint-and-toleration