La gestión del tráfico a nivel de kernel de Kmesh mejora el rendimiento del reenvío de servicios en un 50%+

Este artículo se comparte desde la comunidad de la nube de Huawei " DTSE Tech Talk | Número 49: Gestión del tráfico a nivel del kernel de Kmesh, ¡el rendimiento del reenvío de servicios mejoró en un 50%+!" ", autor: Selección de la comunidad de nube de Huawei.

¿La sobrecarga de latencia del plano de datos no puede cumplir con los requisitos del SLA de la aplicación? ¡El marco de gestión de tráfico a nivel de kernel, Kmesh, aporta innovación arquitectónica y nueva experiencia a la red de servicios! En la transmisión en vivo con el tema "Kmesh: la innovación arquitectónica brinda una nueva experiencia de rendimiento a las redes de servicios", el evangelista tecnológico DTSE nativo de la nube de Huawei y el ingeniero senior de sistemas operativos de Huawei, Wu Changye, discutieron la evolución de la gobernanza de servicios, los desafíos que enfrentan las redes de servicios y el proyecto Kmesh Análisis e introducción de capacidades técnicas y demostración de demostración y otros aspectos del análisis, Kmesh descarga capacidades de administración de tráfico L4 y L7 al kernel, Kmesh implementa un marco de administración de tráfico nativo de la nube a nivel de kernel, que mejora el rendimiento de reenvío de servicios en un 50% y 60% respectivamente, y reduce el ruido de fondo.Reduzca los gastos generales en un 70% y cree una solución de arquitectura de red de servicios de alto rendimiento para los usuarios.

La gobernanza de servicios se desvincula gradualmente de los negocios y se traslada a la infraestructura.

La evolución de la gobernanza de servicios ha pasado por tres generaciones. En la primera generación, "las capacidades de gobernanza de servicios están integradas en el código empresarial". Las tecnologías típicas incluyen SOA y ESB. En la segunda generación, "las capacidades de gobernanza de servicios se abstraen en implementación unificada de SDK". Las tecnologías típicas incluyen: Spring Cloud y Dubbo. Hasta ahora, la tercera generación ha unificado capacidades de gobernanza de servicios en la red de servicios. Como próxima generación de tecnología nativa de la nube, la red de servicios se ha convertido en la configuración estándar de infraestructura en la nube .

cke_138.png

Evolución de la gobernanza de servicios

serviceMesh es la capa de infraestructura que maneja la comunicación entre servicios, compensa las deficiencias de Kubernetes en la conexión, gestión y monitoreo de microservicios y proporciona a Kubernetes una mejor gestión de aplicaciones y servicios.

cke_139.png

El concepto central de la malla de servicios:

  1. La tecnología de inyección de sidecar no intrusiva inyecta componentes del plano de datos en el contenedor donde se encuentra la aplicación e implementa funciones secuestrando el tráfico de la aplicación sin que la aplicación se dé cuenta.
  2. La API en dirección norte se implementa en base a K8s CRD , completamente declarativa y estandarizada.
  3. El plano de datos y el plano de control se comunican a través del protocolo estandarizado xDS gRPC y admiten el modo de suscripción.

Características principales de la malla de servicio:

  1. Gestión de servicio y tráfico: disyuntor, inyección de fallas, algoritmo de equilibrio de carga enriquecido, limitación de corriente, verificación de estado, liberación de escala de grises, implementación azul-verde, etc.
  2. Visualización de tráfico y acceso: proporciona monitoreo a nivel de aplicación, cadenas de llamadas distribuidas, registros de acceso, etc.
  3. Conexión segura: ayude a las empresas a ejecutar aplicaciones en redes de confianza cero a través de medidas de seguridad como mTLS, autenticación y autenticación.

Actualmente, la malla de servicios representada por Istio se ha vuelto popular gradualmente, pero aún enfrenta ciertos desafíos. Tomando a Istio como ejemplo, en una red de servicios con 325 clústeres y 175 oyentes, la huella de memoria real de un Envoy alcanza aproximadamente 100 M; hay un total de 466 instancias en la red y la memoria ocupada por todos los Envoys alcanza 466 * 100 M. = 46,6G, cada enviado tiene 2 núcleos de forma predeterminada, un total de 466 * 2 núcleos = 932 núcleos.

