Kubernetes - Taints & Tolerations
Alasta 23 Juillet 2024 kubernetes kubernetes taint toleration
Description : Kubernetes, les taints et les tolérations
Kubernetes - Taints & Tolerations
Cela permet de définir des restrictions sur les pods pouvant être planifiés sur des nodes.
Utilisé pour des nodes avec des caractéristiques spécifiques.
La taint sur un node “indique” au pod que s’il ne tolère pas la taint, il n’est pas schédulé sur ce node.
Exemple, on taint un node avec “odeur=transpiration”, le pod doit tolérer (toleration) l’odeur de transpiration.
Taint
Ce sont les nodes que l’on taint. Taint d’un node:
Exemple:
Les différents taint-effect:
- NoSchedule: le pod ne sera pas programmé sur le node marqué par une taint si ce pod n’a pas la toleration associée. Les pods existant sur le node seront éjectés (sauf toleration adéquat).
- PreferNoSchedule: le système essaiera d’éviter de placer le pod sur le node marqué par une taint qui ne correspond pas à la toleration, mais ne le garanti pas.
- NoExecute: si le pod est déjà en cours d’exécution sur le node marqué par une taint et qu’il n’a pas la bonne toleration, il est alors expulsé. Doc officielle - taint & toleration.
Une best practice est de ne pas déployer de pod sur un node control plan.
Enlever une taint (le - à la fin de la taint):
Tolerance
La tolerance ne s’applique que sur les pods.
Positionner une tolération sur un pod:
L’option tolerationSeconds dans la toleration avec un effet à NoExecute permet de laisser le pod sur le node pendant X secondes avant d’être évincé.
Labels/Annotations/Taints connus et utilisés par Kubernetes.