1

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

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

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

4

2 回答 2

2

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

  • 带有应用程序的容器 + 带有用于应用程序指标、CI 代理等代理的容器。
  • CI/CD 容器(如 jenkins 代理)+ 带有 CI/CD 工具的容器。
  • 带有 app 的容器 + 带有代理的容器(就像在 istio 中使用 sidecar 模式一样)。
于 2018-12-15T02:19:26.510 回答
0

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

于 2018-12-14T21:27:37.193 回答