Comparteix a través de


¿Qué es la observabilidad de red avanzada?

La observabilidad de red avanzada es una nueva característica del conjunto de los servicios avanzados de redes de contenedores. Proporciona herramientas de supervisión y diagnóstico de más alto nivel, de forma que se tiene una visibilidad sin precedentes de las cargas de trabajo contenedorizadas. Estas herramientas le permiten identificar y solucionar problemas de red con facilidad, lo que garantiza un rendimiento óptimo de las aplicaciones.

La observabilidad de red avanzada es compatible con todas las cargas de trabajo de Linux que se integran perfectamente con Hubble, independientemente de si el plano de datos subyacente es con Cilium o sin Cilium (ambos son compatibles), lo que garantiza la flexibilidad de las necesidades de red de contenedores.

Diagrama de la observabilidad de red avanzada.

Nota:

En escenarios de plano de datos con Cilium, la observabilidad de red avanzada está disponible a partir de la versión 1.29 de Kubernetes. En escenarios de plano de datos sin Cilium, se admite la observabilidad de red avanzada en todas las distribuciones de Linux, incluido Azure Linux a partir de la versión 2.0.

Características de la observabilidad de red avanzada

La observabilidad de red avanzada ofrece las siguientes funcionalidades para supervisar los problemas relacionados con la red en el clúster:

  • Métricas de nivel de nodo: comprender el estado de la red de contenedores a nivel de nodo es fundamental para mantener un rendimiento óptimo de la aplicación. Estas métricas proporcionan información sobre el volumen de tráfico, los paquetes descartados, el número de conexiones, etc., por nodo. Las métricas se almacenan en formato Prometheus y, como tal, puede verlas en Grafana.

  • Métricas de Hubble (métricas de nivel de Pod y DNS): estas métricas de Prometheus incluyen información del pod de origen y destino, lo que le permite identificar problemas relacionados con la red en un nivel granular. Las métricas abarcan el volumen de tráfico, los paquetes descartados, los restablecimientos TCP, los flujos de paquetes L4/L7, etc. También hay métricas de DNS (actualmente solo para planos de datos sin Cilium), que incluyen errores de DNS y solicitudes de DNS sin respuesta.

  • Registros de flujo de Flow de Hubble: los registros de flujo proporcionan una visibilidad profunda de la actividad de red del clúster. Todas las comunicaciones hacia y desde los pods se registran, lo que le permite investigar problemas de conectividad a lo largo del tiempo. Los registros de flujo ayudan a responder preguntas como: ¿el servidor recibió la solicitud del cliente? ¿Cuál es la latencia de ida y vuelta entre la solicitud del cliente y la respuesta del servidor?

    • CLI de Hubble: la interfaz de la línea de comandos (CLI) de Hubble puede recuperar registros de flujo en todo el clúster con filtrado y formato personalizables.

    • Interfaz de usuario de Hubble: la interfaz de usuario de Hubble es una interfaz basada en explorador fácil de usar para explorar la actividad de red del clúster. Crea un grafo de conexiones de servicio basado en los registros de flujo y muestra los registros de flujo del espacio de nombres seleccionado. Los usuarios son responsables de aprovisionar y administrar la infraestructura necesaria para ejecutar la interfaz de usuario de Hubble.

Principales ventajas de la observabilidad de red avanzada

  • Independiente de CNI: se admite en todas las variantes de Azure CNI, incluido kubenet.

  • Con Cilium y sin Cilium: proporciona una experiencia uniforme y fluida en planos de datos con Cilium y sin Cilium.

  • Observabilidad de red basada en eBPF: usa eBPF (filtro de paquetes de Berkeley extendido) para analizar el rendimiento y la escalabilidad con el fin de identificar posibles cuellos de botella y problemas de congestión antes de que afecten al rendimiento de las aplicaciones. Obtenga información sobre los indicadores clave de estado de red, incluido el volumen de tráfico, los paquetes descartados y la información de conexión.

  • Visibilidad profunda de la actividad de red: comprenda cómo se comunican las aplicaciones entre sí mediante registros de flujo de red detallados.

  • Opciones simplificadas de visualización y almacenamiento de métricas: elija entre:

    • Prometheus y Grafana administrados por Azure: Azure administra la infraestructura y el mantenimiento, lo que permite a los usuarios centrarse en configurar y visualizar las métricas.
    • Traiga su propio (BYO) Prometheus y Grafana: los usuarios implementan y configuran sus propias instancias y administran la infraestructura subyacente.

