【问题标题】:Kubernetes : does different applications needs separate deployment and service file?Kubernetes:不同的应用程序需要单独的部署和服务文件吗?
【发布时间】:2019-12-24 09:24:44
【问题描述】:

我有3个微服务应用,应该部署在K8s中。 我需要为此创建 3 个部署文件和 3 个服务文件,还是将所有 3 个部署连接到一个文件(以及服务)?

【问题讨论】:

  • 对每个微服务使用单独的部署和服务。这样您就可以根据自己的要求扩展它们。模块化也保持这种方式。

标签: amazon-web-services kubernetes kubernetes-ingress kubernetes-pod


【解决方案1】:

您没有提供有关这些微服务的信息。

您可以在一个文件中执行此操作,但最佳做法是将每个 Applicataion / Microservice 放在单独的 Deployments 中。

目前可能只有 3 个microservices,但将来您可能会考虑添加新功能,并且需要新的microservices

如果您将每个microservice 放在不同的deployment 中,您将能够进行快速配置更改,而无需滚动许多行 YAML 代码(您不太可能在文件中犯语法错误)。 对特定的microservices 进行故障排除和管理它们之间的流量会更容易——您可以使用Istio 来做到这一点。

由于每个微服务将在不同的deployment 中,您将拥有更多的多功能性,因为您将能够创建一些initContainers,或者需要使用Horizontal Pod Autoscaler

此外,您无需仅限于Deployments。您还可以将StatefulSets 用于特定应用程序(即需要数据库的应用程序)。

您还可以创建自己的Helm 图表,该图表允许您使用一个命令部署应用程序,但所有部署都组织在目录中。

【讨论】:

  • @JithinKumarS 如果这对您有帮助,您可以考虑投票。
【解决方案2】:

您应该为每个服务创建部署和服务定义 YAML,并分别部署它们。

您还可以将所有部署和服务定义包含在一个 YAML 文件中,并一次性部署。

【讨论】:

    【解决方案3】:

    我拥有所有分离的文件,每个部署、服务、入口等一个文件...,每个实体一个文件。 我认为,如果您在集群中进行开发,最好将它们全部分开,这样更容易进行版本控制、更新和使用脚本/工具处理它们。

    我有一个开源的在线实验室/测试/博客集群,这里是主存储库: https://github.com/vicjicaman/microservice-realm

    你可以在这里看到我是如何分离所有实体的,我希望这可以作为参考案例对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      • 2022-01-23
      相关资源
      最近更新 更多