CKAD Exam Study Guide: A Complete Resource for CKAD Aspirants

CKAD Exam Study Guide

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.

Registering for the CKAD Exam

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 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.

  1. The CKAD certification exam is to be taken online, and it is proctored remotely.
  2. A score of 66% or above must be earned to pass.
  3. Certifications are valid for 3 years.
  4. After registration, you get one year to schedule the exam.
  5. 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.
  6. 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.21
CKAD Validity 3 Years
Exam Cost 300 USD
CKAD Exam Details

CKAD exam is an open book exam i.e. you can use the following websites while you are taking the exam:-

  1. https://kubernetes.io/docs/
  2. https://github.com/kubernetes/
  3. 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.

TopicWeightage
Core Concepts13 %
Configuration18 %
Multi-Container Pods10 %
Observability18 %
Pod Design20 %
Services & Networking13 %
State Persistence8 %
CKAD topics

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.

  1. Katacoda
  2. Minikube
  3. Kubernetes Setup using Kubeadm [Detailed Guide]
  4. Kubernetes Vagrant Setup using Kubeadm
  5. GKE Cluster using free Google Cloud Credits
  6. EKS Service on AWS using Free tier program
  7. AKS service on Azure using free cloud credits
  8. 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.

ReferencePod Concepts
TaskConfigure 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

  1. Liveness probes are used to know when to restart a container.
  2. Readiness probes are used to know when a container is ready to start accepting traffic.
  3. 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

  1. StorageClasses: StorageClass provides a way to describe the “classes” of storage offers available.
  2. 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.
  3. 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 LabCKAD Katacoda Practice Lab
CKAD Practice Questions150 Practice Questions
CKAD Questions & Answers With explanation5 Set of Kubernetes CKAD Practice Questions 
Vim shortcutsVim Tips & Tricks
Practice QuestionsGithub 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.

Do check out the CKA & CKS certification guides as well.

  1. CKA Certificataion Exam Guide
  2. CKS Certification Exam Guide
0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like