2017-10-20 49 views
2

J'ai une question concernant la collecte des ordures dans un conteneur. J'ai un conteneur principal et un conteneur sidecar fonctionnant dans un pod. Si le conteneur principal se termine mais que le sidecar est toujours en cours d'exécution. Est-ce que les ordures de Kubernetes rassembleraient le conteneur principal? Pouvons-nous garantir que le conteneur principal ne sera pas ramassé avant la fin du side-car? Sinon, y a-t-il moyen d'y parvenir?Collecte des ordures dans les conteneurs à Kubernetes

Comment l'indicateur MaxPerPodContainer se rapporte-t-il à cela?

Répondre

0

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"] 
+0

Ce n'est pas exactement ce que je cherche, car cela est plus sur restartpolicy ... – sytianhe