On June 12, 2022, I achieved an important goal in my career as a software engineer: I passed the Certified Kubernetes Application Developer (CKAD) exam. At first, I felt overwhelmed by how much I needed to learn, but with a solid plan and hard work, I succeeded.
Now, I want to share my journey and give you an easy-to-follow guide to passing the CKAD exam.
The CKAD exam, administered by the Cloud Native Computing Foundation (CNCF), is designed to validate your skills in designing, building, and running applications on Kubernetes. The exam is hands-on and proctored, requiring you to solve real-world problems in a live Kubernetes environment within a two-hour timeframe.
This means you need to be proficient not only in theoretical knowledge but also in practical application, and you must be quick due to the strict time limit.
Complete the Udemy Course
I started by enrolling in the Certified Kubernetes Application Developer course by Mumshad Mannambeth on Udemy. This course is comprehensive and includes many labs that cover all the exam topics. Completing all the course content and labs helped me to refresh my knowledge and build a strong foundation.
If I can recommend one resource, it would be this course.
Review Difficult Sections
After finishing the course, I went back and repeated the sections I found challenging. This reinforced my understanding and ensured I was comfortable with all the exam topics.
Practice with KodeKloud
Next, I completed the free Kubernetes challenges on KodeKloud. These labs provided additional hands-on practice and helped me gain confidence in solving real-world problems.
Simulate the Exam with Killer.sh
To simulate the exam environment and test my readiness, I used Killer.sh’s CKAD practice exams. These practice tests closely mimic the actual exam and were invaluable in preparing me for the time constraints and pressure.
Explore CKAD Exercises on GitHub
I also used the CKAD exercises on GitHub. These exercises are a great way to practice and test your knowledge on different CKAD topics in a structured manner.
Explore Additional Free Labs
Although I didn’t use them, there are new free Kubernetes labs available on KodeKloud and Interactive Scenarios for Kubernetes Application Developers that you can try.
Don’t write YAML file for any questions from scratch: Copy YAML related to questions from official docs and change it.
Get comfortable with vim/nano editor and terminal. The exam environment is within a Linux terminal, so there is no GUI and you can’t use IDE.
Create Aliases for Kubernetes Commands: To save time, create aliases for frequently used kubectl
commands.
Examples of useful aliases:
alias k=kubectl
alias kgp='kubectl get pods'
alias kgs='kubectl get svc'
alias kdp='kubectl describe pod'
alias kds='kubectl describe svc'
alias kaf='kubectl apply -f'
alias kcf='kubectl create -f'
alias do="--dry-run=client -o yaml"
alias now="--force --grace-period 0"
# for context/namespace switching
alias kx='kubectl config use-context'
alias kn='kubectl config set-context --current --namespace'
Examples of using the aliases:
# Apply a configuration from a YAML file
kaf my-config.yaml
# Create resources from a YAML file
kcf my-resources.yaml
# Generate the YAML for a new pod without creating it
k run nginx --image=nginx $do
# Force delete a pod immediately
k delete pod nginx $now
# Generate the YAML for a new deployment without creating it
k create deployment my-deployment --image=nginx $do
# Force delete a deployment immediately
k delete deployment my-deployment $now
# Switch context quickly
kx new-context
# Switch namespace quickly
kn new-namespace
Use Imperative Commands: Whenever possible, use imperative commands to achieve tasks quickly. For example:
# create a namespace
k create namespace {ns}
# run a pod
k run nginx --image=nginx --restart=Never -n {ns}
# expose a pod
k expose pod nginx --port=80 --target-port=80 -n {ns}
# set an image on a deployment
k set image deployment/nginx nginx=nginx:latest -n {ns}
# create a deployment
k create deployment nginx --image=nginx
#scale a deployment
k scale deployment nginx --replicas=3
# create a config map
k create configmap my-config --from-literal=key1=value1
# create a secret
k create secret generic my-secret --from-literal=password=12345
Practice, Practice, Practice: The key to success is consistent practice. Use the resources mentioned above to practice as much as possible. The more hands-on experience you have, the more comfortable you will be during the exam.
Passing the CKAD exam not only validated my Kubernetes skills but also boosted my confidence. The key to success is consistent practice and a solid understanding of Kubernetes concepts. Remember, the journey to CKAD certification is as valuable as the certification itself. It enhances your problem-solving skills and prepares you for real-world challenges.
I hope my story and this guide motivate you to start your CKAD journey. With dedication and the right approach, you too can achieve this certification and take your career to new heights.
Happy learning, and I wish you all the best in passing the exam!