Getting Started with Istio Playground
A simple K3s cluster with Istio service mesh and the sample Bookinfo app deployed. The playground is a good fit for workshops, self-paced labs, and quick experimentation with Istio and service mesh fundamentals.

Getting Started with Istio
This playground provides a hands-on environment for learning the basics of Istio.
You'll be working with a simple K3s cluster enhanced with Istio and the popular Bookinfo sample application pre-installed. The playground is a good starting point for developers and operators looking to explore Istio's features in a realistic yet lightweight setup.
🧠 What You'll Learn
- How to install and configure Istio on a K3s cluster
- Deploying the Bookinfo app, a microservices-based sample application
- Setting up and using Istio Gateway API
- Navigating and experimenting with services using a live productpage UI
🛠️ Playground Overview
This environment is made up of three virtual machines:
- dev-machine – Your main workspace with IDE, Kubernetes tools, and Istio CLI installed
- cplane-01 – Control plane node of the K3s cluster
- node-01 – Application node hosting the Bookinfo services
Each machine has a terminal tab for direct access, and the dev-machine also includes:
- IDE: Write or inspect configuration files
- Explorer: Visualize your Kubernetes cluster (via
iximiuz/kexp) - HTTP Port Tab: Access the
productpageweb UI with a single click.
⚙️ Provisioning Steps
This playground uses initTasks to fully automate the setup process, including downloading Istio, installing it to the cluster, deploying the sample app, and exposing it via a Gateway.
1. Download Istio
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.30.1 sh -
echo 'export PATH=$PATH:$HOME/istio-1.30.1/bin' >> ~/.bashrc
export PATH=$PATH:$HOME/istio-1.30.1/bin
2. Install Istio and Prepare the Cluster
cd istio-1.30.1
istioctl install -f samples/bookinfo/demo-profile-no-gateways.yaml -y
kubectl label namespace default istio-injection=enabled
kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v1.2.1" \
| kubectl apply -f -
3. Deploy the Bookinfo Application
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
4. Set Up the Istio Gateway
kubectl apply -f samples/bookinfo/gateway-api/bookinfo-gateway.yaml
kubectl wait --for=condition=programmed gtw bookinfo-gateway
Then expose the root path (/) to the productpage with an extra HTTPRoute manifest:
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: bookinfo-root
spec:
parentRefs:
- name: bookinfo-gateway
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: productpage
port: 9080
🚀 How to Use the Playground
- Use the IDE tab to explore and edit configuration files.
- Use the Explorer tab to inspect the cluster and Istio resources.
- Open the HTTP port tab named
productpageto view the running Bookinfo application. - Terminals are provided for each node, but most commands will be run from the dev-machine.
This playground is open to everyone. Ideal for workshops, self-paced labs, and quick experimentation with Istio and service mesh fundamentals.
A real VM, not a container
Get root on a VM with its own kernel, so Docker, Kubernetes, and systemd just work.
Read the docs →
SSH from browser or CLI
Use the built-in web terminal, or connect with labctl ssh, plain ssh, scp, or rsync.
Read the docs →
Drive it with AI
Let Claude, Codex, or any MCP client start this playground and run commands in it.
Read the docs →
Expose HTTP(S) ports
Give any web app running inside the VM a public URL - for yourself or to share with others.
Read the docs →
Share terminals
Invite others into your terminal session, or open it yourself from another device.
Read the docs →
Customize with init scripts
Add shell scripts that run at boot to install packages, clone repos, or seed test data.
Read the docs →
Private networking
VMs reach the internet via NAT with no public IP; several VMs share bridge networks.
Read the docs →
Ephemeral or persistent
By default, VMs are destroyed when the session ends; enable persistence to keep the disks for next time.
Read the docs →
Built-in container registry
A private registry.iximiuz.com for every playground to share images across services and VMs.
Read the docs →