GKE DNS トラフィックをモニタリングする

このドキュメントでは、GKE DNS 指標を使用して DNS トラフィックをモニタリングする方法について説明します。GKE DNS 指標は、次のバージョンを実行しているクラスタの Google Cloud コンソールで使用できます。

  • 拡張 KubeDNS の場合、GKE バージョン 1.36 以降

  • NodeLocalDNS の場合、GKE バージョン 1.35.2-gke.1090000 以降

DNS 指標を表示する

GKE DNS 指標は、 Google Cloud コンソールの Metrics Explorer で次の方法で表示できます。

GKE DNS オブザーバビリティ ダッシュボードを使用する

Google は、[Monitoring] > [ダッシュボード] > [GKE DNS Observability - クラスタビュー] に事前定義された DNS ダッシュボードを提供しています。このダッシュボードには、KubeDNS と NodeLocalDNS の指標が表示されます。ダッシュボードを表示するには、NodeLocalDNS または KubeDNS を使用するクラスタが必要です。

GKE DNS Observability ダッシュボードの使用例:

まず、次の図に示すように、[Monitoring] > [ダッシュボード] に移動します。

 Google Cloud コンソールの DNS ダッシュボードを示す最初のスクリーンショット

このスクリーンショットは、左側に Google Cloud コンソールのナビゲーション メニューを示しています。[モニタリング] セクションが展開され、[ダッシュボード] がハイライト表示されます。

次に、ダッシュボード GKE DNS Observability - Cluster View に移動します。

 Google Cloud コンソールの DNS ダッシュボードを示す 2 つ目のスクリーンショット

このスクリーンショットは、[ダッシュボード] ディレクトリ ページを示しています。利用可能なダッシュボードのリストで、[GKE DNS Observability - Cluster View] ダッシュボードがハイライト表示されています。このリンクをクリックすると、クラスタレベルの DNS 指標の可視化が開きます。

カスタマイズされたダッシュボードを作成する

カスタム ダッシュボードを作成して、モニタリングしている指標のいずれかと同様のアラートを設定する場合は、Google Cloud Observability ツール(Cloud Monitoring の Metrics Explorer など)を使用できます。

DNS オブザーバビリティ指標をクエリする

クラスタの GKE DNS 指標を表示するには、 Google Cloud コンソールの Metrics Explorer で次の操作を行います。

  1. [Monitoring] > [Metrics Explorer] ページに移動します。

  2. [指標を選択] フィールドで、kubernetes.io/networking/dns/ をフィルタします。

  3. KubeDNS 指標は Kubernetes コンテナ リソースに、NodeLocalDNS 指標は Kubernetes ノードリソースにあります。

  4. (省略可)[ラベル] に基づいて必要なフィルタを選択します。

Google Cloud コンソールの [Monitoring] > [Metrics Explorer] に表示される KubeDNS 指標と NodeLocalDNS 指標の例:

 Google Cloud コンソールに KubeDNS 指標が表示されているスクリーンショット

このスクリーンショットは、KubeDNS 指標をクエリするように構成された [Metrics Explorer] ページを示しています。[指標を選択] フィールドに、フィルタされたパス kubernetes.io/networking/dns/kubedns/ が表示されます。結果のグラフには、KubeDNS リクエストとキャッシュ ステータスのアクティブな時系列グラフが表示されます。

 Google Cloud コンソールに NodeLocalDNS 指標が表示されているスクリーンショット

このスクリーンショットは、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 ソースから無効にできます。

次のステップ