Episode 17 covers ambient mesh: the sidecar-less mode with ztunnel for L4 security and waypoints for L7 traffic, the differences from the sidecar model on the security and observability fronts, and the stability status you should always check in the release notes.

The sidecar has been Istio's identity since the beginning — but that does not mean it is the only way. Episode 17 introduces ambient mesh: a sidecar-less architecture that moves Envoy out of the Pod and into the node layer and centralized waypoints. The goal: getting mesh benefits with far less overhead.
Important: ambient mesh keeps evolving. Before using it in production, always verify the stability status in the official Istio release notes for your version. This episode is written with that mindset — not as final instructions, but as a map for investigating on your own.
Instead of one Envoy per Pod, ambient uses ztunnel (zero-trust tunnel): a daemon running on every node that handles layer 4 security (mTLS, authentication, tunneling) for all Pods on that node. Because ztunnel does not process L7 traffic, its overhead is far smaller than a sidecar's.
Features like HTTP routing, retries, and L7 authorization are not free. Ambient provides them through the waypoint proxy — an Envoy placed centrally that only processes traffic that really needs it:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: waypoint-productpage
namespace: default
spec:
gatewayClassName: istio-waypoint
listeners:
- name: mesh
port: 15008
protocol: HBONEgatewayClassName: istio-waypoint uses the built-in Istio Gateway class to create a waypoint. Workloads using this waypoint get L7 features; those that do not are fine with L4 from ztunnel.
The ambient traffic flow: Pod → ztunnel (L4, mTLS, HBONE tunnel) → waypoint (optional L7) → destination ztunnel → Pod. Features are applied on demand, not to all traffic by default.
In the sidecar model, mTLS and authorization are bundled into every Pod. In ambient, mTLS is guaranteed by ztunnel by default — with no intervention — while L4 authorization also runs there. L7 authorization waits until a waypoint is active. The pattern: basic security with no extra work, advanced security on demand.
Sidecars produce per-Pod metrics automatically. Ambient collects telemetry from ztunnel (L4) and waypoints (L7). Because not all traffic goes through a per-Pod Envoy, the granularity differs: the origin address you see can be a node, not a Pod. Kiali and dashboards need reconfiguring to understand this model.
One rule that must not be skipped: read the release notes of the Istio version you use. Search for the keywords ambient, beta, stable, and experimental. A feature that is experimental in one version can change without warning in the next — do not teach or adopt features without a clear status marker.
If your version supports ambient, enable it through the profile:
istioctl install --set profile=ambient -y
kubectl label namespace default istio.io/dataplane-mode=ambientkubectl label namespace default istio.io/dataplane-mode=ambient makes Pods in that namespace enter ambient mode — ztunnel handles their security without a sidecar. Check the running components:
kubectl get pods -n istio-system -l app=ztunnel
kubectl get gateway.gateway.networking.k8s.io -n defaultkubectl get pods -l app=ztunnel confirms ztunnel is active on each node.
Warning
Do not adopt ambient without reading the release notes of your own version. The features described here may have a different stability status in the release you use.
Ambient is not an all-purpose replacement; it is an option with a different profile. Consider ambient when:
Choose the sidecar model when:
This decision does not have to be all-or-nothing: Istio allows a mix, where some workloads use sidecars and others use ambient, as long as the stability status in your version supports it. Test the overhead and feature comparison in staging before deciding.
Episode 17 introduced Istio's future architecture: ambient mesh with ztunnel for L4 security on every node and waypoints for L7 features when needed, complete with a comparison of security, observability, and trade-offs against the sidecar model — plus the reminder to always verify stability status in the release notes.
Key takeaways:
In the next episode, episode 18, we will automate changes: CI/CD for Istio configuration and canary deployments — GitOps for Istio CRDs, progressive delivery with Argo Rollouts or Flagger, and automatic istioctl analyze in the pipeline.