GKE迁移至Google托管Prometheus报错:无monitoring.googleapis.com/v1的PodMonitoring类型
解决GKE 1.23.14部署PodMonitoring时的"No matches for kind"错误
你的问题核心是GKE版本与PodMonitoring API版本不兼容:monitoring.googleapis.com/v1版本的PodMonitoring资源仅在GKE 1.24及以上版本中被支持,而你当前使用的是1.23.14版本,所以会出现资源类型不匹配的错误。
快速修复步骤
修改API版本
将你的PodMonitoring配置中的apiVersion从monitoring.googleapis.com/v1改为monitoring.googleapis.com/v1alpha1,这是GKE 1.23.x版本支持的托管Prometheus自定义资源版本。修改后的完整配置如下:apiVersion: monitoring.googleapis.com/v1alpha1 kind: PodMonitoring metadata: labels: deployment_unit: test-unit global_label: my-label name: my-service namespace: my-namespace spec: endpoints: - interval: 30s path: /metrics port: http-prometheus scheme: http selector: matchLabels: app: my-service确认托管Prometheus已启用
先检查集群是否已经开启了托管Prometheus功能:gcloud container clusters describe <你的集群名称> --zone <集群所在区域> | grep managedPrometheus如果输出中没有
managedPrometheus: ENABLED,需要执行以下命令启用:gcloud container clusters update <你的集群名称> --zone <集群所在区域> --enable-managed-prometheus重新部署资源
执行部署命令应用修改后的配置:kubectl apply -f <你的配置文件名>.yaml -n my-namespace
额外说明
如果后续计划升级GKE集群到1.24或更高版本,你可以再将apiVersion改回monitoring.googleapis.com/v1,享受正式版API的特性。
内容的提问来源于stack exchange,提问作者chrisyyy
相关产品推荐
相关产品推荐

