Helm 3.0.2干-运行 + stable/prometheus-operator?这应该有效吗?

Helm 3.0.2 dry-run + stable/prometheus-operator? Is this supposed to work?

使用 Helm v3.0.2 + 新的 Kubernetes v1.14.9 集群。

仅供参考,我已经添加了稳定的回购协议:

helm repo add stable https://kubernetes-charts.storage.googleapis.com/
helm install \
  --namespace prometheus \
  prom-dry-run \
  stable/prometheus-operator \
  --dry-run

manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
manifest_sorter.go:175: info: skipping unknown hook: "crd-install"
Error: unable to build kubernetes objects from release manifest: [unable to recognize "": no matches for kind "Alertmanager" in version "monitoring.coreos.com/v1", unable to recognize "": no matches for kind "Prometheus" in version "monitoring.coreos.com/v1", unable to recognize "": no matches for kind "PrometheusRule" in version "monitoring.coreos.com/v1", unable to recognize "": no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"]

我认为 Helm 3 向后兼容现有图表?这是例外吗?

prometheus-operator 与 Helm 3 不兼容吗?我必须使用 Helm 2 吗?或者是否有向后兼容选项?

稳定的 repo 计划被弃用,并且可能不会更新为最新的 charts.The Helm 图表的规范来源是 Helm Hub。使用以下命令使用 helm 3 或 helm 2 从 Helm Hub 添加 repo 和安装 prometheus operator。

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-prom-release bitnami/prometheus-operator

有详细的guide从 helm 2 迁移到 helm 3

在干 运行 期间的 helm 3 中,未安装 CRD,但 Kubernetes 验证是针对图表的输出进行的。因此,任何使用 chart 安装的 CRD 的 CR 都将在 dry 运行.

期间验证失败

当前的解决方法:

1.Use helm 模板而不是 dry 运行

2.Don不在具有 CRD 的同一图表中引用 CR

3.Install CRD 分开前运行宁干运行

遗憾的是,CRD 是 Helm v3 图表兼容性的一个例外。

问题是 --dry-run 无法使用 CRD 生成资源,因为 CRD 不是干 运行 安装的。这显然是一个 "documented behaviour" 尽管它被记录在实现拉请求中,而不是在 Helm 文档中。

编辑:我忘了提及当前最好的解决方法是手动安装 CRD。然后 --dry-run 将起作用。 Helm v3 会忽略已安装的 CRD,因此您可以在对配置满意后将它们留在那里并进行真正的安装。

在 Helm 中升级 CRD 是 whole different (not yet resolved) issue


stable/prometheus-operator 在 2019 年 11 月中旬 8.2.0 中获得了对 Helm v3 的支持,所以这不是这里的问题。

bitnami/prometheus-operator 几天前才在 0.3.0 获得支持。

在撰写本文时(2020 年 3 月),两者似乎都在积极维护。


以防万一有人看过上面两个图表名称不是链接而感到困惑:两个都已重命名,一个已移动。

他们现在分别是prometheus-community/kube-prometheus-stack (replaces stable/prometheus-operator) and bitnami/kube-prometheus