1

本月早些时候,我们在 GCP 上的 3 个项目中启用了 Stackdriver Monitoring。

最近我们发现 Stackdriver API 指标显示了大约 85% 的错误:

在此处输入图像描述

在图表上,这些错误代码是 429:

在此处输入图像描述

我检查了配额,一切似乎都很好:

在此处输入图像描述

下一个指标图告诉我们导致错误的方法:

在此处输入图像描述

使用另一张图“凭据错误”,我发现我们的 GKE 服务帐户发出的 API 请求。我们有 GKE 实例的自定义服务帐户,据我们所知,它具有监控所需的所有权限:

  • roles/logging.logWriter
  • roles/monitoring.metricWriter
  • roles/stackdriver.resourceMetadata.writer(如本期所述)

此外,stackdriver-metadata-agentGKE 集群中的 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 服务帐户的任何权限?

还有什么可以相关的?

提前致谢。

4

1 回答 1

0

这是一种已知行为,其中容器和 pod 往往会非常频繁地发布更新并且达到速率限制。除了获取嘈杂的日志外,此行为没有性能或功能问题。

也可以应用日志排除以避免将它们发布到 Stackdriver 日志中。

于 2020-02-03T19:58:45.540 回答