本文說明如何使用 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 提供預先定義的 DNS 資訊主頁,位於「Monitoring」>「Dashboards」>「GKE DNS Observability - Cluster View」。這個資訊主頁會顯示 KubeDNS 和 NodeLocalDNS 指標。如要查看資訊主頁,您需要使用 NodeLocalDNS 或 KubeDNS 的叢集。
使用 GKE DNS 觀測能力資訊主頁的範例:
首先,依序前往「Monitoring」>「Dashboards」,如下圖所示:

這張螢幕截圖顯示左側的 Google Cloud 控制台導覽選單。「監控」部分會展��,並醒目顯示「資訊主頁」,引導您前往。
然後前往「GKE DNS Observability - Cluster View」(GKE DNS 可觀測性 - 叢集檢視畫面) 資訊主頁:

這張螢幕截圖顯示「資訊主頁」目錄頁面,並在可用資訊主頁清單中醒目顯示「GKE DNS Observability - Cluster View」資訊主頁。按一下這個連結,即可開啟叢集層級的 DNS 指標視覺化圖表。
建立自訂資訊主頁
如要建立自訂資訊主頁及設定快訊,做法與監控任何指標時類似,您可以使用 Google Cloud Observability 工具,例如 Cloud Monitoring Metrics Explorer。
查詢 DNS 可觀測性指標
如要查看叢集的 GKE DNS 指標,請在 Metrics Explorer 的 Google Cloud 控制台中執行下列步驟:
前往「Monitoring」>「Metrics Explorer」頁面。
在「選取指標」欄位中,篩選「
kubernetes.io/networking/dns/」。KubeDNS 指標位於 Kubernetes 容器資源下方,NodeLocalDNS 指標則位於 Kubernetes 節點資源下方。
(選用) 根據「標籤」選擇任何選取的篩選器。
以下是在 Google Cloud 控制台的「Monitoring」>「Metrics Explorer」下方,顯示的 KubeDNS 指標和 NodeLocalDNS 指標範例:

這張螢幕截圖顯示已設定的 Metrics Explorer 頁面,用於查詢 KubeDNS 指標。「選取指標」欄位會顯示已篩選的路徑
kubernetes.io/networking/dns/kubedns/,產生的圖表則會顯示 KubeDNS 要求和快取狀態的有效時間序列圖。

這張螢幕截圖顯示已設定的「指標探索器」頁面,用於查詢 NodeLocalDNS 指標。查詢會指定 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}]))。
請注意,查看這些指標時,控制台會自動對指標套用速率運算,您可以從 PromQL 來源停用這項功能。Google Cloud request_count