Che cos'è l'osservabilità della rete dei contenitori?
Container Network Observability è una funzionalità della suite Advanced Container Networking Services . Offre strumenti di monitoraggio e diagnostica di livello superiore, dando una visibilità senza precedenti sui carichi di lavoro in contenitori. Questi strumenti consentono di individuare e risolvere facilmente i problemi di rete, garantendo prestazioni ottimali per le applicazioni.
Container Network Observability è compatibile con tutti i carichi di lavoro Linux che si integrano facilmente con Hubble indipendentemente dal fatto che il piano dati sottostante sia Cilium o non Cilium (entrambi supportati) garantendo flessibilità per le esigenze di rete dei contenitori.
Nota
Per gli scenari del piano dati Cilium, Container Network Observability è disponibile a partire dalla versione 1.29 di Kubernetes. Container Network Observability è supportato in tutte le distribuzioni linux, tra cui Azure Linux a partire dalla versione 2.0.
Funzionalità dell'osservabilità della rete dei contenitori
Container Network Observability offre le funzionalità seguenti per monitorare i problemi correlati alla rete nel cluster:
Metriche a livello di nodo: comprendere l'integrità della rete del contenitore a livello di nodo è fondamentale per mantenere le prestazioni ottimali dell'applicazione. Queste metriche forniscono informazioni dettagliate su volume del traffico, pacchetti eliminati, numero di connessioni e così via per ciascun nodo. Le metriche vengono archiviate in formato Prometheus e, di conseguenza, è possibile visualizzarle in Grafana.
Metriche Hubble (metriche DNS e a livello di pod): queste metriche Prometheus includono informazioni sui pod di origine e di destinazione, che consentono di individuare i problemi relativi alla rete a livello granulare. Le metriche riguardano il volume del traffico, i pacchetti eliminati, le reimpostazioni TCP, i flussi di pacchetti L4/L7 e così via. Esistono anche metriche DNS (attualmente solo per i piani dati non Cilium), che coprono gli errori DNS e le richieste DNS mancanti.
Log dei flussi Hubble: i log dei flussi offrono una visibilità approfondita dell'attività di rete del cluster. Tutte le comunicazioni da e verso i pod vengono registrate, consentendo di analizzare i problemi di connettività nel tempo. I log dei flussi consentono di rispondere a domande quali: il server ha ricevuto la richiesta del client? Qual è la latenza di round trip tra la richiesta del client e la risposta del server?
Interfaccia della riga di comando di Hubble: può recuperare i log dei flussi nell'intero cluster mediante filtri e formattazioni personalizzabili.
Interfaccia utente Hubble: intuitiva e basata su browser, per l'esplorazione dell'attività di rete del cluster. Crea un grafico di connessione al servizio basato sui log dei flussi e li visualizza per lo spazio dei nomi selezionato. Gli utenti sono responsabili del provisioning e della gestione dell'infrastruttura necessaria per eseguire l'interfaccia utente di Hubble.
Vantaggi principali dell'osservabilità della rete dei contenitori
Indipendente da CNI: supportata in tutte le varianti Azure CNI, incluso kubenet.
Cilium e non Cilium: offre un'esperienza uniforme e senza interruzioni nei piani dati Cilium e non Cilium.
Osservabilità della rete basata su eBPF: sfrutta eBPF (extended Berkeley Packet Filter) per ottenere prestazioni e scalabilità, in modo da identificare potenziali colli di bottiglia e problemi di congestione, prima che influiscano sulle prestazioni dell'applicazione. Consente di ottenere informazioni dettagliate sugli indicatori chiave di integrità della rete, inclusi il volume del traffico, i pacchetti eliminati e le informazioni di connessione.
Visibilità approfondita sull'attività di rete: permette di comprendere come le applicazioni comunicano tra loro mediante log dettagliati dei flussi di rete.
Opzioni semplificate di archiviazione e visualizzazione delle metriche: scegliere tra:
- Prometheus gestito di Azure e Grafana: Azure gestisce l'infrastruttura e la manutenzione, consentendo agli utenti di concentrarsi sulla configurazione e sulla visualizzazione delle metriche.
- Bring Your Own (BYO) di Prometheus e Grafana: gli utenti distribuiscono e configurano le proprie istanze, gestendo l'infrastruttura sottostante.
Metrica
Metriche a livello di nodo
Le metriche seguenti vengono aggregate per ciascun nodo. Tutte le metriche includono etichette:
cluster
instance
(nome nodo)
Per gli scenari del piano dati Cilium, Container Network Observability fornisce metriche solo per Linux, Windows non è attualmente supportato. Cilium espone diverse metriche, tra cui le seguenti usate da Container Network Observability.
Nome misurazione | Descrizione | Etichette aggiuntive | Linux | Windows |
---|---|---|---|---|
cilium_forward_count_total | Numero totale di pacchetti inoltrati | direction |
✅ | ❌ |
cilium_forward_bytes_total | Totale conteggio byte inoltrati | direction |
✅ | ❌ |
cilium_drop_count_total | Totale conteggio pacchetti eliminati | direction , reason |
✅ | ❌ |
cilium_drop_bytes_total | Totale conteggio byte eliminati | direction , reason |
✅ | ❌ |
Metriche a livello di pod (metriche Hubble)
Le metriche seguenti vengono aggregate per ogni pod, mantenendo le informazioni sul nodo. Tutte le metriche includono etichette:
cluster
instance
(nome nodo)source
oppuredestination
Per il traffico in uscita, sarà presente un'etichetta source
con spazio dei nomi/nome del pod di origine.
Per il traffico in ingresso, sarà presente un'etichetta destination
con spazio dei nomi/nome del pod di destinazione.
Nome misurazione | Descrizione | Etichette aggiuntive | Linux | Windows |
---|---|---|---|---|
hubble_dns_queries_total | Totale richieste DNS per query | source o destination , query , qtypes (tipo di query) |
✅ | ❌ |
hubble_dns_responses_total | Risposte DNS totali per query/risposta | source o destination , query , qtypes (tipo di query), rcode (codice restituito), ips_returned (numero di indirizzi IP) |
✅ | ❌ |
hubble_drop_total | Totale conteggio pacchetti eliminati | source o destination , protocol , reason |
✅ | ❌ |
hubble_tcp_flags_total | Numero totale di pacchetti TCP per flag. | source o destination , flag |
✅ | ❌ |
hubble_flows_processed_total | Flussi di rete totali elaborati (traffico L4/L7) | source o destination , protocol , verdict , type , subtype |
✅ | ❌ |
Limiti
- Le metriche a livello di pod sono disponibili solo in Linux.
- Il piano dati Cilium è supportato a partire dalla versione 1.29 di Kubernetes.
- Le etichette delle metriche possono avere differenze sottili tra i cluster Cilium e non Cilium.
- Per i cluster basati su Cilium, le metriche DNS sono disponibili solo per i pod con criteri di rete Cilium (CNP) configurati nei cluster.
- I log dei flussi non sono attualmente disponibili nel cloud air gapped.
- L'inoltro hubble può arrestarsi in modo anomalo se uno degli agenti del nodo hubble diventa inattivo e può causare interruzioni dell'interfaccia della riga di comando di Hubble.
Ridimensiona
Prometheus gestito di Azure e Grafana impongono limitazioni di scalabilità specifiche del servizio. Per altre informazioni, vedere Scrape Prometheus metrics at scale in Monitoraggio di Azure.
Prezzi
Importante
Advanced Container Networking Services è un'offerta a pagamento. Per altre informazioni sui prezzi, vedere Servizi di rete dei contenitori avanzati - Prezzi.
Passaggi successivi
- Per creare un cluster del servizio Azure Kubernetes con Container Network Observability, vedere Configurare l'osservabilità della rete dei contenitori per servizio Azure Kubernetes (servizio Azure Kubernetes).
Azure Kubernetes Service