3

使用 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 吗?还是有向后兼容的选项?

4

2 回答 2

4

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

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

有从 helm 2 迁移到 helm 3的详细指南

在试运行期间的 helm 3 中,没有安装 CRD,但 Kubernetes 验证针对图表的输出进行。因此,使用图表安装的 CRD 的任何 CR 都将在试运行期间验证失败。

目前的解决方法:

1.使用helm模板代替dry run

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

3.在运行空运行之前单独安装CRD

于 2019-12-31T05:30:35.203 回答
3

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

问题是--dry-run无法使用 CRD 生成资源,因为 CRD 不是通过试运行安装的。这显然是一种“记录在案的行为”,尽管它记录在实现拉取请求中,而不是在 Helm 文档中。

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

在 Helm 中升级CRD 是一个完全不同(尚未解决)的问题


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

bitnami/prometheus-operator仅在几天前的0.3.0中获得了支持。

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


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

它们现在分别是prometheus-community/kube-prometheus-stack(替换stable/prometheus-operator)和bitnami/kube-prometheus

于 2020-03-20T04:58:32.267 回答