Published on April 29, 2021
Table of Contents
Overview
Since its introduction in 2017, the CKA has been one of the most popular CNCF and Linux Foundation certifications ever. This hands-on technical exam covers the skills required to successfully set up, administer, and upgrade a Kubernetes cluster. When it was first released there were a lot of blog posts about the exam and how to best prepare for it. In September 2020 an updated version of the exam was released.
This post is an attempt to help anyone interested in taking this exam by sharing some of the things that helped our engineers prepare for and receive their certifications.
The Basics
Note: These details are accurate as of April 29, 2021. Some of them are likely to change over time. Please ensure that you primarily rely on the Linux Foundation’s published documentation.
The duration of the exam is 2 hours and you need to score at least 66% to pass the exam. CKA release (v1.20 - 2020) utilizes Kubernetes 1.20 deployed on Ubuntu 18.04.
[TIP] You can find the current platform list within the official exam preparation-checklist.
If you have a coupon code for the exam, here is a helpful hint. When you enroll in the class, there is a very small UI element for adding your coupon code that I completely overlooked at first. It looks like this:
Learning
In additional to SuperOrbital’s Kubernetes Core workshop which covers a lot of the material included in the CKA (and much more), there are a ton of books, videos, and live training opportunities out there that can help you prepare. Udemy, O’Reilly, and Pearson are all worth taking a look at if you want a self-driven approach.
There are also a lot of open source git repos that provide varying levels of information and practice exercises for the CKA.
Useful Git Repos
The CNCF maintains a curriculum repo that contains the open source curriculum for each Kubernetes Certification Course. This is an important resource to ensure that you are aware of any changes to the curriculum.
If you are looking for some good practice exercises to run through on your own then you might find Benjamin Muschko’s cka-crash-course repo useful. He teaches a companion class on a few platforms that you should consider if you’d like a guided learning experience.
In addition to the above repos you can find many more useful links and suggestions for CKA preparation in repos like Kristof Kowalski’s awesome-cka, Walid Shaari’s Kubernetes-Certified-Administrator and, of course, via a simple Google search.
Practice
Environment
For some of the CKA practice it really helps to have at least 3 Linux servers or virtual machines available that you can use to set up a cluster and rebuild as necessary. You can do this via bare metal systems, cloud instances or using local VMs. This is a good tutorial on creating a standalone Kubernetes cluster with Vagrant.
If you can’t easily set up the multiple nodes you can use the following resources to practice most of the material.
Memorization
Since the exam has a time element to it, I strongly suggest using a set of digital flashcards to help you recall the commands that you need quickly. Using a tool like Anki along with a set of cards (either original or shared) you should be able to improve your command recall a lot.
An example card might look something like this:
-
Question
- Create a deployment with the image nginx:1.7.8, called nginx, having 2 replicas, and defining port 80 as the port that this container exposes (don’t create a service for this deployment)
-
Answer
kubectl create deployment nginx --image=nginx:1.7.8 --replicas=2 --port=80
Test Exam
Killer.sh is an excellent and affordable pre-test. It’s timed, feels very close to the exam, and allows you to run through the simulated test up to two times. You get access to your score and the exercise answers after each run is finished so that you can review your work and learn from your mistakes. This test has more questions that are generally harder than the ones on the exam. If you can get really comfortable with this test, you should have no problem at all with the CKA.
Tips & Tricks
Shell
To set up your terminal at the start of the exam, consider memorizing these commands (or similar commands for your preferred shell and editor). You should practice using these commands, as they can significantly increase the speed with which you can complete the exam. Note that some, but not all of these, can be found in the Kubernetes documentation which you can reference during the exam.
kubectl completion bash >> ~/.bashrc
alias k='kubectl'
echo 'complete -F __start_kubectl k' >> ~/.bashrc
# This next command provides a helpful shortcut to generate YAML during the test.
# e.g. kubectl create namespace myns $dr > ./myns.yaml
export dr='--dry-run=client -o yaml' >> ~/.bashrc
source ~/.bashrc
echo 'set expandtab' >> ~/.vimrc
echo 'set tabstop=2' >> ~/.vimrc
echo 'set softtabstop=2' >> ~/.vimrc
echo 'set shiftwidth=2' >> ~/.vimrc
Another shell speed trick to be aware of is that you can also use shell ranges with kubectl
commands that act on multiple objects at once. Using kubectl label pod nginx{1..3} app=nginx
is the same thing as kubectl label pod nginx1 nginx2 nginx3 app=nginx
.
Chrome Browser
I strongly suggest changing the default Chrome Omnibox search site to the Kubernetes documentation for the duration of the test. This makes it very easy to search the documentation and helps ensure that you don’t accidentally navigate to a forbidden site like Google.
For peace of mind, you might consider using a second clean copy of Google Chrome, like the Chrome Beta release. This simply helps ensure that you don’t have any extensions or other things that might cause you problems on exam day. Either way though, you should disable all extensions EXCEPT for any extension that the learning provider requires you to install.
Launching the exam and Kubernetes documentation site in Incognito windows is also a good idea, as it will ensure that cookies don’t cause any issues. However, this does mean that you will need to login to exam site before starting the test.
And finally, if you have a home button you can consider setting it to the Kubernetes documentation site.
Video Camera
It is important that you make sure that you can very easily scan your whole desk and room with your webcam. The proctor will require you to do this and a short power or data cables can make this difficult if not impossible.
Software
During the test, you MAY NOT git clone
, wget
, or curl
anything that is not in the Kubernetes Github organization. Among other things, this means that you CAN NOT pull down any dotfile repos.
However, you MAY install things from the Linux distro’s pre-installed repos via apt-get
and snap
, BUT you are on your own if something breaks as a result. So it is best to avoid this, since it is not actually necessary.
Test Day Preparation
On the day of the test, you should make sure that your environment is clean and clutter free. It is also important to ensure that you have an interruption free environment. I would strongly recommend putting a Do Not Disturb sign on your door (and maybe even locking it), ensuring that family, friends & pets are occupied, exiting all other applications (especially messaging apps), disabling notifications on your devices, and silencing alarms, timers, phones, etc.
Exam Time
Preparation
On exam day, make sure that you have your primary ID with you. You will need to show this to the proctor to confirm who you are.
Before you start the exam, open up a browser window and navigate to the Linux Foundation Training Dashboard at https://trainingportal.linuxfoundation.org/learn/dashboard
. Once you are logged in there, you should double check a few things. First you should verify your name and ensure that it matches what is on your primary ID. Secondly, you should check your system requirements and make sure that everything is good with you system. And finally, you should read the important instructions, just to make sure that everything is fresh in your memory.
Start the Exam
The exam MUST be started within 15 minutes of the scheduled start time (+/-). As soon as you start the exam you should take a few minutes to quickly set up shell completion, your editor, and a few aliases.
After the Exam
When you have finished the exam, the first thing you should do is relax. You’re done! You can go ahead and change your browser search engine & home button back to the default, if you changed them, and then you simply need to wait 24-72 hours for the results, which you will find on the Linux Foundation Training Dashboard at https://trainingportal.linuxfoundation.org/learn/dashboard
.
Conclusion
Good Luck!!
Hopefully these tips that we assembled from our own experiences will help you ace the exam on your first try and give you a solid start to your growth as a Kubernetes administrator.