gpt4 book ai didi

docker - Kubernetes中的容器垃圾收集

转载 作者:行者123 更新时间:2023-12-02 11:49:11 24 4
gpt4 key购买 nike

我有一个关于 pods 内容器垃圾收集的问题。我有一个在 pods 中运行的主容器和便车容器。如果主容器完成但sidecar仍在运行。 Kubernetes垃圾会收集主要容器吗?我们可以保证在杂物车完成之前不会收集主容器吗?如果没有,有没有办法做到这一点?

MaxPerPodContainer标志与此有何关系?

最佳答案

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

A PodSpec has a restartPolicy field with possible values Always, OnFailure, and Never. The default value is Always. restartPolicy applies to all Containers in the Pod.



实际上,这意味着 和Pod 的含义如下:
  • restartPolicy: Never:如果一个容器终止,那么所有其他容器将继续运行
  • restartPolicy: OnFailure:如果一个容器以错误状态终止,则该容器将重新启动;否则,容器将重新启动。如果干净终止(完成),则不会重新启动容器。在这两种情况下,其他容器都将继续运行。如果所有容器干净地终止,则Pod会进入Completed状态并保持原状。
  • restartPolicy: Always:如果一个容器终止于错误状态,则该容器将重新启动

  • 但是,您最有可能使用 部署,它在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"]

    关于docker - Kubernetes中的容器垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46857219/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com