我只知道最基本的 Kubernetes。但是,我想知道在单个 pod 中运行 2 个容器是否有任何好处:
- 1 运行应用程序的容器(例如 NodeJS 应用程序)
- 1 运行相应本地数据库的容器(例如 PouchDB 数据库)
这会提高性能还是耦合两个容器的缺点会克服任何好处?
我只知道最基本的 Kubernetes。但是,我想知道在单个 pod 中运行 2 个容器是否有任何好处:
这会提高性能还是耦合两个容器的缺点会克服任何好处?
Pod旨在将共享相同生命周期的容器放在一起。同一个 pod 中的容器共享一些命名空间(如网络)和卷。
这样,将应用程序与其数据库耦合看起来是个好主意,因为应用程序可以通过 localhost 等连接到数据库。但事实并非如此!正如 Diego Velez 所指出的,您可能面临的首要限制之一是扩展您的应用程序。如果您将应用程序与数据库耦合在一起,那么每当您扩展应用程序时,您就不得不扩展您的数据库,这根本不是最佳的,并且会阻止您从使用容器编排器(如 kubernetes)的主要好处之一中受益。
一些好的用例是:
假设您需要扩展您的应用程序(pod),会发生什么情况是数据库也将被扩展,这将导致错误,因为它没有设置为集群,只是一个节点。