De https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy:
Un PodSpec a un champ restartPolicy
avec des valeurs possibles Always
, OnFailure
et Never
. La valeur par défaut est Always
. restartPolicy
s'applique à tous les conteneurs dans le pod.
En pratique, cela signifie que les éléments suivants pour pods:
restartPolicy: Never
: si un conteneur se termine alors tous les autres conteneurs vont continuer à courir
restartPolicy: OnFailure
: si un conteneur se termine dans un état d'erreur, ce conteneur est redémarré; si elle se termine proprement (se termine), le conteneur n'est pas redémarré. Dans les deux cas, les autres conteneurs continuent à fonctionner. Si tous les conteneurs se terminent proprement, le Pod passe à l'état Terminé et reste ainsi.
restartPolicy: Always
: si un conteneur se termine par un état d'erreur alors que le conteneur est redémarré
Cependant, vous utilisez probablement un déploiement, qui mandate restartPolicy: OnFailure
dans le modèle Pod. Cela signifie que si un conteneur se termine, les conteneurs seront redémarrés. Il n'est pas possible d'avoir un conteneur qui ne fonctionne que quelques minutes. Selon ce que vous essayez de faire, initContainers
pourrait être une solution.
expérimenter Peut-être un peu avec un Pod comme ceci:
kind: Pod
metadata:
name: busybox
spec:
restartPolicy: Always
containers:
- name: date
image: busybox
command: ["sh","-c","while date; do sleep 1; done"]
- name: sleep15
image: busybox
command: ["sh","-c","sleep 15; exit 1"]
Ce n'est pas exactement ce que je cherche, car cela est plus sur restartpolicy ... – sytianhe