繁体   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