What is K8labs?
K8labs is an open-source Kubernetes certification exam simulator developed by Tutorials Dojo in collaboration with envember. It provides a realistic, hands-on practice environment for engineers preparing for the official CNCF Kubernetes certifications.
Unlike traditional study materials, K8labs gives you access to real Kubernetes clusters in isolated environments, letting you practice the exact type of tasks you'll encounter on exam day.
Supported Certifications
- CKA — Certified Kubernetes Administrator
- CKAD — Certified Kubernetes Application Developer
- CKS — Certified Kubernetes Security Specialist
How It Works
- Select an Exam — Choose your certification type (CKA, CKAD, or CKS) and pick a practice exam from the available labs.
- Start Your Lab — K8labs provisions an isolated Kubernetes environment for you with all necessary resources pre-configured.
- Solve Tasks — Work through exam questions using a built-in terminal connected to a real Kubernetes cluster, just like the actual exam.
- Submit & Review — When you're done, submit your exam. K8labs automatically evaluates your work and provides detailed scoring and solutions.
Key Features
Real Exam Environment
Practice in a simulated environment that closely mirrors the actual Kubernetes certification exam interface.
Isolated Sessions
Each user gets their own isolated session and Kubernetes environment, ensuring a clean practice experience.
Timed Practice
Prepare for the time pressure of the actual exams with realistic timer functionality.
Detailed Scoring
Review your performance with comprehensive scores and detailed solutions to learn from your mistakes.
Multi-Session Support
Multiple users can practice simultaneously, each with their own isolated session.
Built-in Terminal
SSH-based terminal directly in the browser connected to a live Kubernetes cluster.
Kubernetes Exam Preparation
General Tips
- Set up aliases to save time:
alias k=kubectl - Use
--dry-run=client -o yamlto generate YAML templates quickly. - Familiarize yourself with
kubectl explainfor quick API reference. - Master
kubectl get,kubectl describe, andkubectl logs. - Practice imperative commands — they are faster during timed exams.
- Know how to use the official Kubernetes documentation (kubernetes.io/docs) effectively, as it is allowed during the exam.
CKA — Certified Kubernetes Administrator
Exam Domains
- Cluster Architecture, Installation & Configuration (25%) — kubeadm, etcd backup/restore, cluster upgrades
- Workloads & Scheduling (15%) — Deployments, DaemonSets, resource limits, scheduling
- Services & Networking (20%) — Services, Ingress, NetworkPolicies, DNS
- Storage (10%) — PersistentVolumes, PersistentVolumeClaims, StorageClasses
- Troubleshooting (30%) — Cluster and application troubleshooting
CKAD — Certified Kubernetes Application Developer
Exam Domains
- Application Design & Build (20%) — Container images, Jobs, CronJobs, multi-container pods
- Application Deployment (20%) — Deployments, rolling updates, Helm
- Application Observability & Maintenance (15%) — Probes, logging, debugging
- Application Environment, Configuration & Security (25%) — ConfigMaps, Secrets, SecurityContexts, ServiceAccounts
- Services & Networking (20%) — Services, Ingress, NetworkPolicies
CKS — Certified Kubernetes Security Specialist
Exam Domains
- Cluster Setup (10%) — Network security, CIS benchmarks, Ingress security
- Cluster Hardening (15%) — RBAC, ServiceAccounts, restricting API access
- System Hardening (15%) — OS-level security, AppArmor, Seccomp
- Minimize Microservice Vulnerabilities (20%) — SecurityContexts, Pod Security Standards, OPA
- Supply Chain Security (20%) — Image scanning, signing, allowlisting registries
- Monitoring, Logging & Runtime Security (20%) — Falco, audit logs, immutable containers
Essential kubectl Commands
Quick Setup
# Set up aliases
alias k=kubectl
export do="--dry-run=client -o yaml"
export now="--force --grace-period 0"
# Enable autocomplete
source <(kubectl completion bash)
complete -o default -F __start_kubectl k
Common Operations
# Create resources imperatively
k run nginx --image=nginx
k create deployment web --image=nginx --replicas=3
k expose deployment web --port=80 --type=ClusterIP
# Generate YAML templates
k run nginx --image=nginx $do > pod.yaml
k create deployment web --image=nginx $do > deploy.yaml
# Debugging
k get pods -A -o wide
k describe pod <pod-name>
k logs <pod-name> -c <container-name>
k exec -it <pod-name> -- /bin/sh
# Context & namespace
k config set-context --current --namespace=<ns>
k config get-contexts