You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EKS集群升级至1.29后kube-state-metrics资源请求报错排查

解决kube-state-metrics API资源找不到的问题

问题原因

Kubernetes 1.22及后续版本彻底移除了多个v1beta1版本的API资源:

  • certificates.k8s.io/v1beta1/CertificateRequest(你日志里的certificationRequest是拼写错误):1.22版本废弃,替代为certificates.k8s.io/v1
  • batch/v1beta1/CronJob:1.21版本升级为batch/v1,1.25版本完全移除v1beta1版本
  • networking.k8s.io/v1beta1/Ingress:1.22版本废弃,替代为networking.k8s.io/v1

你的kube-state-metrics版本过低,仍在请求这些已被移除的旧API,导致报错。

解决步骤

1. 检查当前kube-state-metrics版本

执行命令查看部署的镜像版本:

kubectl get pods -n <你的命名空间> -l app.kubernetes.io/name=kube-state-metrics -o jsonpath='{.items[0].spec.containers[0].image}'

若版本低于v2.5.0,必须升级(v2.5.0及以上版本已适配Kubernetes 1.22+的API规范)。

2. 升级kube-state-metrics

如果是通过Helm部署,直接升级到兼容的稳定版本:

helm upgrade kube-state-metrics prometheus-community/kube-state-metrics -n <你的命名空间> --set image.tag=v2.10.0

(可根据实际情况选择最新稳定版,确保适配Kubernetes 1.29)

3. 验证修复效果

重启pod后查看日志,确认报错消失:

kubectl delete pods -n <你的命名空间> -l app.kubernetes.io/name=kube-state-metrics
kubectl logs -n <你的命名空间> -l app.kubernetes.io/name=kube-state-metrics -f

4. 可选:禁用不必要的资源采集

如果不需要采集这些资源,可在Helm配置中禁用对应的类型,创建values.yaml:

kube-state-metrics:
  resources:
    certificateRequests: false
    cronJobs: false
    ingresses: false

然后重新应用配置:

helm upgrade kube-state-metrics prometheus-community/kube-state-metrics -n <你的命名空间> -f values.yaml

注意:如果是Datadog集成的kube-state-metrics,确保使用Datadog官方提供的适配Kubernetes 1.29的版本,避免版本不兼容。

内容的提问来源于stack exchange,提问作者XP_2600

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 08:17:13