Kubernetes is one of the hottest new technologies today and its rapidly growing ecosystem (or platform, if you will), might be hard to get around. It's even harder to verify that you have the necessary skills.
So, you know what Kubernetes is, you're interested in it, but you don't know how to get started? Look no further.
I took the CKA exam last month and passed on the first attempt with 92%! Let me tell you how.
First, I'd like to emphasize that the exam is not very difficult, provided you practice thoroughly. However, it's intense, as it requires 3 hours of deep concentration.
Types of exams
The two types of Kubernetes exams by the Cloud Native Computing Foundation are:
Their relation can be roughly concluded as: CKAD is a subset of CKA. CKAD helps you verify that you know how to interact with Kubernetes as an application developer. On top of that, CKA goes more in depth into the inner workings and mechanisms of Kubernetes. CKAs can also manage a Kubernetes cluster's lifecycle.
The exams have an official curriculum to summarize the required topics and their weight:
The exam format is the same, the difference lies in the required topics and the given time. 2 hours for CKAD and 3 for CKA.
Please be aware that the exam is always based on the latest version of Kubernetes. However, it's a few weeks behind the official release cycle (when I took the exam, 1.15 was out for a month, and the exam was still based on 1.14). Now 1.16 has been out for a few days, so the curriculum will likely be updated in the coming weeks.
Both exams are solely practical. For each question, you have a task to complete, or a problem to fix. You can also use the official Kubernetes documentation, or any part of the kubernetes.io site (including subdomains, such as discuss.kubernetes.io). Plus Kubernetes' GitHub page.
Before the exam, I've been working with a Kubernetes cluster in production for half a year, so the whole world of containers and their orchestration wasn't really new for me. I knew the basics of Docker and Kubernetes, however I lacked the knowledge and confidence to interact with them naturally.
If you haven't experimented with containers, definitely take time to understand them.
- Getting started with Docker: Docker Mastery: The Complete Toolset From a Docker Captain
- Getting started with Kubernetes: Kubernetes for the Absolute Beginners - Hands-on
I didn't take these, because I was familiar with the basics, but a friend of mine did, and he was content with the quality of these courses.
Preparation for the exam
I started the preparation on the 8th of June and took the exam on the 3rd of August. I used Mumshad Mannambeth's thorough and practical course.
He made courses for both the CKAD and CKA exam:
- Kubernetes Certified Application Developer (CKAD) with Tests
- Certified Kubernetes Administrator (CKA) with Practice Tests
What's great about them is that they include online practice tests, where you're working on a live Kubernetes cluster, and the system checks your work to give instant feedback. This alignes greatly with the practical nature of the exam. Furthermore, it also includes sample exams, which resemble the real exam quite well.
As I was aiming for the CKA, I took the latter. I studied only on the weekends, except for the last week before the exam. On this week I took a vacation from work to intensely bring myself up to speed, so I studied 8+ hours for five days.
So, give yourself at least 4-6 weeks to prepare and use only the official documentation during practicing. Make yourself familiar with the required tools, such as openssl, cfssl, systemd, etcdctl, systemctl, journalctl, grep, wc and do Kubernetes the hard way. Then do it again. And again.
Here's a TLDR of what I did:
- Went through the previosly mentioned CKA course, and did all the practice tests.
- Installed Kubernetes the hard way.
- Went through the not so trivial practice tests from earlier and revised the topics which I wasn't confident in.
- Did the sample exams in the course.
- Kubernetes the hard way, again.
I also recommend you to read blogposts for the topics you encounter.
- 3 hours.
- No theory, only 24 practical questions.
- All on the command line.
- 74% required to pass.
- You take the exam at home, on your computer. Your desk and your room must be clear from distractions.
- You can have 2 browser tabs open, the exam and the official documentation (or any other aforementioned website).
- You can use an online notepad to make notes during the exam.
Tips for the exam
- Learn to create objects imperatively. You won't have time to use declarative yaml files. (e.g. kubectl run, kubectl expose, etc.)
- Get really, really comfortable with kubectl.
- Use kubectl explain if you're stuck. There's also a kubectl cheat sheet in the official documentation.
- Get familiar with vim or nano.
- Write down how many questions you completed and their weight, to know where you stand.
- Leave time for revising your previous answers: I completed most of the questions in the first 2 hours, and used the half of the remaining hour to revise all my previous answers (thank God I did, I corrected a few of them). Then, I used the remaining 30 minutes for the hardest question.
Finally, keep in mind that you have one free re-take if you didn't clear the exam on your first attempt. I hope you won’t need it but knowing this will definitely help you to calm down during the exam.
If you have any questions feel free to contact me! And here's my certificate: 🙂
Useful links and study materials
Cheers Marci for proofreading. 🍻