Was ist Advanced Network Observability?
Advanced Network Observability ist eine der ersten Funktionen der Suite Erweiterte Container-Netzwerkdienste. Sie stattet Sie mit Überwachungs- und Diagnosetools der nächsten Generation aus, die Ihnen einen unvergleichlichen Einblick in Ihre containerisierten Workloads geben. Mit diesen Tools können Sie Netzwerkprobleme leicht erkennen und beheben und so die optimale Leistung Ihrer Anwendungen sicherstellen.
Advanced Network Observability ist mit allen Linux-Workloads kompatibel und lässt sich nahtlos in Hubble integrieren, unabhängig davon, ob die zugrunde liegende Datenebene von Cilium oder einem anderen Hersteller stammt (beide werden unterstützt), wodurch Flexibilität für Ihre Container-Netzwerkanforderungen gewährleistet ist.
Hinweis
Für Cilium-Datenebenenszenarien ist Advanced Network Observability ab Kubernetes Version 1.29 verfügbar. Für Szenarien mit Datenebenen, die nicht von Cilium stammen, wird Advanced Network Observability auf allen Linux-Distributionen einschließlich Azure Linux ab Version 2.0 unterstützt.
Funktionen von Advanced Network Observability
Advanced Network Observability bietet die folgenden Funktionen zur Überwachung von netzwerkbezogenen Problemen in Ihrem Cluster:
Metriken auf Knotenebene: Das Verständnis des Zustands Ihres Container-Netzwerks auf Knotenebene ist entscheidend für die Aufrechterhaltung einer optimalen Anwendungsleistung. Diese Metriken bieten Einblicke in das Datenverkehrsvolumen, verworfene Pakete, die Anzahl der Verbindungen usw. nach Knoten. Die Metriken werden im Prometheus-Format gespeichert und können daher in Grafana angezeigt werden.
Hubble-Metriken (Metriken auf DNS- und Pod-Ebene): Diese Prometheus-Metriken enthalten Quell- und Zielpodinformationen, die es Ihnen ermöglichen, netzwerkbezogene Probleme auf granularer Ebene zu identifizieren. Die Metriken decken das Datenverkehrsvolumen, verworfene Pakete, TCP-Zurücksetzungen, L4/L7-Paketflüsse usw. ab. Es gibt auch DNS-Metriken (derzeit nur für Nicht-Cilium-Datenebenen), die DNS-Fehler und fehlende Antworten auf DNS-Anforderungen erfassen.
Hubble-Datenflussprotokolle: Datenflussprotokolle bieten umfassende Einblicke in die Netzwerkaktivität Ihres Clusters. Sämtliche Kommunikation an und von Pods wird protokolliert, sodass Sie Konnektivitätsprobleme im Laufe der Zeit untersuchen können. Datenflussprotokolle helfen bei der Beantwortung von Fragen wie: Hat der Server die Anforderung des Clients erhalten? Was ist die Roundtrip-Wartezeit zwischen der Anforderung des Clients und der Serverantwort?
Hubble CLI: Die Hubble-Befehlszeilenschnittstelle (CLI) kann Datenflussprotokolle für den gesamten Cluster mit anpassbarer Filterung und Formatierung abrufen.
Hubble UI: Hubble UI ist eine benutzerfreundliche browserbasierte Benutzeroberfläche zum Untersuchen von Clusternetzwerkaktivitäten. Sie erstellt ein Dienstverbindungsdiagramm basierend auf Datenflussprotokollen und zeigt Datenflussprotokolle für den ausgewählten Namespace an. Benutzer sind für die Bereitstellung und Verwaltung der Infrastruktur verantwortlich, die zum Ausführen von Hubble UI erforderlich ist.
Die wichtigsten Vorteile von Advanced Network Observability
CNI-agnostisch: Unterstützt alle Azure CNI-Varianten einschließlich kubenet.
Cilium und Nicht-Cilium: Bietet eine einheitliche, nahtlose Erfahrung sowohl für Cilium- als auch für Nicht-Cilium-Datenebenen.
eBPF-basierter Netzwerkeinblick: Nutzt eBPF (erweiterter Berkeley Packet Filter) für Leistung und Skalierbarkeit, um potenzielle Engpässe und Überlastungsprobleme zu erkennen, bevor sie die Anwendungsleistung beeinträchtigen. Erhalten Sie Einblicke in wichtige Netzwerkintegritätsindikatoren, einschließlich Datenverkehrsvolumen, verworfene Pakete und Verbindungsinformationen.
Tiefer Einblick in die Netzwerkaktivität: Verstehen Sie anhand detaillierter Netzwerk-Datenflussprotokolle, wie Ihre Anwendungen miteinander kommunizieren.
Vereinfachte Optionen für die Speicherung und Visualisierung von Metriken: Wählen Sie zwischen:
- Azure Managed Prometheus und Grafana: Azure verwaltet die Infrastruktur und die Wartung, sodass sich Benutzer auf die Konfiguration von Metriken und die Visualisierung von Metriken konzentrieren können.
- Verwendung eigener Prometheus- und Grafana-Instanzen: Benutzer stellen ihre eigenen Instanzen bereit, konfigurieren sie und verwalten die zugrunde liegende Infrastruktur.
Metriken
Metriken auf Knotenebene
Die folgenden Metriken werden pro Knoten aggregiert. Alle Metriken enthalten Bezeichnungen:
cluster
instance
(Knotenname)
Für Szenarien mit Datenebenen, die nicht von Cilium stammen, bietet Advanced Network Observability Metriken sowohl für Linux- als auch für Windows-Betriebssysteme. Die folgende Tabelle gibt einen Überblick über die verschiedenen generierten Metriken.
Metrikname | Beschreibung | Zusätzliche Bezeichnungen | Linux | Windows |
---|---|---|---|---|
networkobservability_forward_count | Gesamtzahl der weitergeleiteten Pakete | direction |
✅ | ✅ |
networkobservability_forward_bytes | Gesamtanzahl weitergeleiteter Byte | direction |
✅ | ✅ |
networkobservability_drop_count | Gesamtzahl der gelöschten Pakete | direction , reason |
✅ | ✅ |
networkobservability_drop_bytes | Gesamtanzahl der gelöschten Byte | direction , reason |
✅ | ✅ |
networkobservability_tcp_state | Anzahl der derzeit aktiven TCP-Sockets nach TCP-Status. | state |
✅ | ✅ |
networkobservability_tcp_connection_remote | Anzahl der derzeit aktiven TCP-Sockets nach Remote-IP/Port. | address (IP), port |
✅ | ❌ |
networkobservability_tcp_connection_stats | TCP-Verbindungsstatistiken. (z. B. Delayed ACKs, TCPKeepAlive, TCPSackFailures) | statistic |
✅ | ✅ |
networkobservability_tcp_flag_counters | Anzahl der TCP-Pakete nach Flag. | flag |
❌ | ✅ |
networkobservability_ip_connection_stats | TCP-Verbindungsstatistiken. | statistic |
✅ | ❌ |
networkobservability_udp_connection_stats | UDP-Verbindungsstatistiken. | statistic |
✅ | ❌ |
networkobservability_udp_active_sockets | Anzahl der derzeit aktiven UDP-Sockets | ✅ | ❌ | |
networkobservability_interface_stats | Schnittstellenstatistiken. | InterfaceName, statistic |
✅ | ✅ |
Metriken auf Podebene (Hubble-Metriken)
Die folgenden Metriken werden pro Pod aggregiert (Knoteninformationen bleiben erhalten). Alle Metriken enthalten Bezeichnungen:
cluster
instance
(Knotenname)source
oderdestination
Für ausgehenden Datenverkehr gibt es eine source
-Bezeichnung mit dem Namespace/Namen des Quellpods.
Für eingehenden Datenverkehr gibt es eine destination
-Bezeichnung mit dem Namespace/Namen des Zielpods.
Metrikname | Beschreibung | Zusätzliche Bezeichnungen | Linux | Windows |
---|---|---|---|---|
hubble_dns_queries_total | Gesamtanzahl der DNS-Anforderungen nach Abfrage | source oder destination , query , qtypes (Abfragetyp) |
✅ | ❌ |
hubble_dns_responses_total | Gesamtanzahl der DNS-Antworten nach Abfrage/Antwort | source oder destination , query , qtypes (Abfragetyp), rcode (Rückgabecode), ips_returned (Anzahl der IPs) |
✅ | ❌ |
hubble_drop_total | Gesamtzahl der gelöschten Pakete | source oder destination , protocol , reason |
✅ | ❌ |
hubble_tcp_flags_total | Gesamtzahl der TCP-Pakete nach Flag. | source oder destination , flag |
✅ | ❌ |
hubble_flows_processed_total | Verarbeitete Netzwerkdatenflüsse insgesamt (L4/L7-Datenverkehr) | source oder destination , protocol , verdict , type , subtype |
✅ | ❌ |
Begrenzungen
- Metriken auf Podebene sind nur unter Linux verfügbar.
- Die Cilium-Datenebene wird ab Kubernetes Version 1.29 unterstützt.
- Metrikbezeichnungen können subtile Unterschiede zwischen Cilium- und Nicht-Cilium-Clustern aufweisen.
- Die Cilium-Datenebene unterstützt derzeit keine DNS-Metriken.
Skalieren
Für von Azure verwaltete Prometheus- und Grafana-Instanzen gelten dienstspezifische Skalierungseinschränkungen. Weitere Informationen finden Sie unter Scrape Prometheus-Metriken im großen Stil in Azure Monitor.
Nächste Schritte
Weitere Informationen zu Erweiterte Container-Netzwerkdienste für Azure Kubernetes Service (AKS) finden Sie unter Was ist Erweiterte Container-Netzwerkdienste für Azure Kubernetes Service (AKS)?.
Informationen zum Erstellen eines AKS-Clusters mit Advanced Network Observability und von Azure verwalteten Prometheus- und Grafana-Instanzen finden Sie unter Einrichten von Network Observability für Azure Kubernetes Service (AKS) Azure-verwaltetes Prometheus und Grafana.
Informationen zum Erstellen eines AKS-Clusters mit Advanced Network Observability und zur Verwendung eigener Prometheus- und Grafana-Instanzen finden Sie unter Einrichten von Network Observability für Azure Kubernetes Service (AKS) BYO Prometheus und Grafana.
Azure Kubernetes Service