本文档介绍了如何使用 GKE DNS 指标观察 DNS 流量。对于运行以下版本的集群,您可以在 Google Cloud 控制台中查看 GKE DNS 指标:
对于增强型 KubeDNS,需要 GKE 1.36 版或更高版本
对于 NodeLocalDNS,需要 GKE 版本 1.35.2-gke.1090000 或更高版本
查看 DNS 指标
您可以在 Google Cloud 控制台的 Metrics Explorer 中通过以下方式查看 GKE DNS 指标:
使用 GKE DNS 可观测性信息中心
Google 在 Monitoring > 信息中心 > GKE DNS 可观测性 - 集群视图中提供了一个预定义的 DNS 信息中心。此信息中心显示 KubeDNS 和 NodeLocalDNS 指标。您需要使用 NodeLocalDNS 或 KubeDNS 的集群才能查看信息中心。
使用 GKE DNS 可观测性信息中心的示例:
首先,前往 Monitoring > 信息中心,如下图所示:

此屏幕截图显示了左侧的 Google Cloud 控制台导航菜单。监控部分已展开,信息中心突出显示,以便引导您进行导航。
然后,前往信息中心 GKE DNS 可观测性 - 集群视图:

此屏幕截图显示了信息中心目录页面,其中“GKE DNS 可观测性 - 集群视图”信息中心在可用信息中心列表中突出显示。点击此链接可打开集群级 DNS 指标的可视化图表。
创建自定义信息中心
如需创建自定义信息中心并设置与您所监控的任何指标类似的提醒,您可以使用 Google Cloud Observability 工具,例如 Cloud Monitoring Metrics Explorer。
查询 DNS 可观测性指标
如需查看集群的 GKE DNS 指标,请在 Google Cloud 控制台的 Metrics Explorer 中执行以下步骤:
前往 Monitoring > Metrics Explorer 页面。
在选择指标字段中,过滤出
kubernetes.io/networking/dns/。KubeDNS 指标位于 Kubernetes 容器资源下,而 NodeLocalDNS 指标位于 Kubernetes 节点资源下。
(可选)根据标签选择任何所选的过滤条件。
Google Cloud 控制台中 Monitoring > Metrics Explorer 下的 KubeDNS 指标和 NodeLocalDNS 指标示例:

此屏幕截图显示了配置为查询 KubeDNS 指标的 Metrics Explorer 页面。选择指标字段会显示过滤后的路径 kubernetes.io/networking/dns/kubedns/,生成的图表会显示 KubeDNS 请求和缓存状态的活跃时间序列图。

此屏幕截图显示了配置为查询 NodeLocalDNS 指标的 Metrics Explorer 页面。该查询指定了 Kubernetes 节点资源下的 kubernetes.io/networking/dns/node_local_dns/ 指标路径,图表中突出显示了表示本地 DNS 请求和延迟数据的有效时间序列图。
GKE DNS 指标列表
以下指标可用于监控 GKE DNS 性能和健康状况。
KubeDNS 指标
在 GKE 1.36 版及更高版本中,以下指标适用于 KubeDNS:
| 指标类型 | 说明 |
|---|---|
kubernetes.io/networking/dns/kubedns/dns_request_count |
KubeDNS 收到的 DNS 请求总数。 |
kubernetes.io/networking/dns/kubedns/dns_request_latencies |
每个请求的解决时间直方图。 |
kubernetes.io/networking/dns/kubedns/dns_cache_request_count |
按缓存状态(命中或未命中)过滤的 DNS 请求的计数器。 |
kubernetes.io/networking/dns/kubedns/forwarding_request_latencies |
每个转发请求所用时间的直方图。 |
kubernetes.io/networking/dns/kubedns/max_concurrent_rejected_request_count |
因并发查询数达到上限而遭拒的查询数。 |
如需计算 forwarding_request_count 指标,您可以在以下查询中使用 kubernetes.io/networking/dns/kubedns/forwarding_request_latencies 指标:sum by (cluster_name) (rate({"kubernetes.io/networking/dns/kubedns/forwarding_request_latencies_count"}[${__interval}]))。
默认情况下, Google Cloud 控制台会对 request_count 指标应用速率运算。您可以在 PromQL 来源中停用此功能。
NodeLocalDNS 指标
在 GKE 1.35.2-gke.1090000 版及更高版本中,NodeLocal DNSCache 提供以下指标:
| 指标类型 | 说明 |
|---|---|
kubernetes.io/networking/dns/node_local_dns/dns_request_count |
NodeLocal DNSCache 收到的 DNS 请求总数。 |
kubernetes.io/networking/dns/node_local_dns/dns_request_latencies |
每个请求的解决时间直方图。 |
kubernetes.io/networking/dns/node_local_dns/dns_cache_request_count |
按缓存状态(命中或未命中)过滤的 DNS 请求的计数器。 |
kubernetes.io/networking/dns/node_local_dns/forwarding_request_latencies |
每个转发请求所用时间的直方图。 |
kubernetes.io/networking/dns/node_local_dns/max_concurrent_rejected_request_count |
因并发查询数达到上限而遭拒的查询数。 |
如需计算 forwarding_request_count 指标的值,您可以在以下查询中使用 kubernetes.io/networking/dns/node_local_dns/forwarding_request_latencies 指标:sum by (cluster_name) (rate({"kubernetes.io/networking/dns/node_local_dns/forwarding_request_latencies_count"}[${__interval}]))。
请注意,在查看这些指标时,Google Cloud 控制台会自动对 request_count 指标应用速率运算,您可以从 PromQL 来源中停用此功能。