Files
CKS-Lessons/lab-environment/README.md
2026-08-27 11:50:09 +06:00

1.6 KiB

CKS Local Lab

This lab runs entirely inside an Ubuntu 24.04 WSL2 virtual machine. It uses Docker Engine and Kind to create a two-node Kubernetes cluster.

Isolation contract

  • Cluster name: cks-lab
  • Kubernetes version: v1.34.0
  • Lab kubeconfig: /opt/cks-lab/kubeconfig
  • Lab context: kind-cks-lab
  • The scripts never read, merge, or modify $HOME/.kube/config.
  • All destructive commands are limited to the Kind cluster named cks-lab.

Kubernetes v1.34 is deliberate: kube-bench v0.16.0 contains a CIS mapping for v1.34. The production cluster is not a suitable lesson environment.

Installation

Run these commands from PowerShell in this directory:

# Opens one UAC prompt and enables the required Windows features.
.\01-enable-wsl.ps1

Restart Windows when requested. Then run:

.\02-install-and-build.ps1

The first Ubuntu launch can take a few minutes. The script installs Docker, kubectl, Kind, kube-bench, creates the cluster, and installs Calico.

Daily use

Open the lab shell:

.\enter-lab.ps1

The shell sets KUBECONFIG=/opt/cks-lab/kubeconfig and refuses to continue if the active context is not kind-cks-lab.

Verify or rebuild the lab:

.\verify-lab.ps1
.\reset-lab.ps1
.\02-install-and-build.ps1

Run kube-bench against the Kind control-plane node:

docker exec -it cks-lab-control-plane \
  /opt/kube-bench/kube-bench run --benchmark cis-1.12

Lesson answers and progress remain in this repository, so they can be carried to another PC. Cluster state is disposable and should be rebuilt there.