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 ワークスペースを作成します。
データ プレーン メトリックの収集を有効にする
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_IDkube-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スクレーピングするアプリケーション ポッドに注釈を追加します。
-
prometheus.io/scrape: "true"は、ポッドをスクレイピングする必要があることを示すために必要です。 -
prometheus.io/pathは必要に応じて、メトリックがホストされるパスを示すために使用されます。 省略すると、既定で/metricsされます。 -
prometheus.io/portは必要に応じて、メトリックがホストされているポートを示すために使用されます。 省略した場合、Prometheus はポッド スペックからコンテナーの宣言されたポートを使用します。宣言されたポートのないコンテナーの場合、Prometheus はポートフリー ターゲット (IP のみ) を作成します。これには、ポート注釈を操作するための適切な再ラベル付け構成が必要です。 信頼性の高いスクレイピングを確保するために、ポートを明示的に指定することをお勧めします。
次の例では、メトリックをホストしているポッドの注釈を定義します。
<pod IP>:15020/metricsprometheus.io/scrape: "true" prometheus.io/port: "15020" prometheus.io/path: "/metrics"AMA メトリック ReplicaSet がこの構成を読み込むには数分かかる場合があります。
-
データ プレーンメトリックを表示する
Azure portal で Azure Monitor ワークスペースに移動し、PromQL を使用してメトリックのクエリを実行します。
トラフィックをいくつか生成し、 公開されているメトリック からクエリを選択してメトリックを表示します。 たとえば、次のクエリを実行して、ウェイポイントによって処理された要求の合計数を表示できます。
# ztunnel istio_xds_connection_terminations_total # waypoint istio_requests_total # istio-cni istio_cni_install_ready次のスクリーンショットは、サンプル クエリの結果を示しています。
公開されているメトリックの一覧
| コンポーネント | 公開されているメトリック |
|---|---|
| ZTunnel | istio_buildistio_xds_connection_terminations_totalistio_xds_message_totalistio_xds_message_bytes_totalistio_tcp_connections_opened_totalistio_tcp_connections_closed_totalistio_tcp_received_bytes_totalistio_tcp_sent_bytes_totalistio_on_demand_dnsistio_dns_requests_totalistio_dns_upstream_requestsistio_dns_upstream_failuresistio_dns_upstream_request_duration_secondsworkload_manager_active_proxy_countworkload_manager_pending_proxy_countworkload_manager_proxies_started_totalworkload_manager_proxies_stopped_total |
| Istio CNI | istio_cni_install_readyistio_cni_installs_totalnodeagent_reconcile_events_totalztunnel_connected |
| ウェイ ポイント | istio_buildistio_request_bytes_bucketistio_request_bytes_countistio_request_bytes_sumistio_request_duration_milliseconds_bucketistio_request_duration_milliseconds_countistio_request_duration_milliseconds_sumistio_requests_totalistio_response_bytes_bucketistio_response_bytes_countistio_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 を使用してメトリックを視覚化する
メンバー クラスターのトラフィックを生成し、Azure portal で Azure Monitor ワークスペースに移動します。
Grafana で 監視>ダッシュボードを選択します。
次のスクリーンショットは、 Istio Ztunnel ダッシュボードのインポートの例を示しています。
ダッシュボードと Grafana の代わりに Azure Managed Grafana を構成する場合は、 Azure CLI を使用した Azure Managed Grafana ワークスペースの作成に関するページを参照してください。
関連するコンテンツ
Azure Kubernetes Application Network の可観測性と監視の詳細については、次の記事を参照してください。