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



我只知道Kubernetes的最低限度。然而,我想知道在一个吊舱中运行两个容器是否有任何好处:

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

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

Pods的设计目的是将共享相同生命周期的容器放在一起。同一pod中的容器共享一些名称空间(如网络(和卷
通过这种方式,将应用程序与其数据库耦合可能是一个好主意,因为应用程序可以通过localhost等连接到数据库。但事实并非如此!正如Diego Velez所指出的,你可能面临的第一个限制是扩展你的应用程序。如果你将你的应用程序与数据库相结合,那么每当你扩展应用程序时,你都会被迫扩展数据库,这根本不是最佳的,并使你无法享受使用kubernetes这样的容器协调器的主要好处之一
一些好的用例是:

  • 带有应用程序的容器+带有应用程序度量、ci代理等代理的容器
  • CI/CD容器(如jenkins代理(+带有CI/CD工具的容器
  • 带有应用程序的容器+带有代理的容器(就像istio中使用sidecar模式一样(

假设您需要缩放应用程序(pod(,那么DB也会被缩放,这将导致错误,因为它没有被设置为集群,只是一个节点。

最新更新