Certified Kubernetes Application Developer (CKAD) - Everything you need to know
The preparations and the CKAD exam are behind me. So the time has come to summarize and write down experiences that may help someone of you pass this exam. In this post, I will try to introduce you to Kubernetes certification. I will present materials that will help you prepare well for the CKAD exam. I will also post some tips that will definitely be useful during the exam.
What does the CKAD exam look like?
The Kubernetes Certification Program is under the care of Cloud Native Computing Foundation (CNCF), in collaboration with The Linux Foundation. It is this authority that is the issuer of the certificate. The Kubernetes exams differ from other cloud exams. All Kubernetes exams (CKAD, CKA, CKS) are 100% practical. You will not encounter any open or closed questions here. The exam consists of solving tasks on the Kubernetes cluster that will be made available to you during the exam. Your only working tool will be the terminal. Yes, the terminal. This is why mastering the terminal and tools like vim is very important.
In my opinion, this form of certification is much more interesting than a set of multiple-choice questions. First of all, during the preparation, you will learn not only the theory, but you will gain skills that will be useful in your later work with K8s. If you already have experience working with Kubernetes, you may find that you don’t need to prepare much for such an exam.
The exam is a fight against time. We get 19 exercises that we have to solve in 2 hours. Each question has a specific percentage of weight. From tasks for 2% to tasks for up to 13%. Often this weight is not adequate for the complexity of the task. There will be tasks that will require two console commands to be solved. There will also be more complicated ones that need a few minutes.
What does the CKAD exam environment look like
The exam is carried out using the Training Portal platform. Below I am enclosing a drawing showing what the exam environment looks like.
- The exam is taken in the browser. To the main exam window, you have the option of using one extra tab where you can open one of the below domains
- A bar will be visible here showing the time remaining in the exam (without the exact minutes). Next to the timer, there is a drop-down list with all the questions
- In the exam, you will work on several k8s clusters. With each question, you will be prompted to set the appropriate context. Command to set this context will be visible in this box. It is important to use this command before each task to not perform the task on the wrong cluster
- This field will show the content of the task and its point weight. Tasks will often name the resources you are about to create. By clicking on the name you can copy it to the clipboard and paste it into the terminal.
- Function bar. In this bar, you will have access to chat with the protector, open the notebook, or the button ending the exam early. You will learn how useful a notebook can be later in this post.
- Terminal window. It is large and legible enough. Unfortunately, it isn’t possible to open another window. However, there is an option to use the tmux tool, which allows you to split a single window into several small parts
Basic information about the CKAD exam
- 19 tasks to be done
- 2 hours to complete the tasks
- The questions are scored as a percentage. In my case, there was one task for 13%, some for 6% — 9%, most for 2% — 6%
- I had the impression that the weight of the points did not always reflect the complexity of the task. The 13% task was quite simple, while there were 4% that required more time
- Exam tasks are scored partially. We may not fully complete the task, but receive some points for correctly performed steps.
- 66% is required to pass the exam
- You can wait up to 36 hours for the exam results
- In the event of failure to pass the exam, we have the option of using the second attempt for free. You will need to reschedule
- The cost of the exam is $ 300. There are often programs in which the CNCF updates the exam and then it is possible to take the beta-exam for free, in which we also have the opportunity to obtain a certificate
- The certificate is valid for 3 years
- The exam is carried out under the supervision of a proctor who will want to see your exam position before the exam. No personal items, watches, or even paintings/posters on the walls are allowed.
- It is possible to use an extra monitor. You will have to share both screens with the proctor.
- In the case of Windows systems, the clipboard works only under the shortcut Ctrl + Insert & Shift + Insert in the case of macOS it is the standard Cmd + C & Cmd + V
How to prepare for the CKAD exam?
There is a lot of material on the Internet about Kubernetes. It is not the trick to find learning materials, but to select the most valuable ones. Below I will list materials that I think will prepare you well for certification. In my case, the preparation for the exam was also my first contact with work at K8s. Previously, I was only familiar with the concept of this platform. I spent about 2 months preparing, but it was not very intensive and regular. However, it allowed me to pass the exam on the first attempt and get a 99% result.
- Udemy & KodeKloud Course -In my opinion, this is one of the best sources for preparing for a certificate. The course consists of video materials that cover the range of material needed for CKAD. What’s more valuable, as part of the course we will gain access to KodeKloud platforms. On this platform, the author has prepared a set of practice exams and exercises. These Mock Exams and Lightning Labs are the best way to prepare for the exam, as they reflect very well what we will encounter during the exam. I based my preparations mainly on this platform.
- Question Bank - preparation for the exam is practice, practice, and practice. You have to master the use of kubectl and yaml files editing. You have to do it quickly, even automatically. During the exam, when reading a question, you have to interpret it on the fly, and your fingers already need to know what commands they will be typing. To practice this, work on exercises included below. You can complete these tasks on the KodeKloud platform from Udemy course. Alternatively, you can install the minikube locally or place Kubernetes somewhere in the cloud.
- Question bank 1
- Question bank 2
- Question bank 3
- Killer.sh CKAD Simulator - exam simulator. A nice way to verify if we are ready for the exam. The tasks are intentionally more difficult than those in the exam. Personally, I haven’t used it, but I’ve heard some good reviews about this simulator
CKAD Tips & Tricks
It’s time for the most interesting point of this post. Here are some tips that I hope you will find useful during your exam
- notes - we cannot mark questions in the selector. So we have to deal with our own methods. A notebook comes in handy here. Even before starting the exam, we can list the question numbers with their weight, and gradually complete the status of the done task during the exam. For me it looked like this:
1. 6% OK # not done
2. 13% NOK # done
3. 2% CHECK # done, but required verificatiom
N. 4% OK
Instead of a notepad, you can use a text file that you can edit with vim. It is possible that in the case of restarting the environment, the contents of the notepad will disappear, while the file will not
- Environment configuration - just as you probably configure your own environment to make it easier and faster for you to work on it, it is necessary to configure the examination environment to save valuable minutes. Below is the full configuration that I used in my exam
sudo -i # immediately after starting exam, I recommend switching to root so that we are not surprised by the lack of some access# 1. ~/.bashrc configuration
# The following configuration can be found at:
# aliases must be rememberedsource <(kubectl completion bash)
echo “source <(kubectl completion bash)” >> ~/.bashrc
complete -F __start_kubectl kalias change-ns=”kubectl config set-context — current — namespace ” # Namespace change
alias current-ns=”kubectl config view — minify | grep namespace” # Display the current namespace# You can also try a few additional aliases, for example:
alias kap=”kubectl apply -f”
alias kgp=”k get pods -o wide — show-labels”# 2. ~/.vimrc configuration
# The following configuration will set the tabs and indents appropriately, so that created yaml files will have correct structureset nu et sw=2 ts=2
- Documentation - documentation is your best friend in the exam. This is where you will find yaml definitions of all objects. This is where you can look for a detailed configuration. You will also find a cheatsheet with commands in it. To navigate smoothly, learn to find information quickly as you prepare. Preferably using a text search engine. You can also prepare your own directory of Chrome bookmarks, or use one of the ready-made ones.
- Namespace - I have already mentioned this, but I will repeat it again. You have to pay attention to the namespace. It is best before each task, after setting the context, to check the namespace required in the task and set it. If it is not specified in the task body, we should set it to default.
- Don’t waste your time - if you are stuck on a task, don’t waste time debugging, especially if that task is too small. Mark this task in the notebook to come back to it later. Also, do not verify each task immediately after completing it. It is also better to come back at the end if you have enough time.
- Before starting the task, read its content fully. Trite advice, but I stumbled on it myself. I read part of the assignment and started doing it. Later I read that I cannot follow the steps I have taken and the task should be completed in a different way. This way, I lost precious minutes.
- Vim - if you haven’t used it too often before, come and make friends with it. There will be a lot of work with yaml files in the exam. Smooth navigation in vim will play to your advantage. You just need to familiarize yourself with the basic functions such as copy, paste, undo, redo, go to the end of the line and find a word in the file.