将数据库和应用程序放在同一Kubernetes窗格中的好处

时间:2018-12-14 21:23:06

标签: docker kubernetes kubernetes-pod

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

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

这会提高性能,还是将两个容器结合在一起的缺点会克服任何好处?

2 个答案:

答案 0 :(得分:1)

Pods,旨在将共享相同生命周期的容器放在一起。同一容器中的容器共享一些名称空间(如网络)和卷。
这样,将应用程序与其数据库耦合起来似乎是一个好主意,因为该应用程序可以通过本地主机等直接连接到数据库。但是事实并非如此!正如Diego Velez所指出的那样,您可能面临的第一个限制是扩展应用程序。如果将应用程序与数据库结合使用,则每当扩展应用程序时就不得不扩展数据库,这根本不是最佳选择,并且使您无法享受使用诸如kubernetes之类的容器编排器的主要好处之一。
一些好的用例是:

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

答案 1 :(得分:0)

让我们说您需要扩展您的应用程序(pod),将会发生的事情是数据库也将被扩展,这将导致错误,因为它没有设置为集群,而只是一个节点。 / p>