【问题标题】:The safe practice is to put one container in one pod. Then what was the motivation behind inventing pods in kubernetes?安全的做法是将一个容器放在一个 pod 中。那么在 kubernetes 中发明 pod 的动机是什么?
【发布时间】:2019-01-08 15:46:05
【问题描述】:

我们在 docker 中将容器作为最小单元,在 kubernetes 中将 pod 作为最小单元。安全的做法是我们应该在一个 pod 中保留一个容器。所以它是一回事,即 pod 和容器的行为相同(一个容器中的一个容器)。那么如果要将一个容器放在一个 pod 中,为什么要创建 pod。我们本可以使用容器本身。

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    使用 pod 而不是直接使用容器的原因是 kubernetes 需要更多信息来编排容器,例如 restart policyliveness probereadiness probeliveness probe 定义 pod 内的容器是否处于活动状态,restart policy 定义当容器失败时如何处理。 readiness probe 定义容器已准备好开始服务。

    因此,kubernetes 没有将这些属性添加到现有容器中,而是决定在容器上编写包含所有必要附加信息的包装器。

    另外,Kubernetes 支持多容器 pod,这主要需要 sidecar containers 主要用于主容器的日志或数据收集器或代理。多容器 pod 的另一个优点是它们可以将非常紧密耦合的应用程序容器共享在一起,共享相同的数据、相同的网络命名空间和相同的 IPC 命名空间,如果他们选择直接使用没有任何包装器的容器,这是不可能的。

    以下是非常好的文章:

    https://www.mirantis.com/blog/multi-container-pods-and-container-communication-in-kubernetes/

    希望这能给你一个简短的想法。

    【讨论】:

      【解决方案2】:

      虽然一个 pod 可能通常是一个容器,但它们不是这样非常有用。具体来说,Pods 的大部分设计都起源于 Borg,这是 Google 的内部容器管理工具。它有一个类似的系统,称为“allocs”,随着时间的推移,他们发现它们对我们现在所说的“sidecar 容器”很有用,小型支持服务可以协助主容器进行日志记录、指标、网络支持等。你可以查看有关 Borg 的 Kubernetes 功能历史的更多信息,请访问 https://kubernetes.io/blog/2015/04/borg-predecessor-to-kubernetes/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-12
        • 1970-01-01
        • 1970-01-01
        • 2018-07-31
        • 2021-08-10
        • 2017-05-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多