首页 > 解决方案 > 一个文件 Kubernetes 清单,每个资源一个文件 Kubernetes 文件

问题描述

我看到了 Kubernetes 清单文件的两种“风格”。

第一个是一个 Kubernetes 清单,一个且唯一的文件,其中部署、服务、配置映射等......,其他所有内容都存在于同一个文件中,一个接一个。

第二个是资源有专用文件的地方。部署有一个deployment.yml,服务有一个service.yml,等等......

虽然 Kubernetes 两者都支持,但我想问一下它们各自的优缺点是什么。还有什么情况下首选第一个选项,首选哪个版本?

这个问题不是要创建一个辩论解决方案A与/反对解决方案B。这是一个问题,要说明每种方法的优缺点,哪种情况最适合,更多的是技术讨论。

谢谢你。

标签: kubernetes

解决方案


一般来说,最好的做法是将属于同一应用程序/部署的资源对象分组到一个文件中(而不是将每个对象都放在一个单独的文件中)。

从Kubernetes 文档的配置最佳实践页面:

只要有意义,就将相关对象分组到一个文件中。一个文件通常比多个文件更容易管理。请参阅 guestbook-all-in-one.yaml 文件作为此语法的示例。

管理资源页面:

建议将与同一微服务或应用程序层相关的资源放入同一文件中,并将与您的应用程序关联的所有文件分组在同一目录中。

这种方法的主要优点是如上述引用中所建议的:管理单个文件而不是多个文件更容易,特别是如果这些文件是相关的,例如,包括跨多个资源对象共享的标识符。

它还一目了然地说明了应用程序/部署包含哪些组件,以及哪些 Kubernetes API 对象属于一起。


推荐阅读