我对kubernetes很陌生,只是想知道几件事。

考虑我有两个存储库(front-e,backe-e)。它们每个都内置在docker镜像中。

我想用kubernetes管理这两个镜像,并在集群中运行它们。

在这种情况下,存储部署* .yml文件的最佳实践是什么?单独的回购?

最佳答案

这里有一个类似问题的类似答案:Best practices for storing kubernetes configuration in source control

就像David所说的那样,您可以随时尝试使用helm。但是,对于简单项目或刚起步的人,我建议不要掌 Helm 。我发现它很复杂,不愿在我的k8s集群上运行另一个有状态组件。

我在下面列出了其他一些选项。

TL; DR :(按个人喜好排列)

  • Monorepo将所有源代码和yaml文件放在一个地方
  • 单独的K8s存储库中的
  • yaml文件
  • 源代码存储库中的
  • yaml文件(可能是每个存储库中的Dockerfile旁边的文件)


  • 1. Monorepo
  • 为每个微服务分离文件夹。
  • 微服务特定的k8s yaml(deployment.yml,service.yml)进入微服务文件夹
  • 用于集群范围的配置和k8s资源的文件夹(ingress / api-gateway)
  • 集成测试文件夹

  • 如果您担心monorepos,请在决定放弃它们之前先阅读about them,因为它们听起来并不优雅;)

    提示:如果您有多个k8s集群,并且不想为每个集群编写不同的k8s文件,请添加一些客户端jinja模板。

    2.单独的k8s回购

    与1相同,但没有源代码。

    3.单独的源存储库中的k8s文件

    将部署,服务yml文件保留在存储库中。如果两个微服务都完全解耦,可以独立测试并且实际上不需要任何需要创建的公共(public)k8s资源,那么这可能是最好的。我在实践中从未遇到过。我不得不将7种不同的微服务的回购合并到一个回购中,以实现发布的合理性。

    关于docker - Kubernetes的问题。配置文件。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48328415/

    10-14 14:58
    查看更多