cke_140.png

En resumen, el principal problema y desafío de la gobernanza de servicios de tercera generación que integra capacidades de gobernanza de servicios en la red de servicios es cómo optimizar el rendimiento y la sobrecarga de recursos del agente.

  • La capa de proxy introduce una sobrecarga de retraso adicional: un solo salto para el acceso al servicio aumenta entre 2 y 3 ms, lo que no puede cumplir con los requisitos de las aplicaciones sensibles al retraso.
  • Gran uso de recursos: los nodos de agente ocupan una sobrecarga adicional de CPU/MEM y la densidad de implementación de contenedores comerciales es baja.

El software del plano de datos de la red florece en la industria y coexisten múltiples rutas técnicas

La industria tiene un consenso sobre el problema del retraso y el ruido de fondo en el plano de datos de la red existente. Para resolver este problema, se han desarrollado una variedad de rutas técnicas, que incluyen cilium mesh , linker2-proxy , gRPC Proxyless service Mesh , istio new mode malla ambientalSin embargo, los problemas anteriores aún no se pueden resolver bien en la evaluación y evaluación reales. Volviendo al origen de los requisitos nativos de la nube, ¿cómo implementar una infraestructura de red de servicios transparente, eficiente y de bajo ruido y proporcionar un plano de datos de red con el mejor rendimiento de la industria?

cke_141.png

Se puede ver en la distribución de la red del sidecar que consume mucho tiempo: la arquitectura del sidecar introduce una gran sobrecarga de retraso, y la orquestación del tráfico solo representa el 10% de la sobrecarga de la red. La mayor parte de la sobrecarga está en la copia de datos, dos enlaces más comunicaciones del establecimiento y programación de cambio de contexto. Entonces, ¿podemos lograr una red de servicios sin sidecar con cero ruido en la red?

Kmesh: la gestión del tráfico se integra en el sistema operativo y crea una red de servicios sin sidecar

Del análisis anterior, podemos ver que entre los gastos generales adicionales introducidos por la red, la proporción del trabajo real de gestión del tráfico no es alta y la mayor parte del tiempo se desperdicia dirigiendo el tráfico al componente proxy; entonces, ¿se puede gestionar el tráfico? ¿Completado a lo largo de la ruta de envío y recepción de tráfico sin pasar por este componente proxy? La comunicación de red pasa naturalmente a través de la pila de protocolos del kernel ¿Qué pasa si la pila de protocolos tiene la capacidad de gestionar el tráfico?

Con este fin, diseñamos el marco de gestión de servicios de alto rendimiento Kmesh , que se basa en un kernel programable y absorbe la gestión del tráfico al sistema operativo. El plano de datos de la red ya no pasa a través del componente proxy y la interoperabilidad del servicio cambia de 3 saltos a 1 salto, sin lograr acceso en línea, cambio de texto, sin copia de datos y efectos de gestión de servicios de comunicación sin agentes. La ruta del tráfico se ve así:

cke_142.png

A continuación presentamos cómo Kmesh implementa las capacidades de gobernanza de servicios desde la perspectiva del sistema operativo:

Alto rendimiento: el sistema operativo admite de forma nativa la orquestación de tráfico L4~L7

Durante el tiempo de ejecución de la orquestación del tráfico, Kmesh implementa la base de orquestación L4~L7 en el sistema operativo basándose en tecnologías como la construcción de pseudovínculos y la construcción de enlaces retardados; basándose en ebpf, crea un tiempo de ejecución de orquestación de tráfico de pila completa programable en la pila de protocolos del kernel.

cke_143.png

Tiempo de ejecución de orquestación de tráfico de Kmesh

Nivel de ruido bajo: no es necesario implementar componentes proxy en Pod y la sobrecarga de recursos del plano de datos de la red se reduce en un 70 %.

Dado que Kmesh completa la función de gestión junto con la ruta del tráfico, de esta forma no es necesario implementar el software sidecar en la aplicación. Solo es necesario configurar el programa Kmesh en el nodo. En comparación con el sidecar tradicional, esta operación puede Los gastos generales de recursos se reducen en aproximadamente un 70%.

