Azure Kubernetes Application Network 메트릭 구성 및 보기(미리 보기)

중요합니다

AKS 미리 보기 기능은 셀프 서비스에서 사용할 수 있습니다(옵트인 방식). 미리 보기는 "있는 그대로" 및 "사용 가능한 상태로" 제공되며 서비스 수준 계약 및 제한적 보증에서 제외됩니다. AKS 미리 보기의 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.

Azure Kubernetes Application Network는 Azure Monitor 메트릭을 통해 워크로드 및 Azure Kubernetes Application Network 데이터 평면 구성 요소(ZTunnel, Istio CNI 및 Waypoint)에 대한 포괄적인 메트릭을 제공합니다. 이 문서에서는 Azure Monitor에서 이러한 메트릭을 구성하고 보는 방법을 설명합니다.

제한점

컨트롤 플레인 메트릭은 현재 지원되지 않습니다. 그러나 데이터 평면 메트릭을 사용할 수 있으며 이를 사용하여 워크로드 및 Azure Kubernetes Application Network 구성 요소의 상태 및 성능을 모니터링할 수 있습니다.

데이터 플레인 메트릭

데이터 평면 메트릭에는 워크로드/애플리케이션 및 네임스페이스의 메트릭이 appnet-system 포함됩니다. Azure Kubernetes Application Network는 현재 데이터 평면 메트릭에 대한 지원만 제공합니다.

데이터 평면 메트릭 구성

데이터 평면 메트릭에 대한 작업 영역 구성 옵션

Azure Kubernetes Application Network 멤버 클러스터에 대해 Prometheus 메트릭 컬렉션을 사용하도록 설정하는 경우 작업 영역 구성에 대한 다음 옵션이 있습니다.

  • 기존 Azure Monitor 작업 영역을 사용합니다.
  • 작업 영역 리소스 ID를 생략하고 리소스 그룹에 대해 만든 기본 작업 영역을 사용합니다.
  • 새 Azure Monitor 작업 영역을 만듭니다.

데이터 평면 메트릭 수집 활성화

  1. 사용 중인 작업 영역 ID로 설정된 az aks update 매개 변수를 사용하여 --azure-monitor-workspace-resource-id 명령으로 Azure Kubernetes Application Network 멤버 클러스터에서 Prometheus 메트릭 수집을 활성화합니다. 멤버 클러스터에서 Azure Monitor 메트릭을 이미 사용하도록 설정한 경우 다음 단계로 건너뛸 수 있습니다.

    az aks update --enable-azure-monitor-metrics \
      --name $CLUSTER_NAME \
      --resource-group $AKS_RG \
      --azure-monitor-workspace-resource-id $WORKSPACE_ID
    
  2. 명령 kube-system을 사용하여 kubectl apply 네임스페이스에서 다음 ConfigMap을 만들고 적용합니다. 이 ConfigMap을 사용하면 Ztunnel, Istio CNI, 웨이포인트 및 애플리케이션/워크로드를 스크래핑할 수 있습니다.

    kubectl apply -f - <<EOF
    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: ama-metrics-settings-configmap
      namespace: kube-system
    data:
      schema-version: v1
      config-version: ver1
      prometheus-collector-settings: |-
        cluster_alias = ""
        https_config = true
      default-scrape-settings-enabled: |-
        ztunnel = true
        istio-cni = true
      pod-annotation-based-scraping: |-
        podannotationnamespaceregex = ".*"
      default-targets-metrics-keep-list: |-
        ztunnel = ""
        istio-cni = ""
        minimalingestionprofile = true
      default-targets-scrape-interval-settings: |-
        ztunnel = "30s"
        istio-cni = "30s"
        podannotations = "30s"
      debug-mode: |-
        enabled = false
    EOF
    
  3. 스크래핑하려는 애플리케이션 Pod에 주석을 추가합니다.

    • Pod를 긁어내야 함을 나타내기 위해 prometheus.io/scrape: "true"이(가) 필요합니다.
    • prometheus.io/path 는 선택적으로 메트릭이 호스트되는 경로를 나타내는 데 사용됩니다. 생략하면 기본값은 /metrics입니다.
    • prometheus.io/port 는 선택적으로 메트릭이 호스트되는 포트를 나타내는 데 사용됩니다. 생략하면 Prometheus는 Pod 사양에서 컨테이너의 선언된 포트를 사용합니다. 선언된 포트가 없는 컨테이너의 경우 Prometheus는 포트가 없는 대상(IP만 해당)을 만듭니다. 이를 위해서는 포트 주석을 사용하기 위해 적절한 레이블 지정 구성이 필요합니다. 신뢰할 수 있는 스크래핑을 보장하기 위해 포트를 명시적으로 지정하는 것이 좋습니다.

    다음 샘플에서는 <pod IP>:15020/metrics에서 메트릭을 호스팅하는 파드에 대한 주석을 정의합니다.

    prometheus.io/scrape: "true"
    prometheus.io/port: "15020"
    prometheus.io/path: "/metrics"
    

    AMA 메트릭 ReplicaSet이 이 구성을 로드하는 데 몇 분 정도 걸릴 수 있습니다.

