本月早些时候,我们在 GCP 上的 3 个项目中启用了 Stackdriver Monitoring。
最近我们发现 Stackdriver API 指标显示了大约 85% 的错误:
在图表上,这些错误代码是 429:
我检查了配额,一切似乎都很好:
下一个指标图告诉我们导致错误的方法:
使用另一张图“凭据错误”,我发现我们的 GKE 服务帐户发出的 API 请求。我们有 GKE 实例的自定义服务帐户,据我们所知,它具有监控所需的所有权限:
roles/logging.logWriter
roles/monitoring.metricWriter
roles/stackdriver.resourceMetadata.writer
(如本期所述)
此外,stackdriver-metadata-agent
GKE 集群中的 pod 每分钟都会记录相关错误:
stackdriver-metadata-agent-cluster-level-d6556b55-2bkbc metadata-agent I0203 15:03:16.911940 1 binarylog.go:265] rpc: flushed binary log to ""
stackdriver-metadata-agent-cluster-level-d6556b55-2bkbc metadata-agent W0203 15:03:56.495034 1 kubernetes.go:118] Failed to publish resource metadata: rpc error: code = ResourceExhausted desc = Resource has been exhausted (e.g. check quota).
stackdriver-metadata-agent-cluster-level-d6556b55-2bkbc metadata-agent I0203 15:04:16.912272 1 binarylog.go:265] rpc: flushed binary log to ""
stackdriver-metadata-agent-cluster-level-d6556b55-2bkbc metadata-agent W0203 15:04:56.657831 1 kubernetes.go:118] Failed to publish resource metadata: rpc error: code = ResourceExhausted desc = Resource has been exhausted (e.g. check quota).
除此之外,我还没有找到任何与该问题相关的日志,而且我无法弄清楚谁每秒向 Stackdriver API 发出 2 个请求,收到 429 错误。
我应该补充一点,以上所有内容都适用于所有 3 个项目。
有人可以建议我们如何解决这个问题吗?
这仍然超出配额吗?如果是,为什么配额的请求指标正常Quota exceeded errors count
不包含数据?
我们是否缺少对 GKE 服务帐户的任何权限?
还有什么可以相关的?
提前致谢。