cke_144.png

Compatibilidad fluida: acoplamiento automático de planos de gestión y control, gobernanza colaborativa acelerada con planos de datos existentes

Kmesh tiene una compatibilidad fluida, admite la compatibilidad con las redes de servicios existentes, se conecta automáticamente al plano de control de la red (Istiod) y admite el protocolo de orquestación de tráfico XDS. Si el usuario actualmente usa el tipo sidecar, después de usar Kmesh, puede usar sockmap en lugar de iptables para acelerar el rendimiento de reenvío de la red existente.

Visualización de pila completa: visualización de pila completa de la gestión del tráfico

Kmesh también proporciona a los usuarios una visualización completa de la gestión del tráfico. Sabemos que la observación del tráfico de la red sidecar se completa principalmente en el componente de tráfico sidecar. Cuando utilizamos Kmesh para implementar esta función, logramos indicadores completos de extremo a extremo de una aplicación a otra a través de la perspectiva del sistema operativo. Al mismo tiempo, se implementan sondas de observación de baja carga basadas en ebpf para reducir el impacto de la observación en el nivel de ruido del sistema, y ​​la perspectiva del sistema operativo permite que la observación alcance un nivel de grano fino bajo. Kmesh también se puede conectar a plataformas de observación convencionales para lograr efectos de observación más completos.

cke_145.png

El rendimiento del reenvío HTTP mejora 5 veces en comparación con las soluciones de la industria

Kmesh implementa el tiempo de ejecución de orquestación de tráfico a nivel de kernel mediante el establecimiento de enlaces retardados y el conocimiento del protocolo de aplicación, y también utiliza ebpf para completar la orquestación de tráfico y las sondas de observación. A través de la orquestación del programa controlador kmesh, Kmesh puede conectarse al plano de control de la red externa, como Istiod, por un lado, y conectar los datos de observación a la plataforma de observación de la red de servicio, por otro lado, y administrar el programa ebpf dentro del sistema operativo, por lo que tiene una compatibilidad fluida y alta eficiencia. El rendimiento, los bajos gastos generales, el aislamiento de seguridad, la visualización de pila completa y las funciones ecológicas abiertas mejoran el rendimiento de reenvío de servicios en un 50% y 60% respectivamente, mejoran el rendimiento de inicio del servicio en un 40% y reducen el ruido. piso superior en un 70%.

Medición real del efecto de gestión del tráfico de Kmesh

cke_146.png

Medición real del desempeño de la gestión del tráfico de Kmesh

Desde la perspectiva de los efectos técnicos, en comparación con la red industrial tipo Sidecar existente, el rendimiento de reenvío HTTP de Kmesh mejora 5 veces en comparación con la solución industrial, creando una solución de arquitectura de red de servicios de alto rendimiento para los usuarios. ¡Bienvenido a visitar el proyecto de código abierto Kmesh https://github.com/kmesh-net/kmesh para experimentarlo!

Para obtener contenido de transmisión en vivo más interesante y pruebas de demostración reales, visite el sitio web oficial de la comunidad en la nube: https://bbs.huaweicloud.com/live/DTT_live/202311221700.html

Haga clic para seguir y conocer las nuevas tecnologías de Huawei Cloud lo antes posible ~

Lanzamiento oficial de Spring Boot 3.2.0. La falla de servicio más grave en la historia de Didi. ¿El culpable es el software subyacente o "la reducción de costos y el aumento de las risas"? Los programadores manipularon los saldos de ETC y malversaron más de 2,6 millones de yuanes al año. Los empleados de Google criticaron al gran jefe después de dejar sus trabajos. Estuvieron profundamente involucrados en el proyecto Flutter y formularon estándares relacionados con HTML. Microsoft Copilot Web AI se lanzará oficialmente el 1 de diciembre, compatible con PHP 8.3 chino GA Firefox en 2023. El marco web Rust Rocket se ha vuelto más rápido y lanzó v0.5: admite asíncrono, SSE, WebSockets, etc. Se lanza oficialmente el procesador de escritorio Loongson 3A6000, ¡la luz de la producción nacional! Broadcom anuncia exitosa adquisición de VMware
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4526289/blog/10314025
Recomendado
Clasificación