Helm 的 5 个缺点

主要观点:

  • 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 作为部署方法是静态的,无法做到。
阅读 17
0 条评论