【问题标题】:When I am trying to install Prometheus helm chart, I get this error当我尝试安装 Prometheus helm chart 时,出现此错误
【发布时间】:2021-08-25 04:56:11
【问题描述】:

我正在执行下面提到的命令来安装 Prometheus。

helm install my-kube-prometheus-stack prometheus-community/kube-prometheus-stack

我收到以下错误消息。请指教。

Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: [ValidationError(Alertmanager.spec): unknown field "alertmanagerConfigNamespaceSelector" in com.coreos.monitoring.v1.Alertmanager.spec, ValidationError(Alertmanager.spec): unknown field "alertmanagerConfigSelector" in com.coreos.monitoring.v1.Alertmanager.spec]

【问题讨论】:

  • 您好@saerma,欢迎来到 *!您能否检查一下您的设置中是否已经有任何与 Prometheus 相关的 CRD?

标签: kubernetes microservices prometheus kubernetes-helm


【解决方案1】:

你好@saerma,欢迎来到 Stack Overflow!

@rohatgisanat 可能是对的,但如果没有看到您当前的配置,就无法验证这一点。请检查是否是这种情况。

您还应该寻找其他两件事:

  1. 如果之前安装过其他与 prometheus 相关的清单文件,请删除以下内容:
  • crd alertmanagerconfigs.monitoring.coreos.com
  • alertmanagers.monitoring.coreos.com
  • crd podmonitors.monitoring.coreos.com
  • crd probes.monitoring.coreos.com
  • crd prometheuses.monitoring.coreos.com
  • crd prometheusrules.monitoring.coreos.com
  • crd servicemonitors.monitoring.coreos.com
  • crd thanosrulers.monitoring.coreos.com

另外,检查是否有任何其他与 Prometheus 相关的配置文件:

kubectl get configmap --all-namespaces

并删除它们。

请注意,删除 CRD 将导致删除之前由其他图表创建的任何 servicemonitors 等。

之后,您可以尝试从头开始重新安装。

  1. 如果安装全新,请运行:

kubectl apply -f  https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.45.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml

因为 CRD 随着新版本的变化而变化,您需要使用更新后的。

Source.

【讨论】:

  • 你好@aerma。请记得react to answers for your questions。这样我们就知道答案是否有帮助,其他社区成员也可以从中受益。尝试accept answer,这是您问题的最终解决方案,对有帮助的答案进行投票,并对可以改进或需要额外关注的答案发表评论。祝您住宿愉快!
【解决方案2】:

看起来alertmanagerConfigNamespaceSelector 的缩进是错误的。它应该与alertmanagerConfigSelector 处于同一级别。检查您的 values.yaml 是否相同。

【讨论】: