Docker 将数据库和应用程序放在同一Kubernetes吊舱中的好处

Docker 将数据库和应用程序放在同一Kubernetes吊舱中的好处,docker,kubernetes,kubernetes-pod,Docker,Kubernetes,Kubernetes Pod,我只知道库伯内特的最低限度。但是,我想知道在一个吊舱中运行两个容器是否有任何好处: 1个运行应用程序的容器(例如NodeJS应用程序) 1个运行相应本地数据库(例如数据库)的容器 这会提高性能吗?或者耦合两个容器的缺点会克服任何好处吗?假设您需要扩展应用程序(pod),会发生的情况是DB也会被扩展,这会导致错误,因为它没有设置为群集,而只是一个节点。,设计用于将共享同一生命周期的容器放在一起。同一pod中的容器共享一些名称空间(如网络)和卷。 这样,将应用程序与其数据库耦合看起来是个好主意,

我只知道库伯内特的最低限度。但是,我想知道在一个吊舱中运行两个容器是否有任何好处:

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

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

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

,设计用于将共享同一生命周期的容器放在一起。同一pod中的容器共享一些名称空间(如网络)和卷。
这样,将应用程序与其数据库耦合看起来是个好主意,因为应用程序可以通过localhost等连接到数据库,但事实并非如此!正如迭戈·韦雷斯(Diego Velez)所指出的,你可能面临的第一个限制之一是扩展你的应用程序。如果将应用程序与数据库相结合,则无论何时扩展应用程序,都会被迫扩展数据库,这根本不是最优的,并且会妨碍您享受使用kubernetes等容器编排器的主要好处之一。
一些好的用例包括:

  • 包含应用程序的容器+包含应用程序度量、ci代理等的代理的容器
  • CI/CD容器(如jenkins代理)+带有CI/CD工具的容器
  • 带有app的容器+带有代理的容器(如在istio中使用sidecar模式)