Nota

Istio Ambient Mesh: sidecarless y el fin del doble salto

Ambient sacó a Envoy de cada pod. Dónde elimina el doble salto y la sobrecarga — y dónde el sidecar sigue justificándose.

El service mesh se vende como una forma de obtener mTLS, resiliencia y observabilidad sin tocar el código de la aplicación. Durante una década el precio fue el sidecar: un proxy Envoy junto a cada pod, por el que pasa todo su tráfico. Cómodo — mientras los pods se cuentan por decenas. A escala el sidecar se convierte en un impuesto que pagan todos, incluso los servicios que no necesitan del mesh nada salvo mTLS. El modo ambient, que pasó a stable en Istio 1.24 en noviembre de 2024, saca a Envoy del pod y reescribe esa economía.

En qué topa el modelo de sidecar

El problema central del sidecar es el doble salto. Una petición del pod A al pod B atraviesa dos Envoy completos: el proxy de salida de A y el de entrada de B. Incluso cuando solo necesitas mTLS en L4, el tráfico se arrastra igualmente por dos proxyings L7 con análisis de HTTP. Eso es latencia y CPU en cada llamada.

Luego está el coste de propiedad. Un Envoy en cada pod son cientos de megabytes de memoria multiplicados por el número de réplicas. El sidecar está atado al ciclo de vida de la aplicación: debe arrancar antes que el contenedor (de ahí el apaño holdApplicationUntilProxyStarts, o se pierden las primeras peticiones), ralentiza el apagado y no se puede integrar de forma sensata en trabajos batch. Activar la inyección exige reiniciar los pods, y actualizar el data plane significa recorrer toda la flota. Y algunas cargas sencillamente no toleran un sidecar.

Ambient: dos capas en lugar de un proxy

Ambient separa lo que el sidecar mantenía en un único Envoy en dos capas independientes. ztunnel es un componente por nodo (un DaemonSet, escrito en Rust) que asume L4 y mTLS. Construye el mesh sobre túneles HBONE (mTLS dentro de HTTP/2 CONNECT) y cifra el tráfico entre nodos sin un solo proxy dentro del pod. waypoint es un Envoy asociado a un namespace o service account que se activa solo cuando hace falta L7: enrutado por cabeceras, traffic splitting, reintentos, autorización L7.

La idea clave es pagar por una capa según su uso real. ¿Quieres mTLS zero-trust barato en todo el clúster? Basta un ztunnel, y Envoy no aparece en ningún sitio. ¿Quieres L7 inteligente en un servicio concreto? Añades un waypoint de forma quirúrgica, solo para ese.

Dónde desaparece el doble salto

El tráfico L4 en ambient recorre el camino «pod → ztunnel del nodo → ztunnel del nodo remoto → pod». Un Envoy completo no interviene — ztunnel es un orden de magnitud más ligero (a lo largo de cuatro releases su rendimiento creció en torno al 75%). El doble proxying del sidecar sencillamente no está aquí.

Cuando L7 hace falta de verdad, se inserta un waypoint en el camino, no dos sidecars en ambos extremos. En lugar de «siempre dos Envoy pesados por llamada» obtienes «ztunnel para todos, más un waypoint donde hay algo que pagar». Ese es el fin del doble salto como cargo obligatorio.

Un contrapunto honesto

No hay mesh gratis; solo cambia la forma de la factura. ztunnel es compartido por nodo, así que el radio de impacto se desplaza del pod al nodo: su fallo o su sobrecarga golpean a cada pod del nodo, mientras que un sidecar caído se llevaba un solo pod. El ecosistema de ambient es más joven que el del sidecar: menos historias de producción probadas en batalla, algunos escenarios avanzados aún poniéndose al día, la depuración pasa del proxy por pod a los logs de ztunnel y waypoint. Ambient exige compatibilidad con la CNI y un kernel más reciente. Es una elección de arquitectura deliberada, no un «enciéndelo y olvídate».

Dónde compensa y dónde no

La regla de decisión es simple. Ambient se justifica cuando quieres mTLS zero-trust barato y en todo el clúster; cuando los pods son grandes y densos — nodos GPU e inferencia de LLM, donde un sidecar por réplica se come una parte notable de la memoria (por eso ambient se volvió un tema candente para cargas de IA en 2026); cuando el clúster aloja cargas que no aceptan un sidecar. El sidecar clásico sigue encajando donde necesitas aislamiento estricto por pod o una función que ambient todavía no tiene. Y si no necesitas ninguna política L7, mTLS ni mesh — basta con una CNI simple; no pagues por capacidades que nunca usas.

Por dónde empezar

La fortaleza de ambient es la incrementalidad. Se activa por namespace, sin reinyección ni reinicio de pods. Empieza por L4: levanta ztunnel y consigue mTLS en todo el clúster casi gratis. Añade waypoints de forma quirúrgica — solo a los servicios que de verdad necesitan enrutado o autorización L7. No migres todo el mesh de golpe: ambient y sidecar coexisten, y la estrategia correcta es mover el tráfico por capas, no de un solo salto.

© 2026 axyi.ru · CC BY 4.0