【问题标题】:What are the dis advantages of putting multiple containers in a pod?将多个容器放在一个 pod 中的缺点是什么?
【发布时间】:2020-05-08 12:52:16
【问题描述】:

我知道在一个 pod 中拥有多个容器的优点,但拥有多个容器的缺点是什么。我们有 20k 的 pod prod 要求,我们当前的基础设施支持一个命名空间最多 900 个 pod。这是满足此请求的最佳方法。

【问题讨论】:

    标签: kubernetes containers


    【解决方案1】:

    我不是 devops 人,但从开发人员的角度来看:

    如果你在 POD 中有很多容器:

    • 您应该注意:生命周期问题 - 哪个容器先启动,哪个容器先结束,等等

    • 如何评估 pod 作为逻辑单元的“可操作性”。如果 pod 中有一个容器,那么它是明确的 - 如果容器运行 - 没关系。但是如果你有很多,你定义什么样的探针(准备就绪,活跃度)?如果一个容器死了会发生什么,整个 pod 还可以运行吗?

    • 在 kubernetes 集群中,小 pod 的副本可能比大型 pod 更容易找到(有许多容器,因此可能会消耗更多资源)

    • 您牺牲了潜在的可扩展性灵活性。假设容器 A 和 B 在同一个 pod 中。如果您只想横向扩展容器 A 怎么办。

    • 与上述相同的项目适用于版本管理灵活性(推出、金丝雀版本、回退到以前的版本 - 所有这些)

    • 您必须考虑从 pod 内的容器收集日志/指标的解决方案。根据实际的技术堆栈,这可能容易或乏味,但无论如何这是您必须解决的问题。可以说,当您在 pod 中有多个容器时,解决方案可能会变得更加复杂。

    • kubectl 的操作不太方便。好的,这是次要的,但仍然如此。您将始终必须添加 -c 标志。想查看 pod 的日志吗?添加-c <container-name>。想做kubectl exec -it - 再次,-c <container-name>

    当然,有时运行 sidecar 容器是一种有效的情况(例如,对于服务混搭)。但总的来说,它是工作的工具。

    有趣的是,我发现an article 谈到了赋予边车集装箱一种“特殊态度”。这可能有点相关,尽管从我理解的问题来看,如果我没听错的话,你不会考虑“边车”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-15
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-31
      • 2021-03-28
      相关资源
      最近更新 更多