← Back to all products
$69
Kubernetes CKAD Lab Workbook
Application developer certification labs covering pod design, services, configuration, observability, and multi-container patterns.
YAMLJSONMarkdownKubernetes
📄 Product Preview
Try the interactive reader and demo tools below, or get the full product with all content unlocked.
📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample📁 File Structure 25 files
kubernetes-ckad-labs/
├── LICENSE
├── README.md
├── config.example.yaml
├── free-sample.zip
├── guide/
│ ├── 01-pod-design.md
│ ├── 02-configuration.md
│ ├── 03-multi-container-pods.md
│ ├── 04-observability.md
│ ├── 05-services-networking.md
│ └── 06-state-persistence.md
├── index.html
├── labs/
│ ├── 00-environment-setup.md
│ ├── 01-pod-design.md
│ ├── 02-configuration.md
│ ├── 03-multi-container-pods.md
│ ├── 04-observability.md
│ ├── 05-services-networking.md
│ └── 06-state-persistence.md
├── manifests/
│ ├── configuration/
│ │ └── configmap-secret.yaml
│ ├── multi-container/
│ │ └── patterns.yaml
│ ├── observability/
│ │ └── probes.yaml
│ ├── pod-design/
│ │ └── deployment-rolling.yaml
│ └── services/
│ └── service-types.yaml
└── quick-reference/
└── ckad-cheatsheet.md
📖 Documentation Preview README excerpt
Kubernetes CKAD Lab Workbook
Hands-on lab exercises for the Certified Kubernetes Application Developer (CKAD) exam. Practice every exam domain with realistic tasks, step-by-step solutions, verification commands, and ready-to-apply YAML manifests.
Exam Facts
| Detail | Value |
|---|---|
| Exam code | CKAD |
| Provider | The Linux Foundation / CNCF |
| Format | Performance-based (hands-on tasks in a real cluster) |
| Questions | 15–20 performance tasks |
| Duration | 2 hours |
| Passing score | 66% |
| Cost | $395 USD (includes one free retake) |
| Kubernetes version | 1.30 (as of 2026; verify at training.linuxfoundation.org) |
| Allowed resources | kubernetes.io/docs, kubernetes.io/blog, github.com/kubernetes |
| Validity | 2 years from pass date |
Exam Domain Weights
| Domain | Weight | Lab File |
|---|---|---|
| Application Design and Build | 20% | labs/01-pod-design.md |
| Application Deployment | 20% | labs/01-pod-design.md (deployments, rolling updates) |
| Application Observability and Maintenance | 15% | labs/04-observability.md |
| Application Environment, Configuration and Security | 25% | labs/02-configuration.md |
| Services & Networking | 20% | labs/05-services-networking.md |
Who This Is For
- Application developers who deploy workloads on Kubernetes
- Backend engineers preparing for the CKAD certification exam
- DevOps engineers wanting to validate their Kubernetes application skills
- Anyone new to Kubernetes who wants a structured, hands-on learning path (with some container experience)
Prerequisites
You should be comfortable with:
- Container basics (building images, running containers)
- YAML syntax
- Basic command-line usage
- Any programming language (for understanding application patterns)
What's Inside
Lab Exercises (`labs/`)
| File | Topics | Tasks |
|---|---|---|
00-environment-setup.md | Lab environment, kubectl setup, speed aliases | 3 |
01-pod-design.md | Pods, labels, annotations, Deployments, Jobs, CronJobs, rolling updates | 8 |
02-configuration.md | ConfigMaps, Secrets, SecurityContexts, resource limits, ServiceAccounts | 8 |
03-multi-container-pods.md | Sidecar, init containers, ambassador, adapter patterns | 6 |
04-observability.md | Probes, logging, monitoring, debugging | 7 |
05-services-networking.md | Services, Ingress, NetworkPolicy | 7 |
06-state-persistence.md | PV, PVC, volume types, StatefulSets | 5 |
| Total | 44 tasks |
Ready-to-Apply Manifests (`manifests/`)
... continues with setup instructions, usage examples, and more.
📄 Code Sample .yaml preview
manifests/configuration/configmap-secret.yaml
# Configuration manifests: ConfigMap, Secret, SecurityContext, ResourceLimits
---
# ConfigMap from literals
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
DATABASE_HOST: "db.example.com"
DATABASE_PORT: "5432"
LOG_LEVEL: "info"
MAX_CONNECTIONS: "100"
# Multi-line config file
app.properties: |
server.port=8080
server.context-path=/api
logging.level.root=INFO
spring.datasource.url=jdbc:postgresql://db.example.com:5432/appdb
---
# Secret
apiVersion: v1
kind: Secret
metadata:
name: app-secrets
type: Opaque
stringData: # Use stringData for plain text (auto-encoded)
DB_PASSWORD: "s3cureP4ss!"
API_KEY: "YOUR_API_KEY_HERE"
JWT_SECRET: "your-jwt-signing-secret-here"
---
# Pod with full configuration injection
apiVersion: v1
kind: Pod
metadata:
name: configured-app
spec:
serviceAccountName: default
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
runAsNonRoot: true
containers:
- name: app
image: nginx
securityContext:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
# ... 82 more lines ...