簡體   English   中英

Kubernetes中的容器垃圾收集

[英]Container garbage collection in Kubernetes

我有一個關於吊艙內容器垃圾收集的問題。 我有一個在吊艙中運行的主容器和便車容器。 如果主容器完成但sidecar仍在運行。 Kubernetes垃圾會收集主要容器嗎? 我們可以保證在雜物車完成之前不會收集主容器嗎? 如果沒有,有沒有辦法做到這一點?

MaxPerPodContainer標志與此有何關系?

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

PodSpec具有restartPolicy字段,其可能值為AlwaysOnFailureNever 默認值為Always restartPolicy適用於Pod中的所有容器。

實際上,對於Pod而言,這意味着:

  • restartPolicy: Never :如果一個容器終止,則所有其他容器將繼續運行
  • restartPolicy: OnFailure :如果一個容器以錯誤狀態終止,則該容器將重新啟動;否則,容器將重新啟動。 如果干凈終止(完成),則不會重新啟動容器。 在這兩種情況下,其他容器都將繼續運行。 如果所有容器都干凈地終止,則Pod會進入Completed狀態並保持原狀。
  • restartPolicy: Always :如果一個容器以錯誤狀態終止,則該容器將重新啟動

但是,您最有可能使用Deployment ,該部署在Pod模板中強制要求restartPolicy: OnFailure 這意味着如果容器終止,則將重新啟動容器。 只能運行幾分鍾的容器是不可能的。

根據您要嘗試執行的操作, initContainers可能是一個解決方案。

也許可以像下面這樣試驗Pod:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM