Compartilhar via


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.

Diagrama de Observabilidade de Rede Avançada.

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 ou destination

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