我刚刚使用 Terraform 在 Kubernetes 集群上使用 Helm 图表升级了
kube-prometheus-stack
,并开始看到以下 2 个错误:
failed calling webhook "prometheusrulemutate.monitoring.coreos.com":
failed to call webhook:
Post "https://kube-prometheus-stack-operator.infra.svc:443/admission-prometheusrules/mutate?timeout=30s":
x509: certificate signed by unknown authority
Error: cannot patch "kube-prometheus-stack-prometheus-node-exporter" with kind DaemonSet:
DaemonSet.apps "kube-prometheus-stack-prometheus-node-exporter" is invalid: spec.selector:
Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"kube-prometheus-stack", "app.kubernetes.io/name":"prometheus-node-exporter"},
MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable &&
cannot patch "kube-prometheus-stack-kube-state-metrics" with kind Deployment:
Deployment.apps "kube-prometheus-stack-kube-state-metrics" is invalid: spec.selector:
Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"kube-prometheus-stack", "app.kubernetes.io/name":"kube-state-metrics"},
MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable
您可以在下表中找到查看旧版和新版 Kube Prometheus Stack 图像和图表的升级路径:
组件 | 旧版本(日期:2021 年 4 月 14 日) | 新版本(日期:2023年7月24日) |
---|---|---|
图片 | v0.46.0 | v0.66.0 |
图表 | 14.9.0 | 48.2.0 |
如何修复这两个错误?
为了修复第一个错误,我更改了
prometheusOperator
配置,将 Helm 图表默认值文件中 failurePolicy
下的 Ignore
设置为 admissionWebhooks
,如下所示:
prometheusOperator:
enabled: true
admissionWebhooks:
"Fail"
failurePolicy: "Ignore"
为了修复第二个错误,我通过将
kubeStateMetrics
设置为 nodeExporter
,在 Helm 图表的默认值文件中禁用了 enabled
和 false
配置,然后应用 Helm 图表,然后通过设置 enabled
启用这两个配置到 true
,然后应用 Helm 图表,效果很好。也许,在新版本中成功安装需要删除资源。不知道是什么原因造成的。升级过程中默认值文件中可能有一些不正确的配置。
我的 grafan 在 Pod 和容器上显示没有数据,所有其他指标都很好,k8s 1.24,cri Docker,44.1.0 k8sProm,