데이터 평면 메트릭 보기

  1. Azure Portal에서 Azure Monitor 작업 영역으로 이동하여 PromQL을 사용하여 메트릭을 쿼리합니다.

  2. 일부 트래픽을 생성 한 다음, 노출된 메트릭 에서 쿼리를 선택하여 메트릭을 봅니다. 예를 들어 다음 쿼리를 실행하여 웨이포인트에서 처리된 총 요청 수를 볼 수 있습니다.

    # ztunnel
    istio_xds_connection_terminations_total
    
    # waypoint
    istio_requests_total
    
    # istio-cni
    istio_cni_install_ready
    

    다음 스크린샷은 샘플 쿼리에 대한 결과를 보여 줍니다.

    웨이포인트에서 처리된 총 요청 수를 보기 위한 쿼리 결과의 스크린샷.

노출된 메트릭 목록

구성 요소 노출된 메트릭
ZTunnel istio_build
istio_xds_connection_terminations_total
istio_xds_message_total
istio_xds_message_bytes_total
istio_tcp_connections_opened_total
istio_tcp_connections_closed_total
istio_tcp_received_bytes_total
istio_tcp_sent_bytes_total
istio_on_demand_dns
istio_dns_requests_total
istio_dns_upstream_requests
istio_dns_upstream_failures
istio_dns_upstream_request_duration_seconds
workload_manager_active_proxy_count
workload_manager_pending_proxy_count
workload_manager_proxies_started_total
workload_manager_proxies_stopped_total
Istio CNI istio_cni_install_ready
istio_cni_installs_total
nodeagent_reconcile_events_total
ztunnel_connected
좌표 istio_build
istio_request_bytes_bucket
istio_request_bytes_count
istio_request_bytes_sum
istio_request_duration_milliseconds_bucket
istio_request_duration_milliseconds_count
istio_request_duration_milliseconds_sum
istio_requests_total
istio_response_bytes_bucket
istio_response_bytes_count
istio_response_bytes_sum

웨이포인트 프록시에서 직접 메트릭 액세스

Istio 요청/응답 메트릭 외에도 웨이포인트 프록시는 Envoy 메트릭을 내보냅니다.

  • 웨이포인트에서 내보낸 메트릭의 전체 목록을 찾으려면 네임스페이스의 웨이포인트 프록시로 포트 전달하고 다음 명령을 사용하여 메트릭을 나열할 수 있습니다.

    # Port-forward to waypoint proxy
    kubectl port-forward -n <namespace> deployment/waypoint 15020:15020 &
    
    # List metrics exposed by waypoint
    curl http://localhost:15020/stats/prometheus | grep -v '^#' | grep -v '^$' | awk -F'{' '{print $1}' | sort -u
    

Azure Portal에서 Grafana를 사용하여 메트릭 시각화

  1. Istio 커뮤니티 대시보드를 가져옵니다.

  2. 멤버 클러스터에 대한 트래픽을 생성한 다음, Azure Portal에서 Azure Monitor 작업 영역으로 이동합니다.

  3. Grafana를 사용하여 대시보드> 선택합니다.

    다음 스크린샷은 Istio Ztunnel 대시보드를 가져오는 예제를 보여 줍니다.

    Azure Portal의 Azure Monitor 작업 영역에서 대시보드 가져오기 옵션을 보여 주는 스크린샷.

    Azure Portal에서 Ztunnel 대시보드를 가져오기 위한 검토 옵션을 보여 주는 스크린샷

    Azure Portal의 Grafana 대시보드에서 Ztunnel 대시보드 시각화를 보여 주는 스크린샷

Grafana를 사용하여 대시보드 대신 Azure Managed Grafana를 구성하려면 Azure CLI를 사용하여 Azure Managed Grafana 작업 영역 만들기를 참조하세요.

Azure Kubernetes Application Network 관찰 및 모니터링에 대한 자세한 내용은 다음 문서를 참조하세요.