kubernetes - 一个文件 Kubernetes 清单,每个资源一个文件 Kubernetes 文件
问题描述
我看到了 Kubernetes 清单文件的两种“风格”。
第一个是一个 Kubernetes 清单,一个且唯一的文件,其中部署、服务、配置映射等......,其他所有内容都存在于同一个文件中,一个接一个。
第二个是资源有专用文件的地方。部署有一个deployment.yml,服务有一个service.yml,等等......
虽然 Kubernetes 两者都支持,但我想问一下它们各自的优缺点是什么。还有什么情况下首选第一个选项,首选哪个版本?
这个问题不是要创建一个辩论解决方案A与/反对解决方案B。这是一个问题,要说明每种方法的优缺点,哪种情况最适合,更多的是技术讨论。
谢谢你。
解决方案
一般来说,最好的做法是将属于同一应用程序/部署的资源对象分组到一个文件中(而不是将每个对象都放在一个单独的文件中)。
从Kubernetes 文档的配置最佳实践页面:
只要有意义,就将相关对象分组到一个文件中。一个文件通常比多个文件更容易管理。请参阅 guestbook-all-in-one.yaml 文件作为此语法的示例。
从管理资源页面:
建议将与同一微服务或应用程序层相关的资源放入同一文件中,并将与您的应用程序关联的所有文件分组在同一目录中。
这种方法的主要优点是如上述引用中所建议的:管理单个文件而不是多个文件更容易,特别是如果这些文件是相关的,例如,包括跨多个资源对象共享的标识符。
它还一目了然地说明了应用程序/部署包含哪些组件,以及哪些 Kubernetes API 对象属于一起。
推荐阅读
- sql - 我如何在asp.net中关闭窗口并重新加载
- python - Postgres更新返回值给出字符串而不是json
- python - PyQt5 在 Python 交互模式下表现不佳
- angular - 使用 Angular 和 .net 核心应用程序的 CC 大道集成
- c++ - 隐式模板转换为由临时支持的抽象基引用
- python - 我的scrapy项目解析功能没有正确抓取
- reactjs - 用 useReducer + Typescript 反应 Conetxt - '没有重载匹配这个调用'
- python - 如何保存控制台中显示的整数?
- pagespeed - CLS 问题仅作为现场数据的一部分 - 如何诊断?
- python - python setup.py py2app 引发 [Errno 2] 没有这样的文件或目录