As a trainer focusing on Kubernetes, it makes sense that I take the Certified Kubernetes Application Developer (CKAD) exam. I finally took the time to do it so here are a few tips if you want to take the exam.
You must be very proficient using the kubectl CLI the imperative way and be able to do the following without breaking a sweat:
Create a Pod with main container busybox and which executes this "while true; do echo 'Hi I am from Main container' >> /var/log/index.html; sleep 5; done" and with sidecar container with nginx image which exposes on port 80. Use emptyDir Volume and mount this volume on path /var/log for busybox and on path /usr/share/nginx/html for nginx container. Verify both containers are running.
It's almost impossible to answer all 19 questions in the 2 hours time limit. Time management is the essence here.
Each question has a percentage weight. Always look at that value to determine if you'll spend time on it.
Do one pass answering the easy questions first and marking the ones that you can't answer. Then go back sorting the marked questions in your head and attacking the ones that you can answer keeping in mind the weight of the question. For example, it makes no sense to spend 15 minutes on a hard question that weight only 2% of the total score. Unmark the questions that you answered.
Each question can have many steps that may be scored individually. Answer what you can even if you can't complete all the steps but always keep in mind the time you're spending.
It's an open book style of exam. Beside the browser tab where the exam is taking place, you can open a second one to consult the Kubernetes documentation. When preparing for the exam, take the time to add bookmarks to speed up opening the correct pages.
Most pages have section with anchor links. Bookmark these instead of scrolling thru long documentation pages.
Instead of opening a Web page, try using the --help flag. Looking for the CronJob syntax? Type:
k create cronjob --help
and you'll get some help. Sometimes that's all you need to remember the correct syntax of a parameter.
Use a terminal multiplexer and open 2 sessions. You'll be able to edit a file in one session and look for values in the second one. Tmux is installed so learn how to use it before taking the exam and practice practice practice until it's second nature.
tmux CTRL+B " => Open a new session horizontally CTRL+B Up or Down => Move between sessions CTRL+B x => Close the current session
Copy the kubectl autocomplete commands from the kubectl cheat sheet page and run them on each terminal session. Nano is installed and I prefer using it instead of Vim so I set it as the default kubectl editor. Learn how to use Vim or Nano and practice practice practice until it's second nature.
source <(kubectl completion bash) alias k=kubectl complete -F __start_kubectl k export KUBE_EDITOR=nano
When saving a file, I used the question number as the file name (ex: 10.yaml). This way, if I had to come back to the question, it was super easy to load the correct file.
Copying and pasting: Ctrl+C & and Ctrl+V are not supported in the exam terminal. For Windows, use Ctrl+Insert to copy and Shift+Insert to paste. Practice practice practice until it's second nature.
On my laptop, the Insert key is triggered by pressing the Function key. This means that I have to press a 3rd key to copy and paste, Ctrl+Function+Insert and Shift+Function+Insert. If you are in this situation, practice practice practice until it's second nature.
Each question starts with a command that sets you up on the right cluster. Run that command each time, period. If you use tmux, run it on both sessions.
Make sure you follow all the directives listed in the exam documentation. Close all apps. Open Task Manager and make sure that you only see the Chrome process listed when Task Manager is in the Fewer Details mode.
You can connect to the exam 15 minutes prior to the time you scheduled it. Do it. The validation procedure with the proctor can take 10-15 minutes.
The proctor will ask you to pan the camera so that he/she have a clear view of the room and under your desk. Using the built-in laptop camera makes this harder. I had an external camera hooked to my laptop and was happy I did.
After answering a question, try validating that what you deployed is working correctly. Under stress, it's super easy to forget to deploy that pod in the required namespace.
How to prep for the exam? You need to be able to do these 150 tasks. I went thru the whole list 3 times. Note that the blog post was written in 2019 so a few commands or switches have changed since like --restart=Never and --export are no longer supported. I also went thru these CKAD exercises 2 times. Practice practice practice until it's second nature.
Assume that you will fail on the first try and that you'll use that free retake. Think of this failed attempt as being part of the prep process. The second time, you will not stress about how the exam works and you'll focus on the questions.
Happy studying, practice practice practice and best of luck!
Learn Docker and Kubernetes
Like this blog post? I also teach Docker and Kubernetes online virtual classes at Kubernetes Academy.
Kubernetes Academy offers instructor led training workshop-style on Docker containers and Kubernetes for web developers, DevOps specialists, I.T. Pros.
Courses info: LearnK8s.ca