On 17.09.2019 and in less than 36 hours of the exam, I got an email that I passed from the first try and I'm now a Certified Kubernetes Administrator (CKA) 🎉🎉
It's not my first performance-based exam, I had before RHCSA and RHCE. But this one wasn't an easy exam at all! Even you work with K8s every day, it still needs a good amount of preparation. The exam is 3 hours long, however, you need strong time management skills. You cannot afford to waste any time during the exam, because you will need every single minute of the exam time.
Resources
With K8s production hands-on, and my main resources for exam preparation/revision were:- Certified Kubernetes Administrator (CKA) with Practice Tests - Mumshad Mannambeth - Udemy. (I think it's the best course for CKA. I got part of it just 2 days before the exam but found a lot of useful info there)
- Cloud Native Certified Kubernetes Administrator (CKA) - Chad Crowell - Linux Academy. (I think even the course materials are good to understand K8s, you cannot pass the exam just using that course)
- Kubernet CKA Study Guide (not so up to date, and I laugh every time I read its domain name, but so helpful)
Quick tips
You will find many posts on the internet about CKA exam, those are my 2 cents which could help anyone wants to take the exam. Here are some tips, and always remember, your mileage may vary! (so I always recommend to review more people experiences)
1. Official exam resources
Read the official exam resources carefully, like "Exam Tips", "Candidate Handbook", and "CKA Curriculum". They have a lot of useful info about the exam and especially the exam environment and what you can and cannot do at the exam. (e.g. you are allowed to open exam tab and 1 more tab has access to K8s docs) And the most important thing, which will help you a lot during the exam, you need to know your way in the official documentation. You should be able to get any info from there in no time!
2. Ignore tips before 2018
There are many posts about the CKA exam. And after checking some articles, I was a bit confused about what I read, because I found some conflicting information. Later I realized that posts older than 2018 are for the old exam.
For example, I found some tips advice to use "tmux" (a terminal multiplexer) during the exam which could help to save time. However based on my experience how the exam is structured you don't need "tmux" at all. You will find many of those tips, and you are safe to ignore any before 2018 (and better to stick with what's written in 2019).
3. Time management is the key!
Time management plays a key role to pass this exam! I believe that the exam is not so hard, but you can lose many questions just because of the time. So simply during preparation, you need to settle your mind and decide your strategy in the exam.
For example, what you will do when you don't know the answer? What if you know it but don't really remember the details? What is the avg time you will give for each question? What is the max? And so on.
4. Track questions using exam notepad
Part of time management is tracking questions. You can use the embedded notepad that comes with exam environment to write whatever you want. (note: you cannot use any external notepad during the exam, only the embedded one is allowed)
During the exam use the notepad to write what you did in each question, so it's easy to do a final revision when you are done.
Q1: Done (4%) Q2: not yet (4%) Q3: done, but needs a review (5%)Write down question number, status, and weight. So if you have limited time for the revision you can do that based on status and weight.
5. Get familiar with web terminal
All actions of the exam are done in a terminal running in the browser! It's totally a different environment from normal terminals that every Linux user uses everyday.
Normal copy-paste doesn't work, and it uses the old way by using ctrl+insert to copy, and shft+insert to paste. Some essinals actions like those could affect your performance during the exam. (check the CKA Candidate Handbook mentioned above for more details).
To overcome that read about web terminal shortcuts and limitations. Also try to do all of your preparation in cka-practice-environment. Also Katacoda Kubernetes Playground is a good place to do so too.
6. Disable "ctrl+w" shortcut!
As a Linux user, I'm sure I would have hard time in the exam if I didn't disable the ctrl+w keyboard shortcut! It's used almost everywhere! Vim, Firefox, most of Linux CLI and GUI apps!
Since the exam only works in Chrome/Chromium, the shortcut ctrl+w actually closes the current tab! So if you didn't disable the shortcut, probably you will -unintentionally- close the exam tab while you are doing it!
In Linux with Gnome desktop you can disable it from Settings => Devices => Keyboard, then add a new shortcut for ctrl+w with value exit 0. And you can toggle it when you need it (ideally before you start the exam, or even better, few days before the exam to use to it).
7. Enable "k" shortcut with autocomplete
You will use kubectl thousand times in the exam. And as mentioned, every single second of the exam is precious. You will find some tips suggest to make something like this alias k='kubectl' to have a "k" shortcut in the terminal. However, this doesn't enable autocomplete! So if you wrote "k get" then pressed "tab", it will not get the available options as you get it with "kubectl get".
A better way to do that in less than 30 seconds without trying to remember any bash complete options!
At the beginning of the exam do:
kubectl completion bash > /etc/bash_completion.d/kubectl.shThen open that file, and go directly to the end of it and change this:
if [[ $(type -t compopt) = "builtin" ]]; then complete -o default -F __start_kubectl kubectl else complete -o default -o nospace -F __start_kubectl kubectl fiTo be like this:
alias k='kubectl' if [[ $(type -t compopt) = "builtin" ]]; then complete -o default -F __start_kubectl kubectl k else complete -o default -o nospace -F __start_kubectl kubectl k fiThen source the file:
. /etc/bash_completion.d/kubectl.shSimply you add 1 line, and 2 keyboard hits (you can do that with vim in a blink!) ... and tada, you have the "k" shortcut works with autocomplete in the exam terminal in no time.
It will help you a lot to avoid wasting time during the exam.
8. Avoid writing as much as possible
Avoid any writing! Generate yaml files using -o yaml --dry-run, copy from official docs, replace from what you created before ... but don't write a lot of text otherwise you will lose a lot of time.
Also, create a file per question e.g. q1.yaml to make it easier to copy-paste. It also helps to revise at the end of the exam.
9. You don't need to do Kubernetes The Hard Way!
Well, this is a bit unpopular opinion, but I found an exaggeration about doing "Kubernetes The Hard Way"! I found some people told they did it 7 times!
Yeah, it's a pretty good resource to understand K8s from inside, nevertheless it's not for the exam, and you can cover that understanding about K8s from other resources which could work better for you because simply "people are different" (and again, this to have a good understanding about K8s, but that deep understanding is not required to be a CKA).
10. Misc
- Get a bigger screen! Since the exam is done in the browser, the actual terminal is 70% of your screen size at max (also the embedded note takes some space when you use it). So it's better to avoid taking the exam using small laptop screen and get external one which will make you more comfortable and productive.
- Charge your devices! If you use wireless devices like a mouse or a keyboard, make sure to charge them to avoid any surprises in the exam.
- Keep time for a revision! Sometimes it's better to lose a question and use the time to revision if you don't have enough time.
- Get familiar Vim and systemd. Vim will help you to be fast, and systemd is part of the CKA curriculum.
- Make sure of the cluster context. A classic tip, and it's written at the top of each question because the exam has 6 clusters and you could be lost and do the question requirements in the wrong cluster.
- Make exactly as question tells. For example, if a question asked for a "pod", create a resource with kind "pod", not a "deployment" which eventually will create a pod.
- Calm down :-) I hadn't any tech exams for some time, so I was a bit nervous at the beginning of the preparation, but in the end, I realized this wouldn't help and there is already a free retake if anything unexpected happened in the first try.
For me, it was hard but a great experience and totally worth it :-)