Documentation

Learn what K8labs is, how to use it, and prepare for your Kubernetes certification exams.

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

  1. Select an Exam — Choose your certification type (CKA, CKAD, or CKS) and pick a practice exam from the available labs.
  2. Start Your Lab — K8labs provisions an isolated Kubernetes environment for you with all necessary resources pre-configured.
  3. Solve Tasks — Work through exam questions using a built-in terminal connected to a real Kubernetes cluster, just like the actual exam.
  4. 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 yaml to generate YAML templates quickly.
  • Familiarize yourself with kubectl explain for quick API reference.
  • Master kubectl get, kubectl describe, and kubectl 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

Useful Resources