Métricas

Métricas de nivel de nodo

Las métricas siguientes se agregan por nodo. Todas las métricas incluyen etiquetas:

  • cluster
  • instance (nombre del nodo)

En escenarios de plano de datos sin Cilium, la observabilidad de red avanzada proporciona métricas para los sistemas operativos Linux y Windows. En la tabla siguiente se describen las distintas métricas generadas.

Nombre de la métrica Descripción Etiquetas adicionales Linux Windows
networkobservability_forward_count Recuento total de paquetes reenviados direction
networkobservability_forward_bytes Recuento total de bytes reenviados direction
networkobservability_drop_count Recuento total de paquetes descartados direction, reason
networkobservability_drop_bytes Recuento total de bytes descartados direction, reason
networkobservability_tcp_state Recuento de sockets activos de TCP por estado TCP. state
networkobservability_tcp_connection_remote Recuento de sockets activos de TCP por IP/puerto remotos. address (IP), port
networkobservability_tcp_connection_stats Estadísticas de conexión TCP. (por ejemplo: ACK retrasados, TCPKeepAlive, TCPSackFailures) statistic
networkobservability_tcp_flag_counters Recuento de paquetes TCP por marca. flag
networkobservability_ip_connection_stats Estadísticas de conexión IP. statistic
networkobservability_udp_connection_stats Estadísticas de conexión UDP. statistic
networkobservability_udp_active_sockets Recuento de sockets activos de UDP
networkobservability_interface_stats Estadísticas de interfaz. InterfaceName, statistic

Métricas de nivel de pod (métricas de Hubble)

Las métricas siguientes se agregan por pod (se conserva la información del nodo). Todas las métricas incluyen etiquetas:

  • cluster
  • instance (nombre del nodo)
  • source o destination

Para el tráfico saliente, habrá una etiqueta source con el espacio de nombres o el nombre del pod de origen. Para el tráfico entrante, habrá una etiqueta destination con el espacio de nombres o el nombre del pod de destino.

Nombre de la métrica Descripción Etiquetas adicionales Linux Windows
hubble_dns_queries_total Total de solicitudes DNS por consulta source o destination, query, qtypes (tipo de consulta)
hubble_dns_responses_total Total de respuestas DNS por consulta o respuesta source o destination, query, qtypes (tipo de consulta), rcode (código de retorno), ips_returned (número de direcciones IP)
hubble_drop_total Recuento total de paquetes descartados source o destination, protocol, reason
hubble_tcp_flags_total Recuento de paquetes TCP totales por marca. source o destination, flag
hubble_flows_processed_total Total de flujos de red procesados (tráfico L4/L7) source o destination, protocol, verdict, type, subtype

Limitaciones

  • Las métricas de nivel de pod solo están disponibles en Linux.
  • Se admite el plano de datos con Cilium a partir de la versión 1.29 de Kubernetes.
  • Las etiquetas de métricas pueden tener diferencias sutiles entre los clústeres con Cilium y sin Cilium.
  • El plano de datos con Cilium no admite actualmente métricas de DNS.

Escala

Se aplican ciertas limitaciones de escala cuando se utiliza Prometheus y Grafana administrados por Azure. Para más información, consulte Extracción de métricas de Prometheus a escala en Azure Monitor

Pasos siguientes