Compartir a través de


Introducción a la directiva de nivel 7 (L7) (versión preliminar)

Las directivas de red son esenciales para proteger los clústeres de Kubernetes mediante la definición y el control de la comunicación de pods. Mitigan el acceso no autorizado y las posibles infracciones de seguridad mediante la regulación del flujo de tráfico. Advanced Container Networking Services refuerza la seguridad con directivas de red basadas en FQDN. Al expandir esta base, Advanced Container Networking Services ahora proporciona compatibilidad con directivas L7, lo que permite una inspección detallada y la administración del tráfico de nivel de aplicación. Este avance mejora tanto la seguridad como la eficacia de las comunicaciones de red dentro de los clústeres de AKS. La oferta incluye compatibilidad completa con protocolos ampliamente adoptados, como HTTP, gRPC y Kafka.

Componentes de la política L7

Proxy Envoy: Envoy, parte del agente de seguridad de ACNS actúa como punto de cumplimiento para las directivas L7. Un TPROXY inspecciona el tráfico de la aplicación, comparándolo con las directivas L7 definidas. Para mejorar la escalabilidad y la administración de recursos, Envoy se implementa como un DaemonSet independiente, desacoplado del agente de Cilium.

Funcionamiento de la directiva L7

Cuando el cumplimiento de directivas L7 está habilitado para una aplicación o pod, el tráfico de red saliente se evalúa primero para determinar el cumplimiento de las reglas de nivel de aplicación configuradas. El sondeo eBPF conectado a la interfaz de red del pod de origen marca los paquetes, que luego se redirigen a un Envoy Proxy local en el nodo. Esta redirección solo se produce para los pods que implementan políticas de capa 7, asegurando que la aplicación de políticas se realice de forma selectiva.

El proxy de Envoy, aumentado con filtros de red de Cilium, decide si reenvía el tráfico al pod de destino en función de los criterios de directiva. Si se permite, el tráfico continúa; si no es así, Envoy devuelve un código de error adecuado al pod de origen. Tras una autorización correcta, el proxy de Envoy facilita el flujo de tráfico, lo que proporciona visibilidad y control de nivel de aplicación. Esto permite al agente de Cilium aplicar directivas de red detalladas dentro del motor de directivas. En el siguiente diagrama se ilustra el flujo de alto nivel de aplicación de políticas L7.

Captura de pantalla que muestra cómo funcionan las directivas L7.

Supervisión del tráfico L7 con Hubble y Grafana

Para obtener información detallada sobre los flujos de tráfico L7, específicamente HTTP, gRPC y Kafka, Azure CNI Powered by Cilium aprovecha el agente de Agrupación, que está habilitado de forma predeterminada con servicios avanzados de redes de contenedores. Hubble proporciona métricas detalladas de nivel de flujo.

Para simplificar el análisis de estas métricas L7, proporcionamos paneles de Azure Managed Grafana preconfigurados. Puede encontrarlos en la carpeta Dashboards> Azure Managed Prometheus, con nombres de archivo como "Kubernetes/Networking/L7 (Espacio de nombres)" y "Kubernetes/Networking/L7 (Carga de trabajo)".

Estos paneles ofrecen visibilidad granular de los datos de flujo L7 en el clúster, el espacio de nombres, y los niveles de carga de trabajo.

Nota:

Estos paneles solo mostrarán datos si tiene esta característica habilitada en el clúster y tienen aplicadas directivas pertinentes. Además, no se requiere que las métricas de supervisión pasen por Envoy, un componente del agente de seguridad ACNS. Más bien, estas métricas son recopiladas por el agente Hubble, que está instalado en su clúster como parte de la característica de observabilidad del Advanced Container Networking Service.

Ventajas clave

Control de Application-Level granular: las directivas L7 permiten un control específico sobre el tráfico de red basado en atributos específicos de la aplicación, como métodos HTTP, rutas de acceso gRPC y temas de Kafka. Esto se extiende más allá de la dirección IP básica y el control basado en puertos de las directivas de red tradicionales.

Seguridad mejorada: al inspeccionar el tráfico de nivel de aplicación, las directivas L7 pueden evitar ataques que aprovechan vulnerabilidades en el nivel de aplicación. Esto incluye bloquear el acceso no autorizado a api o servicios específicos. Además, las directivas L7 son un componente importante de una estrategia de seguridad de confianza cero, lo que permite el cumplimiento del principio de privilegios mínimos en el nivel de aplicación.

Control de errores correctos: a diferencia de las directivas L3/L4 que normalmente quitan el tráfico no autorizado de forma silenciosa, las directivas L7 pueden devolver códigos de error de nivel de aplicación (por ejemplo, HTTP 403, errores de autorización de Kafka), lo que permite a las aplicaciones controlar errores de forma más correcta.

Observabilidad: Con la observabilidad habilitada para los Servicios Avanzados de Redes de Contenedores y las directivas L7 aplicadas al clúster de AKS, puede supervisar el tráfico y la eficacia de las directivas mediante paneles de Grafana.

Limitaciones y consideraciones

  • La compatibilidad con las características actuales se basa en la aplicación de políticas de nivel 7 de Cilium, basadas en HTTP, HTTPS, gRPC y Kafka.
  • En versión preliminar, el tamaño máximo de clúster admitido es de hasta 1000 nodos o 40 000 pods, lo que sea mayor.
  • El tráfico que atraviesa los servidores proxy de Envoy viene con latencia. Los usuarios pueden experimentar una degradación notable de la latencia más allá de 3000 solicitudes por segundo.
  • Como parte de nuestra solución de observabilidad, proporcionamos métricas envoy_http_rq_total. Estas métricas proporcionan el recuento total de solicitudes, que se pueden usar para derivar solicitudes por segundos (rps).
  • Durante una actualización o lanzamiento de Cilium, las sesiones existentes se pueden cerrar correctamente. Se espera que las aplicaciones controlen estas interrupciones correctamente, normalmente mediante la implementación de mecanismos de reintento en el nivel de conexión o solicitud. Las nuevas conexiones iniciadas durante el lanzamiento no se ven afectadas.
  • La directiva L7 a través de Advanced Container Networking Services (ACNS) no es compatible con las directivas L7 implementadas a través de métodos alternativos como Istio. En la tabla siguiente se resumen los escenarios admitidos.
Característica o componente Directivas L7 con AKS, Istio: complemento administrado
Directivas de red K8s de Azure CNI con tecnología de Cilium Compatible
Directivas L4 (FQDN) de Azure CNI potenciadas por Cilium y ACNS Compatible
Directivas L7 (HTTP(s)/GRPC/Kafka) de Azure CNI con tecnología de Cilium y ACNS No está soportado

Precios

Importante

Los servicios avanzados de redes de contenedores es una oferta de pago. Para obtener más información sobre los precios, consulte Servicios avanzados de redes de contenedores: precios.

Pasos siguientes