2
我有關於容器內容器垃圾回收的問題。我有一個主容器和邊車容器在一個吊艙中運行。如果主貨櫃完成,但邊櫃仍在運行。 Kubernetes垃圾收集主要容器?我們能否保證主容器在垃圾收集前不會被垃圾收集?如果沒有,是否有辦法實現這一目標?Kubernetes中的容器垃圾回收
MaxPerPodContainer標誌如何與此相關?
我有關於容器內容器垃圾回收的問題。我有一個主容器和邊車容器在一個吊艙中運行。如果主貨櫃完成,但邊櫃仍在運行。 Kubernetes垃圾收集主要容器?我們能否保證主容器在垃圾收集前不會被垃圾收集?如果沒有,是否有辦法實現這一目標?Kubernetes中的容器垃圾回收
MaxPerPodContainer標誌如何與此相關?
從https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy:
甲PodSpec具有可能的值
Always
,OnFailure
,和一個Never
restartPolicy
字段。默認值是Always
。restartPolicy
適用於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"]
這不正是我期待的,因爲這更多的是restartpolicy ... – sytianhe