Tips and Tricks for passing the Certified Kubernetes Application Developer (CKAD) exam
Credit: Linux Foundation

Tips and Tricks for passing the Certified Kubernetes Application Developer (CKAD) exam



I recently passed the Certified Kubernetes Application Developer (CKAD) exam offered by the Linux foundation. In this article, I will focus on my journey toward certification along with some tips and tricks that have helped me clear the exam.

About the certification:

CKAD is a two-hour performance-based exam conducted virtually during which you will be tasked with solving about 16 questions in a virtual Linux environment. These problems attempt to test your skills as a developer on the Kubernetes platform. You can find details of the certification here.


Preparation:

I have been using the Kubernetes platform for more than the past two years in one form or another in my day-to-day work. This has definitely made my preparation smoother. However, even if you are new to Kubernetes, with the proper preparation and mindset, you will be able to pass the certification. Here are some of the resources that I utilized which helped me clear the exam.

  • Udemy Course - Kubernetes Certified Application Developer (CKAD) with Tests: Go through this comprehensive course by Mumshad Mannambeth. Mumshad is a great teacher who goes through the topics in detail which will help you understand the core concepts. The course also comes with hands-on labs and mock exams. Make sure to do the labs as you are following the lectures. I did the mock exams and lightning labs multiple times before I got comfortable. Udemy courses go on sale from time to time. Watch out for those heavy discounts.
  • Killercoda CKAD scenarios: This is an excellent resource from killercoda where you can practice different CKAD problems inside a Linux environment embedded inside the killercoda UI. These hands-on scenarios will provide you with confidence for the exam.
  • GitHub exercise problems: Another excellent resource with a wide variety of practice problems that will make you faster with creating and deploying resources in the Kubernetes cluster. Killercoda offers a CKAD playground environment that is consistent with the Kubernetes version installed in the exam environment. I used this playground to solve these GitHub exercises.
  • Killer Shell CKAD: When you register for the exam, you automatically receive two free CKAD simulated exam environments from the killer shell. These two sessions are very closer to the actual exam environment. The difficulty level of the questions in these simulations is comparatively higher than in the actual exam. It is designed that way so you don't face many difficulties in clearing the actual exam. I took these two sessions 2/3 days before the exam. Make sure to go over the solutions after you do a simulation. Both simulations have the same set of exercises. If you can comfortably solve 18-20 questions in these simulators, you can feel confident to take the exam.


Tips and Tricks:

  • Familiarity with performing basic tasks in Linux via terminal: Learn about creating a file, copying a file, moving a file, using the grep command, etc.
  • Getting comfortable with the Vim editor: As mentioned earlier, this exam will be conducted inside a virtual Linux environment. You have to use a built-in editor to manage your YAML files. Learn about how to save, insert, delete, copy, and paste multiple lines inside the editor. Vim has certain configurations that will make your life easier during the exam. Killercoda has some scenarios that will go through these as well. At the beginning of the exam, I modified the .vimrc configuration file with the following configurations.

vi ~/.vimrc        
Then press key 'i' to enter into 'INSERT' mode and add following content to the file
set expandtab
set tabstop=2
set shiftwidth=2
set number
syntax on        
then press key 'escape', press the key 'colon', type wq to save the file.

  • Setting up aliases and environment variables to save time: You will like to save as much time as possible during the exam. Since you will be running a lot of Kubernetes commands during these two hours, it can add up to quite a bit of typing time. kubectl is already set up as an alias 'k' in the exam environment so you don't have to type kubectl every time. Kubernetes bash auto-completion is already preconfigured in the environment as well. Here are some additional aliases I set up at the start of the exam which has helped me in the exam.

