主要观点:
- Helm 虽为 Kubernetes 部署工具的佼佼者,但存在诸多不足,如不提供升级 Custom Resource Definitions 的机制、依赖管理存在问题、图表创建不友好、
values.yaml
文件是反模式、无法与 Kubernetes API 交互等。 - 为解决这些问题,作者团队创建了 Glasskube,旨在提供更易用的 Kubernetes 应用和基础设施部署方式。
关键信息:
- 2015 年 Deis 创建 Helm,后与 Google 的 Kubernetes Deployment Manager 合并为 Helm v2,2018 年推出 Helm Hub 并于 2020 年重命名为 Artifact Hub,2019 年发布 Helm v3 以解决 Kubernetes 1.6 带来的问题。
- Helm 存在的问题:升级时不自动升级 CRDs,依赖管理中子图表安装在同一命名空间且无法共享,图表创建文件多且复杂,
values.yaml
文件无通用模式验证,安装后无法与 Kubernetes API 交互。 - Glasskube 致力于提供更简单的部署方式,可通过关注
glasskube/glasskube
和加入Discord
了解其进展。
重要细节:
- Helm 中升级 CRDs 的策略包括将 CRDs 放入
template
目录或创建单独的子图表,也可使用 CI/CD 解决方案如 Flux 自动更新 CRDs 但仅创建不更新。 - Helm 图表创建时
helm create
会生成 10 个文件,模板文件基于 Go 模板语言,包含大量模板语言内容导致难以阅读和维护。 - 作为 Helm 用户,
values.yaml
文件无通用模式验证,开发环境仅能提供基本 YAML 语法高亮,验证其有效性需通过 helm。 - Operator 可根据检测到的 Kubernetes 环境动态设置 Ingress 类和注释,而 Helm 作为部署方法是静态的,无法做到。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。