Rob Finch
6 min readSep 2, 2021

--

Notes on passing CKA + CKAD

Recently passed CKA and CKAD in the low-mid 90s range. Wanted to give back some info since so many others have provided helpful resources. I went from essentially zero container/k8s knowledge (but strong Linux background) to CKA in about 3 months. 2 of those were inconsistent, then 1 month of serious multi-hour daily. After passing CKA I then took the CKAD shortly after, once it became apparent it would be pretty easy after CKA. My path:

CKA:
1. Kubernetes for absolute beginners
2. Minikube and playing around
3. Certified Kubernetes Adminstrator. This was the bulk of my experience. In this time I also built a local cluster with control plane & 2 nodes. Each day, manually kept notes in a ‘learned_today’ file.
4. Finished course, redid a bunch of the course exams and the lightning labs / final exam several times.
5. Did various scenarios myself, whatever I could think of or find online.
6. Took the killer.sh free simulators. It was really helpful but bear in mind there is some fiddly format output questions that they mark wrong even though you may get them right. Also, since you get access for like 36h per try (you get 2x attempts) — retry again without looking up any anwers. Do this several times. Only after you have exhausted your retries look up their answers. I suggest resetting the exam entirely a few times and doing all the questions again.

CKAD:

Same as CKA, there is very little unique to CKAD aside from jobs/cronjobs. I basically did random exams on Mumshad’s CKAD udemy course, lightning labs and exams, saw it was easy so just booked it. Only did killer.sh once.

Which to take first?

There is a good 80% plus overlap in required knowledge between the tests. If you have a strong Linux background, take CKA first. There is much more SA stuff with cluster upgrades. Otherwise, take CKAD first as it is indeed easier. However you still really need to know everything in CKA minus the cluster troubleshooting / upgrade stuff.

General tips;

Many people will have large lists of aliases. I think most are unnecessary, but a few are very helpful. You can get some of them from the cheat sheet documentation but I memorized them (through repetition in udemy labs). Most important — find the ones that work for you, that you will remember how to regurgitate and will actually use repeatedly. It’s not worth creating an alias for something you use twice.

source <(kubectl completion bash)
alias k=kubectl
alias kn=’kubectl config set-context — current — namespace’
complete -F __start_kubectl k
export dry=’ — dry-run=client -o yaml’
set -o ignoreeof (optional; prevents control+d from logging out of control terminal. can tab complete after set -o)

I also suggest editing /etc/vim/vimrc & at bottom add:

set ts=2 sw=2 sts=2 ai

When working with etcdctl, you can save some time with:

cd /etc/kubernetes/pki/etcd
ETCDCTL_API=3 etcdctl --cacert=ca.crt --key=server.key --cert=server.crt

Since the certs will be in the cwd you don’t have to type in the full path 3 times. I just memorized those flags and the ECTDCTL_API=3

For CKA definitely go through upgrading cluster (controlplane + nodes) several times. Install your own in VMs with old versions and upgrade them.

Get proficient with the documentation and searching. Aside from the few imperative commands, you’re going to be way better off copy/pasting the examples from docs and modifying as needed. So you want to know where they are and how to quickly find them (ie control+f & search for kind: whatever in page). Some people bookmark important pages, I didn’t find that necessary.

Do memorize the imperative commands, they are basically essential for time saving. They are also super useful to just create a template of things, like k run foobar --image=foo $dry > out.yaml, then add in the volumes, secrets, cm etc. Same goes for k create X (deployment, replicaset, statefulset, whatever.)

Practice, practice, practice. Create your own scenarios. Create your own pv/pvc, multi-container, emptyDir data sharing in multi-container pods. Really know the different service types & difference between ports. Port some apps you wrote into your own cluster. The more you use the commands the more they will be there when you need them.

Don’t cheat on your labs! Basically any cheating you do just cheats your chances of actually completing the real test. So if you’re not getting something, go back to it later and figure it out. Fight the temptation to just “get this lab done”.

Workflow tips;

The exam website is obnoxious. I used Arch Linux for desktop. Here is what I would suggest:

  • Install better control+w in chrome (follow the extention instructions), so you don’t accidentally close your exam tab.
  • Learn to switch between exam tab & k8s doc with control+tab (or alt+num if you don’t have that remapped to something more useful). I have heard conflicting reports if you are allowed two browser instances (ie can alt+tab) or 2 tabs. I went the safe route & followed their official doc.
  • Add the bash alias set -o ignoreeof to avoid logging out with control+d (if that’s something you’re likely to do like me)
  • When writing yaml for a question, preface that file with number of question. For example, 5-webapp.yaml
  • For long running operations, background and work on other stuff. Like recreate pod: k get pod foobar -o yaml > foobar.yaml && k delete pod foobar &, then vi foobar.yaml while that is deleting (takes a while sometimes)

Exam day tips;

Not going to go over the normal ‘get sleep, hydrate’ tips. However:

  • Expect to spend 15-30 minutes upfront while proctor examines room, working area, ID etc. Some are more rigid than others.
  • Despite having nothing on desk but speakers, they made me remove the speakers. Only laptop, monitor, kb+mouse allowed. Not even a desk lamp!
  • Covered all bookshelves, media center etc (I used sheets, it made my office look like a scene from Dexter). Some people reported proctor problems with visible electronics or “clutter” nearby.
  • Expect to sweep room and under desk with webcam, possibly under keyboard and laptop.
  • Under no circumstances have anyone else near you, interrupt you, talk to you. Close door if possible.
  • Important; make sure your webcam works and can clearly read your id! I wasted a lot of time on this and test was almost cancelled. If your webcam can’t read your ID check to see if you can manually adjust it by twisting the ring around lense if it’s external. Check this way ahead of time! I used https://webcammictest.com/ to test mine.

The are very particular. They warn you if you speak out loud, or even rub your face and accidentally cover your mouth for a second. Some proctors are more strict than others.

Exam tips;

  • If you get stuck, flag the question and focus on the biggest scoring items. Time was pretty tight. In CKAD I used the notepad more with a brief note like 4 - slow pod delete revisit later
  • Read the whole question! Possibly a few times. I tend to get dinged for not doing one minor part of the question, sigh.
  • Make sure you’re in the right context. I suggest to get in the habit of copy/pasting the context every question (killer.sh helpful for this flow)
  • Make sure you’re in the right namespace! kn default (or whatever) if unsure. Get in the habit of making it the 2nd thing you do after changing context.
  • They don’t give you a countdown clock (that I saw, just a bar that runs down) You’ll have to ask the proctor for how much time is left.

Additional tips and resources;

These are some links that helped me along the way.

https://rudimartinsen.com/cka-resources/
https://github.com/dgkanatsios/CKAD-exercises

The udemy cka/ckad courses were the biggest help for me personally, though I didn’t try others.

One final tip, the Linux foundation certs are often deeply discounted during the US holiday season.

Good luck everyone!

--

--