首页 > 解决方案 > 将数据库和应用程序放在同一个 Kubernetes pod 中的好处

问题描述

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

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

标签: dockerkuberneteskubernetes-pod

解决方案


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

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

推荐阅读