Kubernetes - nodeSelector & nodeAffinity
Alasta 24 Juillet 2024 kubernetes kubernetes labels affinity
Description : Kubernetes, nodeSelector et nodeAffinity
Kubernetes - nodeSelector & nodeAffinity
Le nodeSelector et nodeAffinity permet de sélectionner le(s) node(s) qui hébergeront les pods.
nodeSelector
nodeSelector est une manière simple de sélectionner le node qui va accueillir le pod. Il suffit d’ajouter cet section à la définition de pod:
Le pod sera déployé sur un node avec le label size: large.
Les limitations de cet attribue ne permettent pas de sélection large ou medium, ou tous sauf small.
nodeAffinity
nodeAffinity est plus flexible.
Le pod doit être sur des nodes avec le label size = large ou medium et préfère les nodes avec un label another-node-label-key avec another-node-label-value comme valeur.
L’operator peut être In, NotIn, Exists (no value), DoesNotExist (no value), Gt & Lt.
Si nodeSelector et nodeAffinity sont spécifiés, les 2 contraintes doivent être satifaites.
Node Affinity Type
- requiredDuringSchedulingIgnoredDuringExecution
- preferredDuringSchedulingIgnoredDuringExecution
- requiredDuringSchedulingRequiredDuringExecution
DuringScheduling | DuringExecution | |
---|---|---|
1 | Required | Ignored |
2 | Preferred | Ignored |
3 | Required | Required |