Kubernetes集装箱垃圾收集

我有一个关于容器内垃圾收集的问题。 我有一个主容器和边车容器在一个吊舱中运行。 如果主货柜完成,但边柜仍在运行。 Kubernetes垃圾收集主要容器? 我们可以保证主箱不会被垃圾收集,直到边车结束? 如果没有,是否有办法实现这一点?

MaxPerPodContainer标志如何与此相关?

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

PodSpec有一个可能值为AlwaysOnFailureNeverrestartPolicy字段。 默认值是AlwaysrestartPolicy适用于Pod中的所有容器。

在实践中,这意味着以下的豆荚

  • restartPolicy: Never :如果一个容器终止,那么所有其他容器将继续运行
  • restartPolicy: OnFailure :如果一个容器以错误状态终止,那么该容器重新启动; 如果干净地终止(完成),则容器不重新启动。 在这两种情况下,其他容器保持运行。 如果所有的容器干净地结束Pod进入完成状态并且保持那样。
  • restartPolicy: Always :如果一个容器终止于错误状态,那么该容器重新启动

但是,您最有可能使用部署 ,该部署要求Pod模板中的restartPolicy: OnFailure 。 这意味着如果一个容器终止,容器将被重新启动。 有一个只能运行几分钟的容器是不可能的。

根据你正在尝试做什么initContainers可能是一个解决scheme。

也许用这样的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"]