アドバンスト ネットワーク監視とは
アドバンスト ネットワーク監視は、アドバンスト コンテナー ネットワークサービス スイートの最初の機能です。 これまでにないレベルの監視と診断のツールがそろっているため、コンテナー化ワークロードに対する比類のない可視化が実現します。 これらのツールを使用すると、ネットワークの問題を簡単に特定してトラブルシューティングできるので、アプリケーションの最適なパフォーマンスを確実に維持できます。
アドバンスト ネットワーク監視は、すべての Linux ワークロードに対応しており、基になるデータ プレーンが Cilium か非 Cilium かを問わず (両方ともサポートされます) Hubble とシームレスに統合されるので、コンテナー ネットワークのニーズを柔軟に満たすことができます。
Note
Cilium データ プレーンのシナリオでは、アドバンスト ネットワーク監視は Kubernetes バージョン 1.29 以降で利用できます。 非 Cilium データ プレーンのシナリオでは、アドバンスト ネットワーク監視は Azure Linux を含むすべての Linux ディストリビューションでバージョン 2.0 からサポートされます。
アドバンスト ネットワーク監視の機能
アドバンスト ネットワーク監視は、クラスター内のネットワーク関連の問題を監視するための次の機能を備えています。
ノードレベルのメトリック: 最適なアプリケーション パフォーマンスを維持するには、ノードレベルでのコンテナー ネットワークの正常性を理解することが重要です。 これらのメトリックからは、トラフィック量、ドロップされたパケット、接続の数などの分析情報がノード別に得られます。 このメトリックは Prometheus 形式で保存されるため、Grafana で見ることができます。
Hubble メトリック (DNS とポッドレベルのメトリック): これらの Prometheus メトリックにはソースと宛先のポッド情報が含まれているため、ネットワーク関連の問題を細分化したレベルで特定できます。 メトリックは、トラフィック量、ドロップされたパケット、TCP リセット、L4/L7 パケット フローなどの数を表します。DNS メトリックもあり (現在は非 Cilium データ プレーンのみ)、DNS エラーと、応答のない DNS 要求の数を表します。
Hubble フロー ログ: フロー ログを使用すると、クラスターのネットワーク アクティビティを詳細に可視化できます。 ポッドとの間のすべての通信がログに記録されるので、接続の問題を時系列で調査できます。 フロー ログを利用して解決できる疑問としては、「サーバーはクライアントの要求を受け取ったか?」、 「クライアントの要求からサーバーの応答までのラウンドトリップ待ち時間はどれくらいか?」などがあります。
Hubble CLI: Hubble コマンド ライン インターフェイス (CLI) では、クラスター全体からフロー ログを取得でき、フィルター処理と書式設定のカスタマイズも可能です。
Hubble UI: Hubble UI は、クラスター ネットワーク アクティビティを探索するためのユーザー フレンドリなブラウザーベースのインターフェイスです。 フロー ログに基づいてサービス接続グラフを作成することや、選択した名前空間のフロー ログを表示することができます。 Hubble UI の実行に必要なインフラストラクチャのプロビジョニングと管理を行うのはユーザーの責任です。
アドバンスト ネットワーク監視の主な利点
CNI を問わない: Azure CNI のすべてのバリアントでサポートされ、これには kubenet も含まれます。
Cilium と非 Cilium: Cilium と非 Cilium のどちらのデータ プレーンでもシームレスなエクスペリエンスは同じです。
eBPF ベースのネットワーク監視: パフォーマンスとスケーラビリティに優れた eBPF (extended Berkeley Packet Filter) を活用して、潜在的なボトルネックや輻輳の問題がアプリケーションのパフォーマンスに影響を与える前にこれらを特定します。 ネットワーク正常性に関する主要インジケーター、たとえばトラフィック量、ドロップされたパケット、接続情報などについての分析情報が得られます。
ネットワーク アクティビティの詳細な可視化: アプリケーションどうしがどのように通信しているかを、詳細なネットワーク フロー ログを通じて理解できます。
メトリック保存と視覚化に関するシンプルな選択肢: 次のいずれかを選択できます。
- Azure Managed Prometheus と Grafana: Azure がインフラストラクチャとメンテナンスを管理するので、ユーザーはメトリックの構成とメトリックの視覚化に集中できます。
- Bring Your Own (BYO) Prometheus と Grafana: ユーザーが自分のインスタンスをデプロイして構成し、基になるインフラストラクチャを管理します。
メトリック
ノードレベルのメトリック
次のメトリックがノードごとに集計されます。 すべてのメトリックに次のラベルがあります。
cluster
instance
(ノード名)
非 Cilium データ プレーンのシナリオでは、アドバンスト ネットワーク監視によって Linux と Windows の両方のオペレーティング システムのメトリックが提供されます。 次の表に、生成されるさまざまなメトリックの概要を示します。
メトリックの名前 | 説明 | 追加のラベル | Linux | Windows |
---|---|---|---|---|
networkobservability_forward_count | 転送されたパケット数の合計 | direction |
✅ | ✅ |
networkobservability_forward_bytes | 転送されたバイト数の合計 | direction |
✅ | ✅ |
networkobservability_drop_count | 破棄されたパケット数の合計 | direction 、reason |
✅ | ✅ |
networkobservability_drop_bytes | 破棄されたバイト数の合計 | direction 、 reason |
✅ | ✅ |
networkobservability_tcp_state | TCP 現在アクティブなソケット数 (TCP 状態別)。 | state |
✅ | ✅ |
networkobservability_tcp_connection_remote | TCP 現在アクティブなソケット数 (リモート IP/ポート別)。 | address (IP)、port |
✅ | ❌ |
networkobservability_tcp_connection_stats | VPN 接続統計情報。 (例: 遅延 ACK、TCPKeepAlive、TCPSackFailures) | statistic |
✅ | ✅ |
networkobservability_tcp_flag_counters | フラグ別の TCP パケット数。 | flag |
❌ | ✅ |
networkobservability_ip_connection_stats | IP 接続統計情報 。 | statistic |
✅ | ❌ |
networkobservability_udp_connection_stats | UDP 接続統計情報 | statistic |
✅ | ❌ |
networkobservability_udp_active_sockets | UDP 現在アクティブなソケット数 | ✅ | ❌ | |
networkobservability_interface_stats | インターフェイス統計。 | InterfaceName、statistic |
✅ | ✅ |
ポッドレベルのメトリック (Hubble メトリック)
次のメトリックはポッドごとに集計されます (ノード情報は保持されます)。 すべてのメトリックに次のラベルがあります。
cluster
instance
(ノード名)source
またはdestination
発信トラフィックの場合は、ソース ポッドの名前空間/名前を表す source
ラベルがあります。
着信トラフィックの場合は、宛先ポッドの名前空間/名前を表す destination
ラベルがあります。
メトリックの名前 | 説明 | 追加のラベル | Linux | Windows |
---|---|---|---|---|
hubble_dns_queries_total | クエリ別の DNS 要求総数 | source または destination 、query 、qtypes (クエリの種類) |
✅ | ❌ |
hubble_dns_responses_total | クエリ/応答別の DNS 応答総数 | source または destination 、query 、qtypes (クエリの種類)、rcode (リターン コード)、ips_returned (IP の数) |
✅ | ❌ |
hubble_drop_total | 破棄されたパケット数の合計 | source または destination 、protocol 、reason |
✅ | ❌ |
hubble_tcp_flags_total | フラグ別の TCP パケット総数。 | source または destination 、flag |
✅ | ❌ |
hubble_flows_processed_total | 処理されたネットワーク フローの総数 (L4/L7 トラフィック) | source または destination 、protocol 、verdict 、type 、subtype |
✅ | ❌ |
制限事項
- ポッドレベルのメトリックを利用できるのは Linux 上のみです。
- Cilium データ プレーンがサポートされるのは Kubernetes バージョン 1.29 以降です。
- メトリックのラベルは、Cilium クラスターと非 Cilium クラスターとでわずかに異なる場合があります。
- Cilium データ プレーンでは、現時点では DNS メトリックはサポートされていません。
スケール
Azure が管理する Prometheus と Grafana では、サービス固有のスケールの制限があります。 詳細については、「Azure Monitor で大規模に Prometheus メトリックをスクレイピングする」を参照してください
次のステップ
Azure Kubernetes Service (AKS) 用のアドバンスト コンテナー ネットワークサービスの詳細については、Azure Kubernetes Service (AKS) 用のアドバンスト コンテナー ネットワークサービスとは何かに関するページを参照してください。
アドバンスト ネットワーク監視と Azure が管理する Prometheus および Grafana を使用する AKS クラスターを作成するには、「Azure Kubernetes Service (AKS) におけるアドバンスト ネットワーク監視のセットアップ - Azure Managed Prometheus と Grafana」を参照してください。
アドバンスト ネットワーク監視と BYO の Prometheus および Grafana を使用する AKS クラスターを作成するには、Azure Kubernetes Service (AKS) におけるアドバンスト ネットワーク監視のセットアップと BYO Prometheus および Grafana に関するページを参照してください。
Azure Kubernetes Service