Pods
C’est la resource la plus petite qui peut être contrôler par 1. Kubernetes. Elle sert à contrôler 1 ou plusieurs container. La documentation de cette ressource ce trouve ici.
Réseau et Storage
Dans un Pod, les containers obtiennent une interface IP grâce au container Pause
. Un ou plusieurs volumes peuvent être attacher au Pod. Toutefois, il faut spécifier le chemin où le volume doit être attaché. Voir ici pour des exemples de comment attacher des volumes sur un Pod.
Configuration Scheduler
Il est possible de configurer les préférences de node pour le Pod. Il y a plusieurs choix.
NodeName
Ce paramètre contient le nom du Node que le Pod devrait s’exécuter. Le scheduler ajoute ce paramètre lorsqu’il à choisis la node idéal, mais il est possible de forcer une node en ajoutant le paramètre manuellement.
NodeSelector
C’est un sélecteur basée sur les labels du Node. Voici un exemple de la documentation.
Affinity & Anti-Affinity
Ces plus complexe que les autres paramètres.
Topology Spread Constraint
Scheduling
Il est possible de configurer comment un Pod sera assigné à une node. C’est des paramètre qui seront utilisé avec Kube-Scheduler.
NodeName et NodeSelector
C’est des champs qui permettent à un Pod d’assigner directement la node (ou groupe de nodes) sur laquelle il sera héberger. NodeSelector cherche dans les clé/valeur des labels des nodes.
Affinity et Anti-Affinity
Ça permet à définir une préférence au Pod. Si aucune node qu’il aurait préférer est disponible, il en utilisera une autre. La configuration se fais dans spec.affinity
d’un PodSpec.
Affinity et Anti-Affinity utilise les labels des nodes. podAffinity
essaie de mettre des Pods aussi près que possible, podAntiAffinity
fais l’inverse.
Il également possible de définir des règles de NodeAffinity
.
Taints et Tolerations
Une node peut avoir une Teinte qui ne permet pas à Pod de se faire assigner sur cette node. C’est dans le champs tolerations
d’un PodSpec qu’on peut autorisé un Pod à se faire assigné sur une node qui à une teinte.
SchedulerName
Si aucun des paramètres plus haut permet assez de flexibilité, un scheduler custom peut être assigné.