在3个不同的容器中运行应用程序的3个组件

时间:2019-03-06 07:22:55

标签: node.js deployment kubernetes google-cloud-platform

我有一个无状态应用,在同一代码库中有3个组件,分别是x,y,z。每个组件都将通过检查环境变量来运行。我想使用带有3个副本容器的kind: Deployment yaml配置在 GCP 上的 Kubernetes 上部署它。如何确保每个组件都具有一个专用的容器? 可以在单个部署文件上完成吗?

3 个答案:

答案 0 :(得分:0)

正如@Ivan Aracki在评论中提到的,最好的方法是将每个应用程序组件与适当的部署对象区分开,以确保在此处分配Pod。

答案 1 :(得分:0)

如上述Ivan所述,部署三个部署,每个部署分别用于x,y和z。

您可以对三个部署使用相同的映像,只需为每个部署传递不同的环境变量/值即可部署特定组件。您可能必须在容器启动脚本中构建一些逻辑,才能从环境变量中检索值并启动所需的组件

答案 2 :(得分:0)

据我了解,您的要求表明您在一个解决方案中拥有三个流程应用程序代码库。请确定您提到的三个组件是独立的流程组件,或者仅仅是层前端,服务,DAL等,甚至是层,例如具有前端Web,API和后端层的典型三层体系结构应用程序,但是为了简单起见,我们将其称为三个微服务或服务...

无论是哪种情况,docker的最佳实践,kubernetes托管的微服务模式都建议:

  1. 每个进程小型应用程序的容器(不是单片)

  2. 尽管每个吊舱可以有多个容器,建议每个吊舱保留一个容器-吊舱内可以有三个容器

  3. 您可以为组件应用程序提供三个Pod,每个Pod可以重构为三个独立的独立进程。
  4. 每个服务有一个Yaml文件,并且在所有单独的行上都用---分隔了所有相关对象
  5. 在单个容器中的三个容器或每个服务中的三个容器将很容易相互访问

希望这会有所帮助。