我的 GKE 集群收到来自 Google Console 的警告消息
集群中的 API 客户端最近尝试调用在 v1.25 中删除且在集群上不再可用的 API。
已弃用的 API 调用
API 用户代理 Total_calls(过去 30 天)最后调用 /apis/batch/v1beta1/cronjobs v2.2.0 31145 2023 年 9 月 22 日上午 5:30:00 UTC+5:30
但我没有在任何地方使用 v1beta1,我使用的是 batch/v1
检查:k get cronjobs -A -o=jsonpath='{range .items[*]}{.metadata.namespace}/{.metadata.name} : {.apiVersion}{" “}{结束}”
所有 cronjobs api 版本似乎都没有被废弃,但警告仍然继续。
我尝试检查资源版本,但找不到 GKE 调用的任何内容 /apis/batch/v1beta1/cronjobs
-->kubectl get --raw /apis/batch/v1beta1/cronjobs |杰克 来自服务器的错误(NotFound):服务器找不到请求的资源
我能够解决这个问题,在我的例子中,我在集群中使用 kube prometheus 堆栈图,并且所有 api 调用都来自
kube-state-metrics
子图。
如何发现问题?:在 GCP 中启用 GKE 的审核日志。在日志中我发现呼叫来自
kube-state-mertrics
pod 的 IP
我尝试的解决方案删除了在 kube prometheus 堆栈中造成问题的资源
values.yaml
在 kube-state-metrics
部分添加收集器:通过删除已弃用的 API 调用资源来添加收集器:部分(您可以在 kube 状态指标图表中找到它)
例如:
kube-state-metrics:
namespaceOverride: ""
rbac:
create: true
podSecurityPolicy:
enabled: true
# podDisruptionBudget:
# enable: false
collectors:
- certificatesigningrequests
- configmaps
- daemonsets
- deployments
- endpoints
- ingresses
- jobs
- leases
- limitranges
- mutatingwebhookconfigurations
- namespaces
- networkpolicies
- nodes
- persistentvolumeclaims
- persistentvolumes
- pods
- replicasets
- replicationcontrollers
- resourcequotas
- secrets
- services
- statefulsets
- storageclasses
- validatingwebhookconfigurations
- volumeattachments
(pdb、psp 和 cronjob 已在此处列出)