Tutorial outline
What this tutorial covers, in what order, and how the sections build on each other.
This tutorial takes a developer comfortable with Fedora or RHEL (on a host or in a VM) and Docker Engine
from installing Docker Engine and minikube through running real
applications on a local Kubernetes cluster with kubectl and
helm, and ends with reference material for Istio service mesh
and KEDA HTTP-driven autoscaling. Sections 11 and 12 are skippable
for readers who only want the core minikube workflow.
Estimated total reading + hands-on time is around 3½ hours. Each section’s own estimate is in its header. Sections are designed so partial reads still leave you with something useful.
The sections
| § | Title | What you’ll learn | Duration |
|---|---|---|---|
| 1 | Prerequisites | What hardware, OS, and tools you need before starting | 10 min |
| 2 | Installation | Install minikube, kubectl, helm, and the supporting toolbox (stern, kubectx, etc.) | 20 min |
| 3 | Starting minikube | The docker driver, containerd, published ports, status, pause/stop, upgrade | 15 min |
| 4 | Custom resources, profiles, multi-node | Size clusters, run parallel profiles, configure multi-node | 15 min |
| 5 | Addons and the dashboard | List, enable, and use addons; the Kubernetes dashboard | 10 min |
| 6 | Deploying with kubectl | Imperative and declarative deploys, dry-run manifest generation, idiomatic kubectl | 20 min |
| 7 | Services, NodePort, and minikube IP | Service types, exposing apps through published NodePorts on 127.0.0.1 | 10 min |
| 8 | Persistent volumes | Static hostPath PVs and dynamic PVCs using the default storage class |
15 min |
| 9 | Deploying with Helm | helm install/upgrade/rollback, using public charts, authoring a small chart |
25 min |
| 10 | Editor, shell, and terminal integration | CLion k8s plugin, zsh + kubectx/kubens, warp.dev workflows | 15 min |
| 11 | Istio on minikube | Install via istioctl, sidecar-enabled demo app, Gateway + VirtualService, mTLS basics |
30 min |
| 12 | KEDA on minikube (optional) | Helm install of KEDA + HTTP add-on; HTTP-driven scaling with a hey load test |
25 min |
| 13 | Alternatives to minikube | Brief tour: kind, k3s, MicroShift — when to pick what | 5 min |
| 14 | FAQ | Common pain points; cleanup recipes | 5 min |
| 15 | Where to go next | Pointers to deeper resources and possible follow-on tutorials | 5 min |
How to read this tutorial
Read §1 first, always. The prerequisites are non-negotiable — the most common failures in later sections trace back to a missing or misconfigured prereq.
§2 and §3 must run end-to-end before any of §4–§9 will work.
You need a running minikube cluster with kubectl pointed at it
before you can deploy anything.
§6 (kubectl) and §9 (helm) are deliberately parallel. Both
deploy the same UBI nginx workload — once with kubectl apply and
once with a small helm chart. Reading both makes the trade-offs
between imperative and declarative deployment concrete.
§11 (Istio) and §12 (KEDA) are optional. They assume §1–§9 are done. Each starts with a “resource check” that bumps minikube’s CPU and memory allocation, because both service meshes and KEDA add real overhead on top of a basic cluster.
Conventions in this tutorial
- All commands target Fedora 44 with the docker driver and containerd (runc) on Docker Engine. RHEL and Fedora or RHEL VMs use the same commands; §1 names the one repo URL that differs
- Host access to workloads is always a NodePort published to 127.0.0.1 when the profile is created (§3). Reaching a Service never needs a background process to reach a Service
- All container images used by examples are UBI-based and
pullable without
subscription-managerregistration:registry.access.redhat.com/ubi10/... - The
examples/directory holds runnable code for each hands-on section. Each example has aREADME.md(narrated walkthrough) and ademo.sh(strict end-to-end script that also serves as the maintainer’s verification test) - Diagrams are SVG with editable Excalidraw sources alongside in
assets/diagrams/. Click any diagram’s “Download Excalidraw source” link to edit it in excalidraw.com
Prerequisite knowledge (not covered here)
You should already know, roughly:
- What a container is and how to run one with
docker run - What a Pod, Deployment, and Service are in Kubernetes (one paragraph each is enough)
- How to read YAML and edit it in a text editor
- The basics of your shell — variables, pipes, redirecting
If any of those are unfamiliar, the upstream Kubernetes Basics walkthrough is the right warm-up.
What this tutorial does not cover
- Production cluster operations (RBAC at depth, network policies, secrets at scale, multi-tenancy, hardening)
- Building container images (the examples pull pre-built UBI images)
- A comparison of minikube with managed Kubernetes offerings as a recommendation (the “alternatives” section names local-cluster options for navigation only)
- Knative (intentionally out of scope; possible standalone follow-on)