【问题标题】:Benefit to placing Database and Application in same Kubernetes pod将数据库和应用程序放在同一个 Kubernetes pod 中的好处
【发布时间】:2018-12-14 21:23:05
【问题描述】:

我只知道最基本的 Kubernetes。但是,我想知道在一个 pod 中运行 2 个容器是否有任何好处:

  • 1 运行应用程序的容器(例如 NodeJS 应用程序)
  • 1 容器运行相应的本地数据库(例如 PouchDB 数据库)

这是否会提高性能,或者耦合两个容器的缺点会克服任何好处?

【问题讨论】:

    标签: docker kubernetes kubernetes-pod


    【解决方案1】:

    Pods,旨在将共享相同生命周期的容器放在一起。同一个 pod 中的容器共享一些命名空间(如网络)和卷。
    这样,将应用程序与其数据库耦合看起来是个好主意,因为应用程序可以通过 localhost 等连接到数据库。但事实并非如此!正如 Diego Velez 所指出的,您可能面临的首要限制之一是扩展您的应用程序。如果您将应用程序与数据库耦合在一起,那么每当您扩展应用程序时,您就不得不扩展您的数据库,这根本不是最优的,并且会妨碍您从使用容器编排器(如 kubernetes)的主要好处之一中受益。
    一些很好的用例是:

    • 带有应用的容器 + 带有用于应用指标、CI 代理等的代理的容器。
    • CI/CD 容器(如 jenkins 代理)+ 带有 CI/CD 工具的容器。
    • 带有应用程序的容器 + 带有代理的容器(就像在 istio 中使用 sidecar 模式一样)。

    【讨论】:

      【解决方案2】:

      假设您需要扩展您的应用程序(pod),会发生什么情况是数据库也将被扩展,这将导致错误,因为它没有设置为集群,只是一个节点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-16
        • 2022-08-10
        • 2019-05-27
        • 1970-01-01
        • 1970-01-01
        • 2020-04-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多