이 문서에서는 GKE DNS 측정항목을 사용하여 DNS 트래픽을 관찰하는 방법을 보여줍니다. GKE DNS 측정항목은 다음 버전을 실행하는 클러스터의 Google Cloud 콘솔에서 사용할 수 있습니다.
향상된 KubeDNS의 경우 GKE 버전 1.36 이상
NodeLocalDNS의 경우 GKE 버전 1.35.2-gke.1090000 이상
DNS 측정항목 보기
Google Cloud 콘솔의 측정항목 탐색기에서 다음과 같은 방법으로 GKE DNS 측정항목을 볼 수 있습니다.
GKE DNS 모니터링 가능성 대시보드 사용
Google은 모니터링 > 대시보드 > GKE DNS 모니터링 가능성 - 클러스터 뷰에서 사전 정의된 DNS 대시보드를 제공합니다. 이 대시보드에는 KubeDNS 및 NodeLocalDNS 측정항목이 표시됩니다. 대시보드를 보려면 NodeLocalDNS 또는 KubeDNS를 사용하는 클러스터가 필요합니다.
GKE DNS Observability 대시보드 사용 예시:
먼저 다음 이미지와 같이 Monitoring > 대시보드로 이동합니다.

이 스크린샷은 왼쪽에 있는 Google Cloud 콘솔 탐색 메뉴를 보여줍니다. Monitoring 섹션이 펼쳐지고 대시보드가 강조 표시되어 탐색을 안내합니다.
그런 다음 GKE DNS 모니터링 가능성 - 클러스터 뷰 대시보드로 이동합니다.

이 스크린샷은 대시보드 디렉터리 페이지를 보여주며, 사용 가능한 대시보드 목록에서 GKE DNS 모니터링 가능성 - 클러스터 뷰 대시보드가 강조 표시되어 있습니다. 이 링크를 클릭하면 클러스터 수준 DNS 측정항목 시각화가 열립니다.
맞춤설정된 대시보드 만들기
커스텀 대시보드를 만들고 모니터링 중인 측정항목과 유사한 알림을 설정하려면 Cloud Monitoring 측정항목 탐색기와 같은 Google Cloud Observability 도구를 사용하세요.
DNS 모니터링 가능성 측정항목 쿼리
클러스터의 GKE DNS 측정항목을 보려면 Google Cloud 콘솔의 측정항목 탐색기에서 다음 단계를 수행합니다.
Monitoring > 측정항목 탐색기 페이지로 이동합니다.
측정항목 선택 필드에서
kubernetes.io/networking/dns/를 필터링합니다.KubeDNS 측정항목은 Kubernetes 컨테이너 리소스에 있고 NodeLocalDNS 측정항목은 Kubernetes 노드 리소스에 있습니다.
(선택사항) 라벨을 기준으로 선택한 필터를 선택합니다.
모니터링 > 측정항목 탐색기의 Google Cloud 콘솔에 있는 KubeDNS 측정항목 및 NodeLocalDNS 측정항목의 예시:

이 스크린샷은 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}]))
이러한 측정항목을 볼 때Google Cloud 콘솔은 request_count 측정항목에 비율 작업을 자동으로 적용하며, 이는 PromQL 소스에서 사용 중지할 수 있습니다.