Description : Kubernetes, Pod avec plusieurs containers
Multi container pods
Multi containers
Dans un pod avec un environnement multi-container, chaque container lance un process tout au long de son cycle de vie.
Un exemple peut être le besoin d’avoir une application et un agent de logs, si un des deux containers crash, le pod sera recréé.
Exemple
Manifest avec 2 containers, le second fini avant le premier et force le restart du pod:
initContainers
Parfois il peut être necessaire qu’un des containers ait fini son traitement pour démarrer le second, exemple, un process qui récupère du code ou un binaire dans un repos que l’application va ensuite utiliser.
Cette tâche s’exécute seulement une fois au démarrage du pod, pour cela il faut utiliser initContainers.
Il est possible de mettre plusieurs containers dans l’initContainers, dans ce cas, les containers seront exécutés les un après les autres dans l’ordre de déclaration.
Si un des containers, crash, Kubernetes redémarrera le pod jusqu’à ce que l’initContainers soit démarré avec succès.
Quelques logs:
Exemple avec 2 containers dans un initContainers
Logs avec un container en erreur (modifier le 30 d’un sleep avec une chaîne de caractère):
Cas Sidecar
Cas comme par exemple pour un logger.
Il est possible d’utiliser le initContainer et restartPolicy à Always.