2017-10-20 159 views
2

我有關於容器內容器垃圾回收的問題。我有一個主容器和邊車容器在一個吊艙中運行。如果主貨櫃完成,但邊櫃仍在運行。 Kubernetes垃圾收集主要容器?我們能否保證主容器在垃圾收集前不會被垃圾收集?如果沒有,是否有辦法實現這一目標?Kubernetes中的容器垃圾回收

MaxPerPodContainer標誌如何與此相關?

回答

0

https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy

甲PodSpec具有可能的值AlwaysOnFailure,和一個NeverrestartPolicy字段。默認值是AlwaysrestartPolicy 適用於Pod中的所有容器。

實際上,這意味着爲吊艙如下:

  • restartPolicy: Never:如果一個容器終止,那麼所有其它容器將繼續運行
  • restartPolicy: OnFailure:如果一個容器處於錯誤狀態結束,然後該容器重新啓動;如果幹淨地終止(完成),那麼容器不重新啓動。在這兩種情況下,其他容器都繼續運行。如果所有容器乾淨地終止,Pod進入Completed狀態並保持這種狀態。
  • restartPolicy: Always:如果一個容器處於錯誤狀態終止那麼容器但是,你最有可能使用部署,這在波德模板責成restartPolicy: OnFailure重啓

。這意味着如果一個容器終止容器將被重新啓動。不可能有隻運行幾分鐘的容器。

取決於你正在嘗試做什麼initContainers可能是一個解決方案。

實驗也許有點用莢這樣的:

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

這不正是我期待的,因爲這更多的是restartpolicy ... – sytianhe