Create a CronJob named backup-job in namespace default with the following specifications: Schedule: Run every 30 minutes (*/30 * * * *) Image: busybox:latest Container command: echo "Backup completed" Set…
docs · k8s.io/docs/concepts/workloads/controllers/cron-jobsCKAD Exam Topics & Practice Tasks
Every task in the CKAD lab maps to a domain in the official Certified Kubernetes Application Developer curriculum. Below is the full list - what you'll practice, what each task tests, and how it maps to the exam blueprint.
Application Design and Build
Define pods and multi-container patterns, build and run container images, and create jobs and cronjobs.
On the node, directory /root/app-source contains a valid Dockerfile.
docs · docs.podman.ioFile /root/broken-deploy.yaml contains a Deployment manifest that fails to apply. The file has the following issues: 1. Uses deprecated API version 2. Missing required selector field 3. Selector doesn't match template labels
docs · k8s.io/docs/concepts/workloads/controllers/deploymentApplication Deployment
Roll out and update deployments, run canary and blue-green release strategies, and manage rollouts.
In namespace default, the following resources exist: Deployment web-app with 5 replicas, labels app=webapp, version=v1 Service web-service with selector app=webapp
docs · k8s.io/docs/concepts/workloads/controllers/deploymentIn namespace default, Deployment app-v1 exists with image nginx:1.20.
docs · k8s.io/docs/concepts/workloads/controllers/deploymentThe Pod for the Deployment named nosql in the prepium-db namespace fails to start because its Container's memory configuration violates the namespace's memory constraint.
docs · k8s.io/docs/concepts/policy/limit-rangeCreate a Deployment named expose in the existing prepium namespace running 6 replicas of a Pod. Specify a single container using the ifccncf/nginx:1.13.7 image.
docs · k8s.io/docs/concepts/workloads/controllers/deploymentApplication Observability and Maintenance
Configure liveness, readiness, and startup probes, read logs, and debug running workloads.
In namespace default, Deployment api-deploy exists with a container listening on port 8080.
docs · k8s.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probesIn namespace default, Deployment web-store exists with Pods labeled app=webstore, tier=frontend. Service web-svc exists but has incorrect selector app=wrongapp.
docs · k8s.io/docs/concepts/services-networking/serviceApplication Environment, Configuration and Security
Wire up configmaps, secrets, service accounts, RBAC, securityContext, and resource requests and limits.
In namespace default, Deployment api-server exists with hard-coded environment variables: DB_USER=admin DB_PASS=Secret123!
docs · k8s.io/docs/concepts/configuration/secretIn namespace audit, Pod log-collector exists but is failing with authorization errors. Check the Pod logs to identify what permissions are needed: bash kubectl logs -n audit log-collector The logs show a Forbidden error: pods is…
docs · k8s.io/docs/reference/access-authn-authz/rbacIn namespace monitoring, Pod metrics-pod is using ServiceAccount wrong-sa and receiving authorization errors. Multiple ServiceAccounts, Roles, and RoleBindings already exist in the namespace: ServiceAccounts: monitor-sa,…
docs · k8s.io/docs/concepts/security/service-accountsIn namespace default, Deployment secure-app exists without any security context.
docs · k8s.io/docs/tasks/configure-pod-container/security-contextServices & Networking
Expose workloads with services and ingress, and restrict traffic with network policies.
In namespace network-demo, three Pods exist: frontend with label role=wrong-frontend backend with label role=wrong-backend database with label role=wrong-db Three NetworkPolicies exist: deny-all (default deny)…
docs · k8s.io/docs/concepts/services-networking/network-policiesIn namespace default, Deployment api-app exists with Pods labeled app=api and container port 9090.
docs · k8s.io/docs/concepts/services-networking/serviceThe application must be reachable externally using the URL http://external.prepium.local/. Any request whose path starts with / must be routed to the Service web-app.
docs · k8s.io/docs/concepts/services-networking/ingressThe application is supposed to be reachable at http://content.prepium.local/content but requesting this URL currently returns an error.
docs · k8s.io/docs/concepts/services-networking/ingressCKAD access, clearly explained
$39 USD · 30 days · one payment. 17 graded tasks, 5 attempts at the full exam simulation and unlimited single-task practice during the access window. The clock starts when you activate.
Public task descriptions; the selected weekly lab is free with an account. 2 free weekly starts per certification. Read this week's free task →
List price before any applicable checkout taxes or discounts. Create an account →