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

  • Test out PodTopologySpread 🔽 #test
  • Rewrite PodTopologySpread 🔽 #rewrite

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é.