I thought I share a couple things about how I'm preparing for my CKA exam, so here it is...
- read Managing Kubernetes (available by O'Reilly), make notes, better, make ANKI notes (you'll use those later), go back and read the parts that are a little unclear again
- do at least one online CKA prep course, it'll make sure you know all the basics, if you already do and this was boring, great! I'm sure there will be the odd thing you didn't quite know yet though
- there are some good and cheap ones out there, I realise that not everyone is able to do this though :(
- use ANKI to add new notes to remember, rinse & repeat rigorously every day, good examples to add are
- kubectl commands that help you get set up
- best keywords to look for on k8s docs to find details how to do something (e.g. affinity)
- .. you get the gist ..
- use KinD to do a task a day
- do a mock exam (20-30 tasks) at least once a week*
- set up a new cluster, add and remove nodes as part of your mock exam, every time
- make sure you cover all things etcd, especially backup & restore
- have tasks that exercise every possible resource in a cluster, e.g. Pod, Deployment, DaemonSet, StatefulSet, RBAC, Volumes, Secrets, ConfigMap, Quotas, CSR, etc. etc.
- many resources also have "commands" that you may need to know how to use, e.g. how do you scale a deployment up/down, how do you get a Pod's log output, etc. most of these are part of the "daily administration" of a cluster so they need exercising as part of your prep
- use a timer when doing mock exams or the daily task/s, remember time isn't your friend, current time limit is 3 hours and trust me, that's over sooner than you'd think!
- ever wondered "what happens when I ..." or "I wonder how to do X" ? do it, see what happens, really undestand what's happening, try to fix it afterwards too - e.g. try enabling firewalld is a good one ;)
- make sure your mock environment is the same as the actual test environment, that means, for example, the same OS (Ubuntu16 at the time of writing)
- I use one of the public cloud providers to set up my test environment, but feel free to use whatever fits your budget; Digital Ocean, GCP, AWS, Linode should all have Ubuntu16 cloud images available
- make sure you're using the correct version of k8s, when I started preparing, the test asked for 1.17, by now it's already 1.18 and it'll be a moving target, so I'd suggest to always use the latest major release
- know a thing or two about iptables, docker, systemd - nothing too fancy, but you should know how to use it
* I'll share my mock exam in another post
That's all folks, now go forth and be awesome!