This guide walks through installing Istio on a Kubernetes cluster (EKS, GKE, AKS, or local clusters such as kind or Minikube). It covers the two common installation methods—istioctl and Helm—and shows how to enable sidecar injection (automatic and manual), deploy the Bookinfo sample, and validate your installation. Key topics:Documentation Index
Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
Use this file to discover all available pages before exploring further.
- Prerequisites
- Downloading and configuring istioctl
- Installing kubectl (if needed)
- Installation profiles
- Installing Istio with istioctl
- Enabling automatic sidecar injection
- Manual (offline) sidecar injection
- Installing Istio with Helm
- Validation and analysis
| Requirement | Why it’s needed |
|---|---|
A running Kubernetes cluster and an authenticated kubeconfig | Istio runs on top of Kubernetes and needs API access |
kubectl | To interact with cluster resources |
istioctl (or Helm) | istioctl simplifies installation and validation. Helm is an alternative installer. |
Always verify the istioctl client version and whether Istio pods are running. istioctl reports the client version even when Istio is not yet installed in the cluster.
| Method | When to use |
|---|---|
istioctl | Recommended for single-command installs and built-in validation (istioctl install, istioctl analyze) |
| Helm | Use when you need to integrate with existing Helm-based workflows or customize chart values at install time |
Download istioctl (example: Istio 1.26.3)
For the Istio Service Mesh labs we use Istio 1.26.3. Download and installistioctl for that version with a single command:
istioctl to your PATH:
istioctl client version:
istioctl client version (1.26.3) and that there are no running Istio pods in the istio-system namespace.
Install kubectl (if needed)
kubectl is required to manage Kubernetes resources. Example downloads for Linux:
Istio installation profiles
Istio provides multiple installation profiles (default, demo, minimal, remote, empty, preview, ambient). Each profile includes a different set of core components (istiod, ingress/egress gateways, CNI, ztunnel, etc.). For most labs we’ll use thedemo profile (feature-rich, good for learning) or the ambient profile (sidecar-less ambient mesh).

| Profile | Use case |
|---|---|
demo | Learning, labs, and examples (includes most components) |
default | Standard production-ready feature set |
minimal | Small footprint, only essential components |
ambient | Ambient mesh (sidecar-less) architectures |
remote / empty / preview | Advanced topologies or experimental options |
Install Istio with istioctl
The simplest way to install Istio with the demo profile:Enabling automatic sidecar injection
Istio injects an Envoy sidecar container into pod definitions for classic sidecar-based deployments. To enable automatic sidecar injection for a namespace, label that namespace:Note: The Ambient profile implements a sidecar-less ambient mesh. If you install Istio using the ambient profile, automatic sidecar injection (the istio-injection label) does not inject Envoy sidecars. The namespace labeling below applies to classic sidecar-based profiles such as demo or default.
Example: Deploy Bookinfo and observe sidecar injection
- Apply the Bookinfo sample (matching release-1.26):
- Before enabling injection you will see one container per pod (1/1):
- Enable injection on the namespace:
- Recreate the workload (restart the deployment or delete and reapply manifests). Example: delete and reapply Bookinfo:
- After recreation you should see two containers per pod (2/2), indicating the application container plus the Istio sidecar:
istio-proxy image/version:
Manual (offline) sidecar injection
If you prefer not to enable automatic namespace injection, inject sidecars manually into manifests and then apply them:Install Istio with Helm
When using Helm, install three charts in this recommended order:istio/base— cluster-wide resources (ServiceAccounts, ClusterRoles, CRDs when required)istiod— control planeistio/gateway— ingress/egress gateway(s)
istioctl installation; you can inspect pods and services with kubectl.
Validation and analysis
Use theseistioctl commands to validate and analyze Istio configuration and your installation:
istioctl analyze is especially helpful: it reports configuration problems, missing references, and other issues that can prevent Istio features from working correctly. Run it regularly during development and labs.
Links and references
- Istio official website and downloads
- Istio Service Mesh course (labs)
- Istio releases repository (Bookinfo sample)
That covers the core steps for installing Istio with
istioctl or Helm, enabling sidecar injection (automatic or manual), and validating your installation. Practice these commands in a terminal to become comfortable with Istio installation and troubleshooting.