我有3个微服务应用程序,应在K8中部署。 我是否需要为此创建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
您可以在这里看到我如何将所有实体分开,希望这对您有参考作用。