O que é Observabilidade de Rede Avançada?
A Observabilidade de Rede Avançada é um recurso inicial do pacote Serviços Avançados de Rede de Contêineres. Ela fornece a você ferramentas de diagnóstico e monitoramento de nível superior, oferecendo visibilidade incomparável em suas cargas de trabalho em contêineres. Essas ferramentas permitem que você identifique e solucione problemas de rede com facilidade, garantindo o desempenho ideal para seus aplicativos.
A Observabilidade de Rede Avançada é compatível com todas as cargas de trabalho do Linux que se integram perfeitamente ao Hubble, independentemente de o plano de dados subjacente ser Cilium ou não Cilium (ambos têm suporte) garantindo flexibilidade para suas necessidades de sistema de rede de contêiner.
Observação
Para cenários com plano de dados Cilium, a Observabilidade de Rede Avançada está disponível começando com Kubernetes versão 1.29. Para cenários de plano de dados não Cilium, há suporte para a Observabilidade de Rede Avançada em todas as distribuições do Linux, incluindo o Azure Linux a partir da versão 2.0.
Recurso da Observabilidade de Rede Avançada
A Observabilidade de Rede Avançada oferece os seguintes recursos para monitorar problemas relacionados à rede em seu cluster:
Métricas no nível do nó: entender a integridade da rede de contêiner no nível do nó é crucial para manter o desempenho ideal do aplicativo. Essas métricas fornecem insights sobre volume de tráfego, pacotes removidos, número de conexões etc. por nó. As métricas são armazenadas no formato Prometheus e, como tal, você pode exibi-las no Grafana.
Métricas do Hubble (Métricas de nível de pod e DNS): essas métricas do Prometheus incluem informações de pod de origem e de destino, permitindo que você identifique problemas relacionados à rede em um nível detalhado. As métricas abrangem volume de tráfego, pacotes removidos, redefinições de TCP, fluxos de pacote L4/L7 etc. Há também métricas DNS (atualmente apenas para planos de dados não Cilium), abrangendo erros DNS e respostas ausentes de solicitações DNS.
Logs de fluxo do Hubble: os logs de fluxo fornecem visibilidade detalhada da atividade de rede do cluster. Todas as comunicações de e para pods são registradas, permitindo que você investigue problemas de conectividade ao longo do tempo. Os logs de fluxo ajudam a responder perguntas como: o servidor recebeu a solicitação do cliente? Qual é a latência de ida e volta entre a solicitação do cliente e a resposta do servidor?
CLI do Hubble: a CLI (Interface de Linha de Comando) do Hubble pode recuperar logs de fluxo em todo o cluster com filtragem e formatação personalizáveis.
Interface do usuário do Hubble: a interface do usuário do Hubble é uma interface baseada em navegador simples para explorar a atividade de rede do cluster. Ele cria um grafo de conexão de serviço com base em logs de fluxo e exibe logs de fluxo para o namespace selecionado. Os usuários são responsáveis por provisionar e gerenciar a infraestrutura necessária para executar a interface do usuário do Hubble.
Principais benefícios da Observabilidade de Rede Avançada
Independente de CNI: com suporte em todas as variantes de CNI do Azure, incluindo kubenet.
Cilium e não Cilium: fornece uma experiência uniforme e integrada em planos de dados Cilium e não Cilium.
Observabilidade de rede baseada em eBPF: aproveita o eBPF (extended Berkeley Packet Filter) para obter desempenho e escalabilidade para identificar possíveis gargalos e problemas de congestionamento antes que eles afetem o desempenho do aplicativo. Obtenha insights sobre os principais indicadores de integridade da rede, incluindo volume de tráfego, pacotes removidos e informações de conexão.
Visibilidade detalhada da atividade de rede: entenda como seus aplicativos estão se comunicando entre si por meio de logs de fluxo de rede detalhados.
Opções de armazenamento e visualização de métricas simplificadas: escolha entre:
- Prometheus e Grafana gerenciados pelo Azure: o Azure gerencia a infraestrutura e a manutenção, permitindo que os usuários se concentrem em configurar métricas e visualizar métricas.
- Traga seu próprio (BYO) Prometheus e Grafana: os usuários implantam e configuram suas próprias instâncias e gerenciam a infraestrutura subjacente.
Métricas
Métricas no nível do nó
As métricas a seguir são agregadas por nó. Todas as métricas incluem etiquetas:
cluster
instance
(nome do nó)
Para cenários de plano de dados não Cilium, a Observabilidade de Rede Avançada fornece métricas para sistemas operacionais Linux e Windows. A tabela a seguir descreve as diferentes métricas geradas.
Nome da métrica | Descrição | Etiquetas adicionais | Linux | Windows |
---|---|---|---|---|
networkobservability_forward_count | Número total de pacotes encaminhados | direction |
✅ | ✅ |
networkobservability_forward_bytes | Número total de bytes encaminhados | direction |
✅ | ✅ |
networkobservability_drop_count | Número total de pacotes descartados | direction , reason |
✅ | ✅ |
networkobservability_drop_bytes | Número total de bytes descartados | direction , reason |
✅ | ✅ |
networkobservability_tcp_state | Número de soquetes TCP ativos atualmente por estado de TCP. | state |
✅ | ✅ |
networkobservability_tcp_connection_remote | Número de soquetes TCP ativos atualmente por porta/IP remoto. | address (IP), port |
✅ | ❌ |
networkobservability_tcp_connection_stats | Estatísticas de conexão TCP. (por exemplo: ACKs atrasadas, TCPKeepAlive, TCPSackFailures) | statistic |
✅ | ✅ |
networkobservability_tcp_flag_counters | Número de pacotes TCP por sinalizador. | flag |
❌ | ✅ |
networkobservability_ip_connection_stats | Estatísticas de conexão de IP. | statistic |
✅ | ❌ |
networkobservability_udp_connection_stats | Estatísticas de conexão UDP. | statistic |
✅ | ❌ |
networkobservability_udp_active_sockets | Número de soquetes UDP ativos atualmente | ✅ | ❌ | |
networkobservability_interface_stats | Estatísticas de interface. | InterfaceName, statistic |
✅ | ✅ |
Métricas de nível de pod (Métricas do Hubble)
As métricas a seguir são agregadas por pod (as informações do nó são preservadas). Todas as métricas incluem etiquetas:
cluster
instance
(nome do nó)source
oudestination
Para tráfego de saída, haverá uma etiqueta source
com nome/namespace do pod de origem.
Para tráfego de entrada, haverá uma etiqueta destination
com nome/namespace do pod de destino.
Nome da métrica | Descrição | Etiquetas adicionais | Linux | Windows |
---|---|---|---|---|
hubble_dns_queries_total | Total de solicitações DNS por consulta | source ou destination , query , qtypes (tipo de consulta) |
✅ | ❌ |
hubble_dns_responses_total | Total de respostas DNS por consulta/resposta | source ou destination , query , qtypes (tipo de consulta), rcode (código de retorno), ips_returned (número de IPs) |
✅ | ❌ |
hubble_drop_total | Número total de pacotes descartados | source ou destination , protocol , reason |
✅ | ❌ |
hubble_tcp_flags_total | Número total de pacotes TCP por sinalizador. | source ou destination , flag |
✅ | ❌ |
hubble_flows_processed_total | Total de fluxos de rede processados (tráfego L4/L7) | source ou destination , protocol , verdict , type , subtype |
✅ | ❌ |
Limitações
- As métricas no nível do pod estão disponíveis apenas no Linux.
- Há suporte para o plano de dados Cilium a partir do Kubernetes versão 1.29.
- As etiquetas de métrica podem ter poucas diferenças entre clusters Cilium e não Cilium.
- Atualmente, o plano de dados Cilium não dá suporte a métricas de DNS.
Escala
O Prometheus e o Grafana gerenciados pelo Azure impõem limitações de escala específicas ao serviço. Para obter mais informações, confira Extrair métricas do Prometheus em escala no Azure Monitor
Próximas etapas
Para obter mais informações sobre os Serviços Avançados de Rede de Contêineres para o AKS (Serviço de Kubernetes do Azure), consulte O que são serviços avançados de rede de contêineres para o AKS (Serviço de Kubernetes do Azure)?.
Para criar um cluster do AKS com a Observabilidade de Rede Avançada e o Prometheus e Grafana gerenciados pelo Azure, consulte Configurar a Observabilidade de Rede Avançada para o Prometheus e o Grafana gerenciados pelo Azure do AKS (Serviço de Kubernetes do Azure).
Para criar um cluster do AKS com Observabilidade de Rede Avançada e Prometheus e Grafana BYO, consulte Configuração da Observabilidade de Rede Avançada para Prometheus e Grafana BYO do AKS (Serviço de Kubernetes do Azure).
Azure Kubernetes Service