Episode 0 lays the foundation for the entire series: the Kubernetes, networking, and observability skills you must master, a local cluster with kind or minikube, installing kubectl, helm, and istioctl with matching versions, and your first cluster verification.

Welcome to the Learn Istio series! This series will take you to mastery of Istio — the open-source service mesh for Kubernetes that manages observability, traffic control, and security between services — from the conceptual foundation all the way to production readiness. There are 23 episodes in total, organized into six phases.
But before we touch istioctl, there are some foundational skills and software you must have in place. Why do these pre-requisites matter? Because Istio does not work in a vacuum: it lives inside Kubernetes, orchestrates traffic between Pods, secures communication with TLS, and ships telemetry to observability systems. If this foundation is not solid, every later episode will feel heavy.
Episode 0 is your roadmap: we will make sure your foundational skills are in place, set up a local Kubernetes cluster, install kubectl, helm, and istioctl, and then perform your first verification. Once this episode is done, the whole series can be followed comfortably.
Istio works by injecting a sidecar proxy into each Pod. You must understand the basic Kubernetes objects that will keep showing up: Pods, Services, Deployments, Namespaces, ConfigMap, and Secrets. You should also understand how Service DNS works — every Pod in the cluster can reach any other through a service name like reviews.default.svc.cluster.local.
kubectl cluster-info
kubectl get pods -AThe two commands above confirm that kubectl connects to the cluster and can list the Pods across all namespaces. If you have never run these commands, spend some time practicing the Kubernetes basics before moving on.
Istio manages routing, load balancing, and the security of HTTP/TCP traffic. You need to understand the following terms:
Also understand the concept of ports and endpoints: a Service maps a name to a set of Pods ready to accept traffic. Istio reads this mapping to build its service graph.
You must be comfortable with Docker or OCI images in general: how to build images, tag them, and run containers. Git habits matter too, because in episodes 9 and 18 we will cover GitOps for Istio configuration.
On the observability side, get familiar with the basics of Prometheus (metrics), distributed tracing (traces/spans), and the concept of structured logs. Istio produces metrics like istio_requests_total and traces that can be shipped to Jaeger or Tempo.
For hands-on work, use a local cluster. The three most popular options:
Create a kind cluster with a single command:
kind create cluster --name belajar-istio --config - <<EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
EOFWait until kubectl cluster-info responds without errors. This two-node cluster is enough for the whole series, including the multi-cluster episodes later.
Download an Istio release from the official site, then add istioctl to your PATH. The istioctl version must exactly match the Istio version you are going to install — version mismatch is the most common source of errors.
curl -L https://istio.io/downloadIstio | sh -
cd istio-1.22.1
export PATH=$PWD/bin:$PATH
istioctl versionistioctl version prints the client version and, if connected to a cluster, the server version that is installed. Also install helm as an optional package manager for episode 3, plus kubectx and kubens (optional) to switch contexts and namespaces quickly.
For episodes 8 and 20, prepare the following tools (they can run as Istio addons):
Istio ships a complete addon bundle. You can wait until episode 8, but make sure your machine has enough resources to run them.
Tip
Always note down the Istio version you are using. Save istioctl version output in a notes file, because every episode in this series refers to the behavior of that version.
Before moving on, make sure all pre-requisites are met:
kubectl.kubectl version is compatible with the server version.istioctl is installed and its version is recorded.helm is installed for the installation options in episode 3.Run a quick verification to confirm everything works:
kubectl get nodes -o wide
kubectl get ns
istioctl version
istioctl x precheckistioctl x precheck is a diagnostic tool that checks whether the cluster is ready for an Istio installation. If there are warnings about unsupported Kubernetes versions or missing cluster capabilities, follow the remediation guidance.
cluster → install istio → deploy apps → manage traffic → secure → observeIn this episode 0 you set the footing for the entire series: you mastered the foundational Kubernetes and networking skills, created a two-node kind cluster, installed kubectl, helm, and istioctl, and verified the cluster with istioctl x precheck.
Key takeaways:
kind or minikube cluster is enough for the entire series.istioctl x precheck is the verification gate before installation.In the next episode, episode 1, we will cover the history, background, and why you need Istio — the problems a service mesh solves, how the ecosystem evolved from monoliths to microservices, and the trade-off between operational complexity and platform capabilities. Make sure your cluster is ready, because the Learn Istio journey is just beginning!