Skip to main content
This guide walks through installing Istio on a Kubernetes cluster using two common methods: istioctl (recommended for simplicity) and Helm (recommended for modular, production-style installs). It also covers sidecar injection, validating the install, and deploying the Bookinfo sample application for verification. The examples use Istio 1.26.3 (the version referenced for the ICA exam). Prerequisites
  • A functioning Kubernetes cluster (managed: EKS/GKE/AKS or local: kind/Minikube).
  • A valid kubeconfig context pointing to the cluster.
  • kubectl installed and configured to talk to your cluster.
  • istioctl downloaded for the Istio version you plan to install (example below uses 1.26.3).
Install the istioctl client that matches the major/minor version you intend to run in-cluster. Minor version mismatches can work in some cases, but matching versions reduces surprises during labs or exams.

Install or verify tooling

Install istioctl (example: 1.26.3) On Linux/macOS you can download the official release with the Istio download script:
Change into the newly created directory and add istioctl to your PATH:
Note: istioctl is the client binary. The control plane components are installed into the cluster separately (via istioctl install or Helm). Install kubectl (if needed) Examples for Linux downloads (adjust release and arch as required):
On macOS, you can also use Homebrew:
If you install istioctl via Homebrew, confirm the version matches the one required for your tasks (e.g., 1.26.3).

Istio installation profiles

Istio provides multiple install profiles suitable for different use cases: In this guide we use the demo profile for quick examples and reference ambient conceptually where relevant. Install the demo profile:
Verify control plane pods:
Installing Istio does not automatically update application workloads. Sidecar injection (automatic or manual) is required to add the Envoy sidecar to application pods.
Avoid mixing widely different istioctl and control plane versions. Use compatible versions to prevent unexpected behavior. When in doubt, match istioctl to your desired control plane version.

Install Istio with Helm (modular approach)

When you prefer Helm, install three logical charts: base, istiod, and gateway (ingress/egress). First add the Istio Helm repository:
Install the base (cluster resources):
Install the control plane:
Install an ingress gateway (example):
Verify Helm releases:
Note: Both istioctl install and Helm produce functionally equivalent installations. Sidecar injection is still required for application pods.

Deploy and validate the Bookinfo sample application

Apply the Bookinfo sample for Istio release 1.26:
At this point each pod shows 1/1 READY because the application pods have not had an Istio sidecar injected yet.

Enable automatic sidecar injection (namespace labeling)

Label the namespace to enable automatic sidecar injection (example: default):
After labeling, existing pods must be restarted (recreated) to receive the sidecar. Delete and reapply manifests or use rollout restart on Deployments. Recreate Bookinfo pods to pick up injected sidecars:
2/2 indicates the application container plus the injected istio-proxy sidecar.

Inspect a pod to verify the sidecar

Describe a pod to check containers and images:

Manual sidecar injection (alternative)

If you prefer to inject sidecars only for selected manifests, use manual injection (note that commands and tooling have evolved across versions):
Manual injection is useful when you want sidecars only on selected workloads. Always consult the Istio docs for the preferred injection workflow for your Istio version.

Validate and analyze Istio configuration

Istio provides commands to validate YAML and analyze in-cluster configuration. Prefer istioctl analyze as it is the recommended diagnostic tool.
istioctl analyze helps catch configuration issues (missing references, invalid fields, etc.). Make it part of your workflow when authoring Istio YAML, during CI, or while preparing for labs and exams.

Quick reference tables

Installation methods comparison: Common validation commands:

Summary

  • Prepare kubectl and istioctl and ensure versions are compatible.
  • Install Istio either with istioctl (simple/demo installs) or Helm (modular installs).
  • Enable sidecar injection via namespace labels for automatic injection, or use manual injection for selective workloads.
  • Use istioctl analyze and istioctl verify-install to validate configuration and catch issues early.
  • Deploy the Bookinfo sample to verify sidecar injection and gateway behavior.
Links and references Now that installation concepts are covered, proceed to hands-on practice in your lab environment using the example commands above.

Watch Video