为什么POD是部署的基本单位而不是容器?

时间:2019-04-06 14:42:56

标签: docker kubernetes

在Kubernetes中, POD 被视为单个部署单元,可能具有一个或多个容器,因此,如果我们缩放 POD 中的所有容器,则将分别缩放。

如果 POD 只有一个容器,则更容易缩放特定的 POD ,那么将一个或多个容器包装在 POD ?

2 个答案:

答案 0 :(得分:6)

来自documentation

  

Pods可用于托管垂直集成的应用程序堆栈(例如LAMP),但它们的主要动机是支持位于同一地点,受共同管理的帮助程序

最常见的示例是Sidecar容器,其中包含诸如日志传送实用程序之类的帮助程序。

可以找到更深层次的潜水here

答案 1 :(得分:2)

使用pod而不是直接使用容器的原因是kubernetes需要更多信息来编排restart policyliveness probereadiness probe等容器。 liveness probe定义了容器内的容器是否存在,restart policy定义了容器失败时的处理方法。 readiness probe定义容器已准备好开始投放。

因此,不是将这些属性添加到现有容器中,kubernetes决定将具有所有必要附加信息的包装器写入容器。

此外,Kubernetes支持多容器吊舱,这主要是对于边车集装箱(主要是日志或数据收集器)或主集装箱的代理而言是必需的。多容器容器的另一个优点是,它们可以具有非常紧密耦合的应用程序容器,它们一起共享相同的数据,相同的网络名称空间和相同的IPC名称空间,如果他们选择不使用任何包装的容器直接使用容器,则不可能。

以下是一篇非常不错的文章,为您简要介绍一下:

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