对 GKE 信息中心进行问题排查

如果资源菜单中没有 GKE 选项,则您可能没有使用 Cloud Operations for GKE 的任何 GKE 集群。同样,如果未列出 GKE 集群,则可能没有任何使用旧版 Logging 和 Monitoring 的 GKE 集群。

为什么我无法在信息中心中看到任何 Kubernetes 资源?

如果您在 Cloud Operations for GKE 信息中心中没有看到任何 Kubernetes 资源,请检查以下内容:

是否在页面顶部选择了正确的 Google Cloud 项目?

如果未正确选择,请使用菜单栏中的下拉列表选择项目。您必须选择要查看其数据的项目。

您的项目是否有活动?

如果您刚刚创建集群,请稍等几分钟,以便其填充数据。如需了解详情,请参阅安装监控和日志记录支持

时间范围是否过窄?

您可以使用信息中心工具栏中的时间菜单选择其他时间范围或定义自定义范围。

您是否拥有查看信息中心的适当权限?

如果您在查看服务的部署详情或 Google Cloud 项目的指标时看到以下任一“没有权限”错误消息,则需要更新您的 Identity and Access Management 角色,以包含 roles/monitoring.viewerroles/viewer

  • You do not have sufficient permissions to view this page
  • You don't have permissions to perform the action on the selected resources

如需了解详情,请转到预定义角色

您的集群和节点的服务帐号是否具有向 Monitoring 和 Logging 写入数据的权限?

如果您在 API 信息中心中看到较高的错误率,则您的服务帐号可能缺少以下角色:

  • roles/logging.logWriter:在 Google Cloud Console 中,此角色名为 Logs Writer。如需详细了解 Logging 角色,请参阅 Logging 访问权限控制指南

  • roles/monitoring.metricWriter:在 Google Cloud Console 中,此角色名为 Monitoring Metric Writer。如需详细了解 Monitoring 角色,请参阅 Monitoring 访问权限控制指南

  • roles/stackdriver.resourceMetadata.writer:在 Google Cloud Console 中,此角色名为 Stackdriver Resource Metadata Writer。此角色允许对资源元数据进行只写访问,并且提供代理发送元数据所需的确切权限。如需详细了解 Monitoring 角色,请参阅 Monitoring 访问权限控制指南

为什么我看不到我的所有日志?

您的代理是否过载并丢弃日志?

您看不到所有日志的一个可能原因是节点的日志量会造成代理负载过重。GKE 中的默认 Logging 代理配置会调整到每个节点 100 kiB/s 的速率,如果日志量超过此限制,则代理可能会开始丢弃日志。

如需检测是否达到了此限制,请查找以下任何指标:

  • 使用过滤条件 container_name=fluentd-gcp 查看 kubernetes.io/container/cpu/core_usage_time 指标,以查看 Logging 代理的 CPU 使用率是接近 100% 还是达到 100%。

  • 查看依 metadata.system_labels.node_name 分组的 logging.googleapis.com/byte_count 指标,以查看是否有任何节点达到 100 kiB/s。

如果您看到以上任何一种情况,则可以通过向集群添加更多节点来减少节点的日志量。如果所有日志量都来自单个 pod,您需要减少该 pod 的日志量。

如果要更改 Logging 代理调整参数,请查看使用 Fluentd 为 GKE 自定义 Cloud Logging 日志指南,以部署自定义 Logging 代理配置。

为什么我的突发事件与 GKE 资源不匹配?

如果您的提醒政策条件用于汇总不同 GKE 资源的指标,您可能需要修改政策的条件来包含更多 GKE 层次结构标签,以将突发事件与特定实体相关联。

例如,您可能有两个 GKE 集群:一个用于生产,一个用于预演,并且每个集群都有自己的服务副本 lilbuddy-2。当提醒政策条件汇总这两个集群中的容器指标时,GKE Monitoring 信息中心无法将此突发事件唯一性地与生产服务或预演服务相关联。

如需解决此问题,请将 namespaceclusterlocation 添加到政策的分组依据字段,从而将提醒政策定位到特定服务。在提醒的事件卡片上,点击更新提醒政策链接以打开相关提醒政策的修改提醒政策页面。在这里,您可以使用其他信息更新提醒政策,以便信息中心能够找到关联的资源。

更新提醒政策后,GKE Monitoring 信息中心能够将未来的所有突发事件与特定集群中的唯一服务相关联,从而为您提供更多信息来诊断问题。

根据您的使用场景,除了将其中的某些标签添加到分组依据字段之外,您可能还需要过滤这些标签。例如,如果您仅需要生产集群的提醒,则可以过滤 cluster_name