次の方法で共有


Azure Kubernetes Application Network メトリックの構成と表示 (プレビュー)

Important

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. az aks update パラメーターを既存のワークスペース ID に設定して、--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、waypoint、およびアプリケーション/ワークロードをスクレイピングできます。

    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. スクレーピングするアプリケーション ポッドに注釈を追加します。

    • prometheus.io/scrape: "true" は、ポッドをスクレイピングする必要があることを示すために必要です。
    • prometheus.io/path は必要に応じて、メトリックがホストされるパスを示すために使用されます。 省略すると、既定で /metricsされます。
    • prometheus.io/port は必要に応じて、メトリックがホストされているポートを示すために使用されます。 省略した場合、Prometheus はポッド スペックからコンテナーの宣言されたポートを使用します。宣言されたポートのないコンテナーの場合、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 の可観測性と監視の詳細については、次の記事を参照してください。