This guide shows how to install Istio in Ambient mode using theDocumentation Index
Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
Use this file to discover all available pages before exploring further.
istioctl CLI. Ambient mode differs from the classic sidecar approach primarily in the profile you install and how you label namespaces. The steps below walk through download, install, namespace labeling, smoke tests, enabling Layer 7 with waypoint proxies, and optional cleanup. Commands and sample outputs are included for quick verification.
Prerequisites
- A Kubernetes cluster (kubectl configured).
- Permissions to create CRDs, namespaces, and cluster-level resources.
- A supported Istio release (examples use 1.26.3).
1) Download Istio and add istioctl to PATH
Download a specific Istio release and addistioctl to your PATH:
2) Install Istio with the ambient profile
Install Istio using the Ambient profile. This configures control-plane components and the Ambient dataplane components (ztunnel + istio-cni):- Ambient mode uses
ztunnelto perform transparent L4 interception, whileistio-cni(DaemonSet) handles per-node networking/CNI tasks. - On a multi-node cluster, daemonsets (istio-cni and ztunnel) will typically show one pod per node.
3) Label the namespace for Ambient dataplane mode
Ambient mode does not rely onistio-injection=enabled. Instead, label the namespace with istio.io/dataplane-mode=ambient.
Check current namespaces and labels:
Ambient mode uses
istio.io/dataplane-mode=ambient instead of istio-injection=enabled. istioctl analyze may still show messages for sidecar-style injection even after you label a namespace for ambient mode.4) Run a test pod and verify L4 interception
Create a simple test pod (NGINX) in the labeled namespace and check its state:ztunnel for transparent L4 interception rather than injecting a sidecar into every workload.
Confirm Istio system pods:
istio.io/dataplane-mode=ambient.
5) CRDs and waypoint proxy for Layer 7 (L7) functionality
Ambient mode provides transparent L4 interception out of the box. To enable Layer 7 capabilities like routing, fault injection, and traffic mirroring, Istio introduces the waypoint proxy and integrates with the Kubernetes Gateway API (e.g., HTTPRoute). These L7 features require additional CRDs beyond the core Istio CRDs. List CRDs installed by Istio:| CRD (examples) |
|---|
authorizationpolicies.security.istio.io |
destinationrules.networking.istio.io |
envoyfilters.networking.istio.io |
gateways.networking.istio.io |
virtualservices.networking.istio.io |
wasmplugins.extensions.istio.io |
workloadentries.networking.istio.io |
workloadgroups.networking.istio.io |
| Gateway API CRDs |
|---|
gatewayclasses.gateway.networking.k8s.io |
httproutes.gateway.networking.k8s.io |
referencegrants.gateway.networking.k8s.io |
grpcroutes.gateway.networking.k8s.io |
default):
Waypoint proxies enable Layer 7 features in Ambient mode using the Kubernetes Gateway API (HTTPRoute, GatewayClass, etc.). These APIs and CRDs are separate from classic Istio VirtualService resources.
6) Delete the waypoint proxy (optional)
To remove the waypoint proxy in the namespace:7) What matters for the ICA exam and practical checks
Key points to remember and verify:- Install Istio Ambient mode:
istioctl install --set profile=ambient -y- Label namespaces with
istio.io/dataplane-mode=ambient
- Confirm L4 interception by inspecting
ztunnellogs and verifying outbound connections from application pods. - Waypoint proxy + Kubernetes Gateway API provide L7 capabilities in Ambient mode; they require additional CRDs (HTTPRoute, GatewayClass, etc.).
- Deep configuration of HTTPRoute, VirtualService, or EnvoyFilter for Ambient L7 is generally outside the core ICA exam scope.
| Concern | Ambient mode | Sidecar mode |
|---|---|---|
| Injection label | istio.io/dataplane-mode=ambient | istio-injection=enabled |
| L4 interception | ztunnel (transparent) | iptables + sidecar proxy |
| Workload containers | No sidecar per pod | Sidecar container injected (2/2) |
| L7 features | Waypoint proxy + Gateway API | VirtualService / Gateway / EnvoyFilter |
- Istio Waypoint docs: https://istio.io/latest/docs/tasks/traffic-management/waypoint/
- Kubernetes Gateway API: https://gateway-api.sigs.k8s.io/
- Istio VirtualService: https://istio.io/latest/docs/reference/config/networking/virtual-service/
- Istio EnvoyFilter: https://istio.io/latest/docs/reference/config/networking/envoy-filter/