This CKAD Exam study guide will help you prepare for the Certified Kubernetes Developer (CKAD) exam with all the required resources.
In this article, I will go through all the resources that can help you prepare for the CKAD exam. I will also be sharing many tips that helped me pass the CKAD exam with a near-perfect score of 96 out of 100.
What is the Certified Kubernetes Application Developer (CKAD) exam?
The official CNCF certification page says:
A Certified Kubernetes Application Developer can define application resources and use core primitives to build, monitor, and troubleshoot scalable applications and tools in Kubernetes.
Certified Kubernetes Application Developer (CKAD) is one of the highest in-demand certifications in the industry right now. It is aimed at engineers interested in the design, development, build & management of applications on Kubernetes.
The purpose of the Certified Kubernetes Application Developer (CKAD) program is to assure that CKADs have the skills, knowledge, and competency to perform the responsibilities of Kubernetes application developers.
Important Note: There is a Syllabus change after after September 28, 2021 for the CKAD exam. The new syallbus is applicable for anyone who takes the exam after September 28, 2021, including exam retakes.
Register for the CKAD Exam [Save $57 Today]
To begin your journey of becoming a Certified Kubernetes Application Developer (CKAD) – start by registering for the CKAD exam on the Linux Foundation portal.
Note: Save $57 Today on CKA|CKAD|CKS|KCNA certification using the Voucher code given below. This offer expires soon.
CKA Exam Voucher: Use coupon DCUBEOFFER at checkout
Here are some things to keep in mind regarding the exam.
- The CKAD certification exam is to be taken online, and it is proctored remotely.
- A score of 66% or above must be earned to pass.
- Certifications are valid for 3 years.
- After registration, you get one year to schedule the exam.
- After registration, you get a maximum of 2 attempts to give the test. If you miss a scheduled exam for any reason – your second attempt gets nullified.
- You will get free access to killer.sh for the CKAD practice exam.
Note: You can always check the latest Kubernetes Certification Voucher Codes to save costs on the CKA, CKAD, and CKS certification registration
Certified Kubernetes Application Developer (CKAD) Exam Preparation Guide
This section will go over the complete resources and official CKAD kubernetes documentation pages that can help you prepare for the exam better.
Bookmark all the official Kubernetes documentation as you can use the documentation pages during the exam.
CKAD Exam prerequisites
CKAD does not require any candidate to have any other certification before appearing for the CKAD exam. The only thing required to clear the exam is practice, practice, and practice.
CKAD Exam details
Exam Duration | 2 hours |
Pass Percentage | 66% |
Kubernetes Version | v1.22 |
CKAD Validity | 3 Years |
Exam Cost | 375 USD |
CKAD exam is an open book exam i.e. you can use the following websites while you are taking the exam:-
- https://kubernetes.io/docs/
- https://github.com/kubernetes/
- https://kubernetes.io/blog/ and their subdomains. This includes all available language translations of these pages (e.g. https://kubernetes.io/zh/docs/)
Exam syllabus
The following are the domains and competencies part of the syllabus along with their respective weightage.
Topic | Weightage |
Core Concepts | 13 % |
Configuration | 18 % |
Multi-Container Pods | 10 % |
Observability | 18 % |
Pod Design | 20 % |
Services & Networking | 13 % |
State Persistence | 8 % |
Best CKAD Preparation Course
Investing in a CKAD course will help you understand all the concepts for the CKAD exam in an easier manner. I strongly suggest you invest in a good CKAD course of your choice.
I recommend going for the CKAD preparation course by Mumshad. His course has a lot of quizzes and the quality is top-notch.
CKAD Exam Practice Lab Setups
The best way to prepare is to practice a lot! The below setups will give you a Kubernetes cluster where you can do all the required practice. The exam expects you to solve problems on a live cluster.
CKAD does not have any MCQ-type format – so hands-on practice is a must.
- Katacoda
- Minikube
- Kubernetes Setup using Kubeadm [Detailed Guide]
- Kubernetes Vagrant Setup using Kubeadm
- GKE Cluster using free Google Cloud Credits
- EKS Service on AWS using Free tier program
- AKS service on Azure using free cloud credits
- Kubernetes Cluster on Digital Ocean[ Get $100 Digital Ocean Free Credits]
CKAD Exam Study Resources
Here, I will be discussing official Kubernetes resources that can be used to prepare for each topic of the CKAD exam. You can use these documentation pages during the exam for reference.
Core Concepts [ 13% ]
Understand Kubernetes API primitives
The Kubernetes API lets you query and manipulates the state of objects like Pods, Namespaces, ConfigMaps, and Events.
To read more: https://kubernetes.io/docs/concepts/overview/kubernetes-api/
Create and Configure Basic Pods
Pods are the basic objects where your images/code run.
Reference | Pod Concepts |
Task | Configure Pods and Containers |
Imperative commands: These are commands which let you create objects via a CLI, i.e., they remove the need to write the whole YAML. Knowing imperative commands can help you save time in the exam. I highly recommend them!
Imperative commands for pods:
kubectl run <name of pod> --image=<image>
Configuration [ 18 % ]
Understand ConfigMaps
Configmaps are useful to store non-critical data in key-value pair format. They can also be used to inject env vars into pods.
To read more: https://kubernetes.io/docs/concepts/configuration/configmap/
Imperative commands for configmaps:
kubectl create cm <name of configmap> --from-file=hello.txt
kubectl create cm <name of configmap> --from-literal=key1=value1
Understand SecurityContexts
A security context defines privilege and access control settings for a Pod.
To read more: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
Define an application’s resource requirements
Used to define the CPU and memory requirements of a container.
To read more: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Imperative commands for resources:
kubectl run test --image=alpine --requests=cpu=100m,memory=256Mi --limits=cpu=200m,memory=512Mi
Create & consume Secrets
Secrets are useful to store sensitive data in key value pair format. They can also be used to inject env vars into pods.
To read more: https://kubernetes.io/docs/concepts/configuration/secret/
Imperative commands for secrets:
kubectl create secrets <name of secret> --from-file=hello.txt
kubectl create secrets <name of secret> --from-literal=key1=value1
Understand ServiceAccounts
Kubernetes service account provides an identity for processes that run in a Pod.
To read more: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
Imperative commands for Kubernetes serviceaccount
kubectl create serviceaccount <name of serviceaccount>
Multi-Container Pods [ 10 % ]
Understand Multi-Container Pod design patterns
In Kubernetes, each pod can run multiple containers inside it. These containers share a common network, i.e., each pod can make requests to other containers using localhost.
This has a lot of use cases in logging or metrics analysis in the cluster.
To read more: https://kubernetes.io/blog/2015/06/the-distributed-system-toolkit-patterns/
Observability [ 18 % ]
Understand LivenessProbes, ReadinessProbes and StartupProbes
- Liveness probes are used to know when to restart a container.
- Readiness probes are used to know when a container is ready to start accepting traffic.
- Startup probes are used to know when a container application has started.
To read more: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
Understand container logging
Application logs can help in understanding the activities and status of the application. The logs are particularly useful for debugging problems and monitoring cluster activity.
Tools like Elastic Stack and Istio are popular as they make the management of these logs very easy.
There are certain flags in kubectl commands which can help speed up your debugging cases, they are given below.
Commands:
kubectl logs deployment/<name of deployment>
kubectl logs deployment/<name of deployment> --tail=10
kubectl logs deployment/<name of deployment> --tail=10 -f
To read more: https://kubernetes.io/docs/concepts/cluster-administration/logging/
Understand how to monitor applications in Kubernetes
Monitoring applications can be done by storing logs and studying the application’s metrics.
Tools like Prometheus-Grafana are popular as they make the management of metrics very easy.
Very often, sidecar containers are used as metrics exporters of the main application container.
To read more: https://v1-18.docs.kubernetes.io/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana/
Understand debugging in Kubernetes
The exam requires you to be able to identify errors, understand the root cause and rectify the errors. For this practice is required. There are certain basic steps one can take to understand the error very easily.
These steps involve – studying the logs of the pods, setting up probes, and studying the application metrics.
Commands:
kubectl logs deployment/<name of deployment>
kubectl logs deployment/<name of deployment> --tail=10
kubectl logs deployment/<name of deployment> --tail=10 -f
To read more: https://kubernetes.io/docs/tasks/debug-application-cluster/debug-running-pod/
Pod Design [ 20 % ]
Understand how to use Labels, Selectors, and Annotations
Labels are key/value pairs that are attached to objects, such as pods. They help in filtering out specific objects.
Using a Selector, the client/user can identify a set of objects.
Imperative commands:
kubectl get pods --show-labels //display labels of each pod
kubectl get pods --selector=foo=bar //filter on basis of labels
kubectl label pod <podname> k1=v1 k2=v2 k3=v3 //to add labels
kubectl label pod <podname> k1- //to remove labels
kubectl label pod <podname> k2=v2.1 --overwrite //to overwrite
To read more: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
Annotations are used to attach arbitrary non-identifying metadata to objects.
Imperative commands:
kubectl annotate pods <podname> description='desc' //add annotations
kubectl annotate pods <podname> description- //to remove annotations
kubectl annotate pods <podname> description='desc2' --overwrite//to overwrite
To read more: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
Understand Deployments and how to perform rolling updates
Deployments ensure a minimum no of replicas of an application are running at all times. In case a replica goes down, the Kubernetes API ensures that a new one is created within minutes.
Imperative commands:
kubectl create deployment <name> --image=<name> //create deployment
kubectl create deployment <name> --image=<name> -- sleep 300 //with command arguments
kubectl scale deployment <name> --replicas=4 //scale up or down
To read more: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
Understand Deployments and how to perform rollbacks
Sometimes, you may want to roll back a Kubernetes Deployment; for example, when the Deployment is not stable, such as crash looping. Kubernetes handles this in the form of rollbacks.
Imperative commands:
kubectl set image deployment <name of deployment> <name of container>=<new image name> // update image
kubectl rollout status deployment <name of deployment> //see status
kubectl rollout history deployment <name of deployment> //see history
To read more: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#rolling-back-a-deployment
Understand Jobs and CronJobs
Kubernetes jobs create one or more Pods and will continue to retry execution of the Pods until a specified number of them successfully terminate.
Jobs are used mostly for tasks that you want to run only once like for e.g. a database migration script before application deployment.
Imperative commands:
kubectl create job my-job --image=busybox -- date
To read more: https://kubernetes.io/docs/concepts/workloads/controllers/job/
CronJob object is like a job that keeps running on a schedule. The schedule needs to be specified in Cron format.
CronJobs are used for tasks that need to be done on a schedule such as cleaning up logs every day or running an antivirus scan on the database every other week.
Imperative commands:
kubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *" -- date
To read more: https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
Services & Networking [ 13 % ]
Understand Services
Services are an abstract way to expose an application running on a set of Pods as a network service. They are used for inter-pod communications.
The fact that each service’s IP address remains unchanged until it is deleted & recreated is why Services are used for inter-pod communications instead of Pod IP addresses.
Imperative commands:
kubectl expose deployment nginx --port=80 --target-port=8000 --type=ClusterIP
kubectl create service nodeport my-ns --tcp=5678:8080
To read more: https://kubernetes.io/docs/concepts/services-networking/service/
Demonstrate Basic understanding of NetworkPolicies
NetworkPolicies are an application-centric construct that allows you to specify how a pod is allowed to communicate with various network “entities” such as pods, deployments, etc over the network.
Basically, you can tell Kubernetes through NetworkPolicies whether pod A should be allowed to take requests from pod B or whether pod A can communicate with pod C. It gives you much tighter control of the network flow and traffic.
To read more: https://kubernetes.io/docs/concepts/services-networking/network-policies/
State Persistence [ 8 % ]
Understand Persistent Volume Claims for storage
- StorageClasses: StorageClass provides a way to describe the “classes” of storage offers available.
- PersistentVolume: It is a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using StorageClasses. They are created over StorageClasses.
- PersistentVolumeClaim: It is a request for storage by a user. They are created over PersistentVolumes.
To read more: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
Unofficial Resources For CKAD Practice
Interactive CKAD Practice Lab | CKAD Katacoda Practice Lab |
CKAD Practice Questions | 150 Practice Questions |
CKAD Questions & Answers With explanation | 5 Set of Kubernetes CKAD Practice Questions |
Vim shortcuts | Vim Tips & Tricks |
Practice Questions | Github Repo With CKAD Practice Questions |
CKAD Do’s
- While giving practice exams, try to wrap up 15 minutes before the deadline – it will give you additional time to revise the solutions.
- Give ALOT of practise exams, identify your weak topics and spend more time on those.
- On the exam day, keep an alternative internet source handy in case of Wi-Fi internet goes down. We don’t want all our hand work to be wasted, do we?
- If any particular question is going to take more than 6-7 mins to solve, flag/mark it to solve for later and come back once you solve the rest.
CKAD Dont’s
- Most people don’t even use an alias. So no need to overwhelm yourself with an
alias
for everything. - Don’t give the exam on the last day. The idea is to give it in a pressure-free environment.
- At the time of the exam, you shouldn’t have anything on the table other than your system.
Conclusion
Preparing for the CKAD exam will help you understand application development on Kubernetes in a much better way and help in your career progression.
CKAD is a sought-after DevOps certification for DevOps engineers out there. So give your best and prepare well!
This CKA exam guide has given you all the best resources, tips, and methods to help you pass the certification exam. I will keep updating it with new tools and resources—all the best for your preparations.
You might also like our 25+ Kubernetes beginner tutorials that have several topics covered under Kubernetes certification.
Do check out the CKA & CKS certification guides as well.