Certified Kubernetes Application Developer CKAD Learning Path
After working on Kubernetes for quite some time, it was time to recertify my Certified Kubernetes Application Developer, and am glad to have cleared it with a score of 89 with minimal preparation.
- CKAD is more of an open-book test, where you have access to the official Kubernetes documentation exam, but it focuses more on hands-on experience.
- CKAD focuses on “Using a Kubernetes cluster once already provisioned“. It tests the candidate’s ability to design, build, configure, and expose cloud native applications for Kubernetes.
- Unlike AWS and GCP certifications, you would be required to solve, debug actual problems, and provision resources on a live Kubernetes cluster.
- Even though it is an open book test, you need to know where the information is.
- Trust me, if you are not prepared this time is not going to be sufficient.
CKAD Exam Pattern
- CKAD exam curriculum includes these general domains and their weights on the exam:
- Application Design and Build – 20%
- Application Environment, Configuration and Security – 25%
- Application Deployment – 20%
- Services & Networking – 20%
- Application observability and maintenance – 15%
- CKAD requires you to solve 16 questions in 2 hours.
- CKAD was already upgraded to use the k8s 1.28 version. But it keeps on being upgraded with new Kubernetes versions.
- You are allowed to open another browser tab that can be from kubernetes.io or other product documentation like Falco. Do not open any other windows.
- Exam questions can be attempted in any order and don’t have to be sequential. So be sure to flag them and move ahead and come back later.
CKAD Exam Preparation and Tips
- I used the courses from KodeKloud CKAD for practicing and it would be good enough to cover what is required for the exam.
- Prepare yourself with the imperative commands as much as you can. This will help cut down the time required to solve half of the questions. I was not stretched for time for CKAD and had much time to review.
- Each exam question carries weight so be sure you attempt the exams with higher weights before focusing on the lower ones. So target the ones with higher weights and quicker solutions like debugging ones.
- CKAD exam provides 6-8 different preconfigured K8s clusters. Each question refers to a different Kubernetes cluster, and the context needs to be switched. Be sure to execute the
kubectl use context
command, which is available with every question and you just need to copy-paste it. - Check for the namespace mentioned in the question, to find resources and create resources. Use the
-n <namespace>
- You would be performing most of the interaction from the client node. However, pay attention to the node (master or worker) you need to execute the exams and make sure you return back to the base node.
- SSH to nodes and gaining root access is allowed if needed.
- Read carefully the Information provided within the questions with the i mark. They would provide very useful hints in addressing the question and save time. for e.g. namespaces to look into. for a failed pod, what has already been created like configmap, secrets, network policies so that you do not create the same.
- Make sure you know the imperative commands to create resources, as you won’t have much time to create and edit YAML files.
- If you need to edit further use
--dry-run=client -o yaml
to get a headstart with the YAML spec file and edit the same. - I personally use
alias kk=kubectl
to avoid typingkubectl
CKAD Resources
- Go through the CKAD Curriculum. Check for the latest one.
- Mumshad Mannambeth KodeKloud
- Excellent course which covers the right topics required for the CKAD exam
- It also provides hands-on labs for each of the topics, giving you actual experience working on the Kubernetes cluster
- Udemy Certified Kubernetes Application Developer by Zeal Vora. It does offer practical hands-on though.
- Practice CKAD Exercises
- Cover kubectl Cheatsheet for commands
- Cover Tasks from Kubernetes documentation
CKAD Key Topics
Application Design and Build – 20%
- Practice CKAD Exercises – Application Design and Build
- Define, build and modify container images
- Understand Jobs and CronJobs
- Know how to Create Cron Jobs with recurring frequency and set a time limit for completion.
- Understand multi-container Pod design patterns (e.g. sidecar, init, and others)
- Understand Init Containers and usage
- Know how to Create a multi-container pod
- Utilize persistent and ephemeral volumes
Application Environment, Configuration and Security – 25%
- Practice CKAD Exercises – Application Environment, Configuration and Security
- Discover and use resources that extend Kubernetes (CRD)
- Understand Custom Resources
- Understand authentication, authorization, and admission control
- Authentication using Certificates and Service Accounts
- Authorization using Node and RBAC
- Admission controllers
- can be used for validating configurations as well as mutating the configurations.
- Mutating controllers are triggered before validating controllers.
- Allows extension by adding custom controllers using MutatingAdmissionWebhook and ValidatingAdmissionWebhook.
- Understanding and defining resource requirements, limits, and quotas
- Understand ConfigMaps
- ConfigMaps are used to store non-confidential data in key-value pairs.
- Task Create a ConfigMap and mount it as a volume.
- Exam Tip: Know how to create ConfigMaps and mount the same on the pods.
- Create & consume Secrets
- Know how to Manage Kubernetes secrets
- Task Create Secrets and refer to them in a Pod.
- Exam Tip: Know how to read secret values, create secrets and mount the same on the pods.
- Understand ServiceAccounts
- Understand Service Accounts & Managing Service Accounts
- Task Create a Service Account and configure a pod to run with it.
- Exam tip: Know how to create Service Accounts, Roles, and Cluster Roles and associate them together using Role Binding and Cluster Role Binding.
- Understand SecurityContexts
- Pod Security Contexts help define security for pods and containers at the pod or at the container level. Capabilities can be added at the container level only.
- Task Configure pod container security context
- Exam tip: Know how to run containers using different users and groups and add capabilities to the containers.
Application Deployment – 20%
- Practice CKAD Exercises – Application Deployment
- Use Kubernetes primitives to implement common deployment strategies (e.g. blue/green or canary)
- Kubernetes supports only Recreate and Rolling deployments within the same cluster.
- A service mesh like Istio can be used for traffic management and canary deployments.
- Understand Deployments and how to perform rolling updates
- Understand Deployments & Create deployments, update deployments, and rollback deployments.
- Task Stateless Application Deployment
- Exam tip: Know how to create and update pods and deployments
- NOTE – Unlike Pods, Deployments can be edited inline and the Pods are recreated.
- Use the Helm package manager to deploy existing packages
Services & Networking – 20%
- Practice CKAD Exercise – Application Deployment
- Demonstrate basic understanding of NetworkPolicies
- Understand Network Policies & Use Network security policies to restrict cluster level access
- Task Declare Network Policy.
- Exam tip: Know how to create Network Policies using proper selectors
- Provide and troubleshoot access to applications via services
- Understand Services & Connecting applications with Services
- Task Access Application Cluster using Service
- Exam tip: Know how to expose a port for a pod, expose a service for a deployment
- Use Ingress rules to expose applications
- Understand Ingress
- Task Access Application Cluster using Ingress
Application observability and maintenance – 15%
- Practice CKAD Exercise – Application Observability and Maintenance
- Understand API deprecations
- Implement probes and health checks
- Know the difference between Liveness and Readiness. Readiness provides an indication of when the pod is ready and liveness provides an indication if the pod is healthy.
- Task Configure liveness readiness startup probes
- Use provided tools to monitor Kubernetes applications
- Utilize container logs
- Know Kubernetes Logging Architecture
- Know how to check logs for Pods.
kubectl logs pod_name
- Debugging in Kubernetes
CKAD General information and practices
- The exam can be taken online from anywhere.
- Make sure you have prepared your workspace well before the exams.
- Make sure you have a valid government-issued ID card as it would be checked.
- You are not allowed to have anything around you and no one should enter the room.
- The exam proctor will always watch you, so refrain from doing other activities. Your screen is also always shared.
- Copy + Paste works fine.
- You will have an online notepad on the right corner to note down. I hardly used it, but it can be useful to type and modify text instead of using the VI editor if you are not comfortable with it.
All the Best …
Did you use any aliases? When you switch node, do I need to copy paste aliases ( I usually put them in.bashrc) again?
Hi Gaurav, i used a single alias of kk=kubectl.
Almost 99% of work was done on node-1 and not on the master nodes, so the node switching was almost non existent.
Hi ,
kubectl run commands still work in exam simulator ? I got to know that exam version is 1.18 where run command is deprecated ?
run command did work and most of the answers were solved using run.
Thanks for your reply. I had one more question – primary ID proof can be PAN card? I am sorry this is not a technical question though. Any idea on this ?
I would recommend using a Passport for identity. As, the photo and details are quite clear in it.
Hello Jayendra,
I’ve also seen people mentioned kubectl run did not worked. In your CKA you’ve mentioned that it did not work for you.
https://jayendrapatil.com/certified-kubernetes-administrator-cka-learning-path/
(CKA was already upgraded to use k8s 1.18 version and kubectl run commands did not work for me. Use kubectl create commands to create deployments)
I’ve checked with the kata code, with v1.18 kubectl run is working fine for me.
Can you please clear this? Caz without the run command pod creation needs to be done via YAML file 😀
Waiting for your input on this.
kubelet run
did not create a deployment for meSorry for jumping in. With version 1.18 run command works the change is that prior to version 1.18.3 you could use kubectl run for creating anything like jobs, deployment, pos etc which has now been limited to only creating pods with –restart=Always. So running kubectl run by default will create a deployment. Hope this helps.
Thanks Jayendra for complete article on tips on CKAD.
Quick question – How about text editor.. Are we able to install and use any other editor than Vim for YAML ? I am generally using nano for my learning currently. Thanks !
I used VI mainly, but i have read nano works as well.
One more question on kubectl run,
on version 1.16
“kubectl run –image=nginx:alpine nginx”
will create deployment
and on 1.18
kubectl run –image=nginx:alpine nginx
will create pod.
Any work around on this?
yup Jeet, i faced the same issue as i was used to using
kubectl run --restart=Never
for creating pod.I ended up using
kubectl create deployment
in the exam.not sure if you are still looking for the solution but use below.
kubectl run nginx –generator=run-pod/v1 –image=nginx –restart=Never … it will create pod in the older version. try this.
Just wondering if we are allowed to use an external monitor during the exam?
I doubt mike, but you can check.
I appreciate your effort on building this page.
I have one question on the usage of online documentation.
If we refer k8s documentation heavily during the exam, will it impact the overall score?
No Vamshi, there is no impact. You can copy paste the commands, follow the steps in the documentation.
Hi Jayendra,
Thanks for the useful info. This blog has cleared most of my doubts regarding CKAD exam. I have one small question:
Is the laptop cam enough for the proctor or do we need to get a separate webcam?
Hi kedar, laptop cam is enough.
Can we open this site during exam https://discuss.kubernetes.io/t/kubectl-tips-and-tricks/192/60 ?
kubernetes.io is allowed as far as i know. So this should be fine.
no you cannot open.. “discuss” section of kubernetes.io
Hi Jayendra,
I have a mac and have practiced using shell provided by Mumshad’s CKAD course. On nano editor, to copy and paste text within a file, I have to do Exc+6 to copy, and then ctrl+u to paste. When I copy from Kubernetes doc., ctrl+c and ctrl+V works fine. Can I expect to use the same shortcuts when giving the exam from my personal mac?
Hi Ramit, nano works and copy paste works as well. For mac command + c and v works as well. I used mostly Vi. You can copy from documentation and paste. But rely more on commands rather than copy paste.
– was gedit available
– Was –help available for the commands?
did not try gedit, but help is available.
Thanks for the post, really helpful. How is the environment provided? and, how does it know that you have answered/performed the task given?
For ex: if the question is about creating a pod A with volume, how do you know when it is done? do you get a green tick mark or something?
There is no indication where you have answered it or not or whether it is correct or not. you need to make sure you have answered and verified as well.
for e.g. create pod in namespace. make sure you do and then verify it is created and move on.
There are few troubleshooting questions, whats the best way to solve them?? Some seemed too alien. Do you have any recommendations?
For the troubleshooting questions, i usually mapped the problem with the list of possible reasons and you just need to check on it. For e.g. Service -> Pod missing tag mapping check the tags referred.
for practicing kubernetes, which environment you used? or Mumshad udemy course is sufficient?
Used Mumshad KodeKloud as well as a personal one.
Are there any MCQ questions as well? In the practice exams I did solve MCQs hence asking.
hardly any MCQ questions – they are mainly single-choice.
Thanks for your reply.
Can we bookmark the important links from the kubernetes doc and use them in the exam?
yup, using Kubernetes doc and book marking is allowed.