2017-10-20 187 views
2

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

MaxPerPodContainer标志如何与此相关?

回答

0

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

甲PodSpec具有可能的值AlwaysOnFailure,和一个NeverrestartPolicy字段。默认值是AlwaysrestartPolicy 适用于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"] 
+0

这不正是我期待的,因为这更多的是restartpolicy ... – sytianhe