推荐项目:kpt - Kubernetes 配置管理的利器
kpt 是一个以包为中心的工具链,旨在提供一种所见即所得的 Kubernetes 配置编辑体验,简化大规模管理 Kubernetes 平台和基于 KRM(Kubernetes Resource Model)驱动的基础设施(例如 Config Connector 和 Crossplane)。通过操作声明性配置数据,kpt 能够帮助你在整个开发周期内更有效地处理 Kubernetes 的配置。
配置作为数据 的理念是:
- 将配置数据视为源代码,与实时状态分离存储;
- 使用统一、可序列化的数据模型表示配置;
- 分离作用于配置数据的代码与数据和包/数据包之间的关系;
- 对配置文件结构和存储进行抽象,使操作配置数据的客户端无需直接与存储(如 git、容器镜像)交互。
为什么选择 kpt?
kpt 提供了一种类似直译式工具修改实时状态的方式来编辑和管理声明性配置数据。这种所见即所得的编辑方式使得配置管理变得更为直观且易于自动化。访问 项目官网,了解更多信息,探索 kpt 如何不同于其他解决方案。
安装 kpt
要安装 kpt,请访问 kpt 安装指南。
kpt 组件
kpt 工具链包括以下组件:
-
kpt CLI:提供了对包和函数的操作支持,以及部署功能(通过直接应用或 GitOps)。通过维护已部署资源的清单,kpt 支持资源修剪、聚合状态和可观测性,并改进了预览体验。
-
函数 SDK:可以使用任何通用或特定领域的语言创建函数来转换和验证 YAML 格式的 KRM 输入/输出。我们提供 SDK 来简化函数编写过程,包括 Go、TypeScript 和 Starlark。
-
函数目录:函数目录 包含了一系列经过测试的现成函数。kpt 通过可复用的函数简化了配置的创建和变换,这些函数需要是幂等的。
-
包编排器:包编排器提供了独特的 WYSIWYG 体验背后的动力。它为创建、修改、更新和删除包,以及在包数据上评估函数提供了一个控制平面,允许在包资源上执行类似于直接通过 Kubernetes API 操作实时状态的操作。
-
Config Sync:尽管包编排器可以与任何 GitOps 工具配合使用,但 Config Sync 提供了一个参考实现,完成 WYSIWYG 管理体验,并实现了基于 OCI 的包的新特性开发。Config Sync 还推动了上游 Kubernetes 的改进,比如自动渲染和 Kustomize 应用。
-
Backstage UI 插件:为了演示在包编排器之上可能实现的 WYSIWYG 体验,我们还创建了一个 Backstage UI 插件 的原型。更多的场景可以通过为额外的 Kubernetes 资源类型实现表单式编辑器来支持。
发展路线图
你可以阅读 发展路线图文档 获取即将推出的大功能信息。
贡献
如果你有兴趣贡献,请先查阅 贡献指南。
联系我们
我们非常期待与你保持联系:
- 加入我们的 Slack 频道。首先你需要加入 Kubernetes 在 Slack 上的社区。
- 加入我们的 邮件列表。
kpt 以其创新的配置管理和自动化能力,为 Kubernetes 用户提供了强大的工具。无论你是开发者、运维人员还是平台工程师,都能从中受益。现在就尝试 kpt,开启你的高效 Kubernetes 配置之旅吧!