Istio Hands-on Part 2 - Setting Up the Playground with Kind
Objective
Set up the local cluster used in the rest of the series. You will:
- Create a kind cluster. kind runs Kubernetes nodes as Docker containers.
- Install Istio with the demo profile.
The result is small and easy to recreate.

Prerequisites
Install these tools first:
| Tool | Version (or higher) | Install link |
|---|---|---|
| Docker | 20.x | Docker Install Guide |
| kubectl | 1.25+ | kubectl install |
| kind | 0.20+ | kind install |
Step 1: Create a kind cluster
The cluster is named istio-lab. Two host ports are mapped so that you can reach NodePort services later.
cat <<EOF > kind-istio-config.yamlkind: ClusterapiVersion: kind.x-k8s.io/v1alpha4name: istio-labnodes: - role: control-plane extraPortMappings: - containerPort: 30000 hostPort: 30000 - containerPort: 30001 hostPort: 30001EOFCreate the cluster:
kind create cluster --config kind-istio-config.yamlCheck that it runs:
kubectl cluster-infokubectl get nodesExpected output:
NAME STATUS ROLES AGE VERSIONistio-lab-control-plane Ready control-plane 48s v1.33.1Step 2: Install Istio
The demo profile installs:
- Istiod, the control plane
- An ingress gateway and an egress gateway
- Settings that work with the telemetry add-ons (Prometheus, Kiali, Grafana, Jaeger)
2.1 Download the Istio CLI
curl -L https://istio.io/downloadIstio | sh -cd istio-1.*export PATH=$PWD/bin:$PATHCheck the CLI:
istioctl versionExpected output:
Istio is not present in the cluster: no running Istio pods in namespace "istio-system"client version: 1.27.32.2 Install with the demo profile
istioctl install --set profile=demo -yExpected output:
|\ | \ | \ | \ /|| \ / || \ / || \ / || \ / || \ / || \/______||__________\____________________ \__ _____/ \_____/
✔ Istio core installed ⛵️✔ Istiod installed 🧠✔ Egress gateways installed 🛫✔ Ingress gateways installed 🛬✔ Installation completeCheck the pods:
kubectl get pods -n istio-systemExpected output:
NAME READY STATUS RESTARTS AGEistio-egressgateway-5b6b664d8-cz8bl 1/1 Running 0 86sistio-ingressgateway-7d7f977654-lbt5f 1/1 Running 0 85sistiod-86db895df-lmpt8 1/1 Running 0 112sIstio is installed. No application runs in the mesh yet. Part 3 deploys two services and shows what the sidecar does with their traffic.
Comments