[英]Container garbage collection in Kubernetes
我有一个关于吊舱内容器垃圾收集的问题。 我有一个在吊舱中运行的主容器和便车容器。 如果主容器完成但sidecar仍在运行。 Kubernetes垃圾会收集主要容器吗? 我们可以保证在杂物车完成之前不会收集主容器吗? 如果没有,有没有办法做到这一点?
MaxPerPodContainer标志与此有何关系?
从https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy :
PodSpec具有
restartPolicy
字段,其可能值为Always
,OnFailure
和Never
。 默认值为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.