The Problem

Standing up a Kubernetes cluster and learning its core objects—Pods, Deployments, Services, PersistentVolumes, Ingress—typically means juggling scattered tutorials, version-specific commands, and YAML that breaks across K8s releases. This repo consolidates that into a single hands-on lab sequence with working manifests and cluster bootstrap scripts.

What This Does

Fast-Kubernetes is a Markdown-driven lab guide covering ~25 Kubernetes topics, from kubectl basics through Helm and monitoring. Each lab pairs a walkthrough document (e.g., K8s-Deployment.md, K8s-Service-App.md) with ready-to-apply YAML in labs/. The create_real_cluster/ directory holds shell and PowerShell scripts for bootstrapping real multi-node clusters via kubeadm on Ubuntu and Windows.

The repo is a fork of omerbsezer/Fast-Kubernetes (3,640 stars). Content targets K8s v1.22.3 but includes updated cluster setup docs for newer versions (1.26.2, 1.32.0).

How It Is Wired

There is no application code or runtime. The "control flow" is the lab sequence: each Markdown file describes imperative kubectl commands or points to a declarative YAML manifest in labs/<topic>/. For example, K8s-Deployment.md references labs/deployment/deployment1.yaml; K8s-PersistantVolume.md uses labs/persistentvolume/pv.yaml and pvc.yaml.

The create_real_cluster/ scripts are the only executable code. ubuntu24.04-kubeadm1.32.0-calico3.29.1-containerd1.7.24/install-ubuntu24.04-k8s1.32.sh installs containerd, kubeadm, and kubelet, then master-ubuntu24.04-k8s1.32.sh initializes the control plane and installs Calico CNI. Windows equivalents use PowerShell (install1.ps1, install2.ps1).

The wiring beyond the repo is: scripts → kubeadm init → cluster API → Calico network. The manifest files are inert until applied via kubectl apply -f.

File-by-file responsibility:

  • labs/<topic>/*.yaml — declarative manifests for each object type (Deployment, Service, PVC, etc.)
  • create_real_cluster/<os>-<versions>/*.sh / *.ps1 — OS-specific cluster bootstrap
  • K8s-*.md — step-by-step lab instructions and explanations
  • KubernetesCommandCheatSheet.md / HelmCheatsheet.md — reference commands
  • index.html — static landing page linking to the docs

The wiring for automated tests or CI has not been mapped—none exist.

How To Use It

Setup: No build step. Requires a working kubectl and either Minikube or a real cluster.

Running a lab:

git clone https://github.com/moses-y/Fast-Kubernetes
cd Fast-Kubernetes
kubectl apply -f labs/deployment/deployment1.yaml

Creating a real cluster (Ubuntu 24.04, K8s 1.32.0):

cd create_real_cluster/ubuntu24.04-kubeadm1.32.0-calico3.29.1-containerd1.7.24
sudo bash install-ubuntu24.04-k8s1.32.sh
sudo bash master-ubuntu24.04-k8s1.32.sh

Configuration: No environment variables. Cluster setup scripts assume a clean OS and root/sudo access.

Real-World Use

A team standardizing on K8s can run the labs in sequence as an internal training track. The create_real_cluster/ scripts give a repeatable path from bare VM to a Calico-networked cluster, which is the prerequisite for everything else in the repo.

Code Health & Issues

Static analysis flagged two SDLC gaps:

  • Medium - No test files detected — repository-wide. All 67 files are docs, YAML, or shell scripts; none validate manifest correctness.
  • Medium - No CI/CD pipeline detected — no .github/ or CI config. Nothing lints YAML or validates shell scripts on commit.

Both are structural observations, not runtime defects. The YAML and shell scripts are simple and readable; the main risk is version drift (e.g., kubeadm flags changing) without automated checks.

The Bottom Line

Solid, well-organized lab material for learning Kubernetes hands-on, with working cluster bootstrap scripts for multiple OS/version combos. The lack of tests and CI is acceptable for a tutorial repo but means manifests can silently break against newer K8s versions. Best for engineers who want to learn by doing rather than read theory.