alias ka='kubectl apply -f'
alias kns='kubectl config set-context --current --namespace'
export do='--dry-run=client -o yaml'
export kill='--grace-period=0 --force'
# This will provide you with a temporary nginx pod with a shell where you can test connectivity
# across pods, services, and ingress
export tester='kubectl run nginx-tester --image=nginx:alpine --restart=Never --rm -it sh'        

  • Using Kubectl imperative commands: There are two ways you can create resources in Kubernetes: declarative and imperative. Declarative allows you to write the yaml for a given resource in a file and apply that file. However, this takes up a lot of time. On the other hand, you can use the imperative commands to quickly either deploy a resource or generate a yaml file that you can modify according to the task. You can find details on creating objects imperatively here in the Kubernetes documentation. Let's look at an example: Suppose you have been tasked with creating a deployment named nginx-server with the nginx image and 2 replicas. You can easily achieve this by running an imperative command to either deploy directly or generate a yaml and then modify it using a text editor (ex: vim)

# Deploying a deployment directly
kubectl create deploy nginx-server --image=nginx --replicas=2
# Generate a yaml file for the deployment to modify later
kubectl create deploy nginx-server --image=nginx --replicas=2 --dry-run=client -o yaml > deploy.yaml
        

  • Leveraging the 'kubectl create' command: When you type in 'kubectl create --help' in the terminal, it will display all the available Kubernetes resources you can create via that command. For example, if you want to create a deployment, you can get some example imperative commands by simply typing in kubectl create deploy --help. Along with some imperative commands, it will also display the options you can pass to the command. Notice in the image below that not everything can be created via the 'kubectl create' command. If you want to create a pod, you have to utilize the 'kubectl run' command.

No alt text provided for this image
kubectl create --help
No alt text provided for this image
kubectl create deploy --help

  • Using the correct context and namespaces during the exam: Each problem in the exam will have to be solved in a particular Kubernetes context and namespace. The question will provide you with a command to switch to the correct context. Make sure to execute that command every time before attempting a question. Pay close attention to the namespace name mentioned in the question. If you do not use the correct context and namespace, you may solve all the problems but will still fail the exam.
  • Try to use official Kubernetes Documentation as less as possible: You are allowed to access the Kubernetes Documentation during the exam. However, due to the time constraint, it is not advisable to look up every single thing. Certain resources such as PersistentVolume, NetworkPolicy, and PersistentVolumeClaim can't be generated via imperative commands. You can look them up quickly if you forget a field for a particular resource. Instead of using the documentation, use the kubectl explain command. This command can show you all the available fields for a given key for a particular resource. Example:

No alt text provided for this image
kubectl explain

  • Practice, Practice, and Practice: You have to be fast with typing in this exam. The more you practice, the faster you will become. Once you feel comfortable, practice one more time. In a performance-based exam like this, the importance of practice is paramount. While practicing, pay close attention to the mistakes you are making. In a two-hour window, you are tasked with solving about 16/17 questions which gives you an average of 7 minutes for each question. I will say bring down your average solving time between 5 and 6 minutes. There will be one or two tricky questions that may end up taking more time. If you feel like you are stuck after 6 minutes, you can flag it and come back later after you have attempted other questions.


Registering and Taking the exam

  • Sign up for a Linux Foundation account here
  • You can register for the exam by following the instructions here. The exam fee is $395 with an additional retake. From time to time they offer discounts for the certification. You may want to keep looking out for those discounts if you require them.
  • Once you register for the exam, you will have to perform a compatibility check of your machine by following instructions from your LF account. You are only allowed one monitor/screen. I will recommend using a standard keyboard and monitor for the exam.
  • You will require a webcam that is connected to your machine and you should be able to move the webcam around to show your exam environment to the proctor.
  • A wired connection for seamless internet connectivity is recommended.
  • On exam day, you should join the session 30 minutes before your scheduled time to complete the sign-in process. I highly suggest this so you can finish the check-in process ahead of time and feel comfortable. Make sure you have a government-issued photo id. Take a deep breath, relax, and apply your learnings.


Hopefully, you have learned a thing or two by following this article. If you are planning to take the exam, I wish you all the best. If you have any further questions, do not hesitate to reach out to me on LinkedIn.

Very gwneric question but can a fresher with a proper study crack the exam in 2 months span

Thank you for the deep inside on this

To view or add a comment, sign in

Others also viewed

Explore content categories