Kubernetes:不同的应用程序是否需要单独的部署和服务文件?

时间:2019-12-24 09:24:44

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

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

您可以在一个文件中完成此操作,但是最佳实践是将每个Applicataion / Microservice放在单独的Deployments中。

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

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

由于每个微服务将位于不同的deployment中,因此您将具有更多的通用性,因为您可以创建一些initContainers或需要使用Horizontal Pod Autoscaler

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

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

答案 2 :(得分:0)

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

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

您可以在这里看到我如何将所有实体分开,希望这对您有参考作用。