【问题标题】:Is there a declarative way to install helm charts in a kuberenetes cluster是否有在 kubernetes 集群中安装 helm 图表的声明性方式
【发布时间】:2019-08-04 11:07:21
【问题描述】:
我只是想知道是否有人想出了一种声明方式来安装/配置 helm 图表作为集群启动的一部分,并且可以将其签入源代码控制。使用 Kuberenetes,我已经非常习惯于“一切皆为代码”类型的工作流,并且我意识到安装和配置 helm 主要基于通过 CLI 的命令式工作流。
我问的原因是因为目前我们的集群正在开发中,并将在生产中重新创建它。我们的大部分配置都是通过 deployment.yaml 文件以声明方式完成的。但是,我们花费了大量时间来安装和配置某些 helm chart(例如 prometheus、grafana 等)
【问题讨论】:
标签:
kubernetes
kubectl
kubernetes-helm
azure-aks
【解决方案1】:
有一个像helmfile 或helmsman 这样的工具允许你声明作为代码安装的Helm 版本。
这是来自helmfile.yaml 的示例:
releases:
# Published chart example
- name: promnorbacxubuntu # name of this release
namespace: prometheus # target namespace
chart: stable/prometheus # the chart being installed to create this release, referenced by `repository/chart` syntax
set: # values (--set)
- name: rbac.create
value: false
运行 helmfile charts 将确保安装所有列出的版本
【解决方案2】:
我的团队遇到了类似的问题,我们通过 Operators 解决了这个问题。 Operator 最棒的地方在于它有 3 种,其中一种是基于 Helm 的。
所以你可以使用 Helm Based Operator ,创建一个关联的 CRD,然后在那里声明你的配置。然后,这些配置将直接移植到 Helm 图表,而您作为用户无需执行任何操作。