September 8, 2023 ・ Kubernetes
How to become a Certified Kubernetes Administrator
Certified Kubernetes Administrator
Kubernetes has been a major trend in the world for the past 5 years. There are several official certifications available, the basic level is Certified Kubernetes Administrator. Lets talk a bit about how to obtain the CKA badge.
I started with a minimal amount of practice and a general understanding of how Kubernetes works. I went through all the stages, from searching for materials, taking a specialized course, directly practicing before the exam, and ultimately passing the exam. I hope that my experience will be useful to those who are planning to take this exam.
CKA, in general, is an exam developed by the Linux Foundation and the Cloud Native Computing Foundation (CNCF) to verify the skills and knowledge of professionals in Kubernetes. CKA evaluates your ability to solve real-world problems using Kubernetes and related technologies.
The exam includes a series of tasks on cluster management, network configuration, workload management, etc. The specific context of the questions may change, but the general format of the exam remains constant. The duration of the exam is currently 2 hours (previously 3 hours), during which you will need to demonstrate your skills in installing, configuring, and managing Kubernetes clusters.
Passing this exam confirms that you possess the necessary skills to work with Kubernetes at a professional level.
At the very beginning, I had an understanding, and some experience working with Docker and a basic understanding of why Kubernetes is needed and its main concepts, but I didn't know how to approach it and how it all works in practice. Therefore, I decided to look for some materials for myself, as I had to deal with it in real work for one reason or another more and more often. I watched a lot of different materials and articles, but I can probably only highlight a small course from the channel TechWorld with Nana : Kubernetes Tutorial for Beginners [FULL COURSE in 4 Hours].
This course covers the basics and briefly explains why Kubernetes is needed, what are the main objects in it and how to interact with them. But there is still very little practice in it, or rather there is none at all. Therefore, I continued to look for other materials and ultimately I came to the courses from KodeKloud.
One of my friends was also preparing for the CKA exam. At that time, he randomly (or maybe not so randomly) found a platform called KodeKloud. Having received an enthusiastic review from him, that the lecturer - Mumshad Mannambeth explains the material in an absolutely clear and simple language, with easy-to-understand examples and comparisons, I also decided to give it a try.
By the time I started the course, I had already managed to solve some real tasks at work, but I felt that there was still a very large knowledge gap, and not always actions fully thought out, so I decided to start with a basic course as well:
Overall, the material is presented without unnecessary fluff, all to the point, but not too dry so that it's not tiring. Most importantly, KodeKloud has its sandbox with a k8s cluster where you need to solve lab tasks. In the lab environment interface, some hints simply guide you to solve a specific task, and in case something is completely unclear, there are recordings from the instructor where there are complete solutions to the labs.
But in reality, by the time I took this course, it seemed like it was not too relevant for me, as I didn't learn almost anything new there, but still, a sufficient number of labs, and as a result practice, helped structure my knowledge.
This course in itself seemed excellent to me, and if I had no practice working with k8s by that time, I think it would have greatly helped me understand the basics.
Almost immediately after completing the basic course, I started the main one - CKA Certification Course – Certified Kubernetes Administrator.
Overall the course is very good, there's a lot of practice, there is a community, and they keep it up-to-date and re-record/update/add lectures in line with the latest updates of Kubernetes.
In the context of specifically preparing for the CKA, the course is very good. I believe that it was thanks to this course that I was able to prepare well, as real practice and work with Kubernetes does not cover even a third of the knowledge necessary for successful exam completion.
Before the forced break in viewing the course, I managed to watch only 2 topics (but I still returned to them for knowledge refreshment), so basically it can be said that the entire course and practice before the exam took me a little less than a month.
The guys worked hard creating the course, as absolutely all the topics that I encountered in the exam were covered by this course.
Hands-on practice: KodeKloud
Okay, so I've watched the entire course, and completed all the lab tasks, what do I do next?
KodeKloud also helps a lot here, there is a separate "course" - Certified Kubernetes Administrator – Full Mock Exam Series, for practice while preparing for the real exam. It is of course implemented in the KodeKloud interface, but the tasks are very much similar to the real exam ones.
In the preparation project, there are 10 mock exams, each lasting an hour and with 20 questions. The questions are of varying difficulty, with different weights, and although the number of exams is fixed, the questions themselves are selected randomly, in a random order, all of them, like on the real exam, are exclusively practical.
After going through the course for the first time, I started taking these mocks and realized that some of the stuff I watched a few months ago had partially been forgotten, so I quickly rewatched the entire course, at 1.5x speed, in a day, but this time without practical tasks.
I returned to the mock exams and went through them about 10-14 times, just to increase my command input speed and develop some automatism. In terms of the points of these mock exams, in the first 2 attempts, I did not always score a "passing" amount, but after that - almost always, a few times 100 points.
At this stage, I was confident that I was well-prepared, so I decided to purchase access to the real CKA.
Exam cost is $395, but there are a number of ways to save money: combine the exam with CKA certification course; wait for the Black friday (up to 25% discount) or other discount event; get a promo code from your colleagues (it is provided sometimes for those who purchased the exam)
So what do you get for your money?
2 attempts to pass the exam within a year, on a date that you choose yourself.
2 attempts at a mock exam on killer.sh.
Hands-on practice: killer.sh
What is killer.sh? It's a platform for preparing for various exams, specifically a kind of sandbox that simulates real exams but is somewhat more complex. Compared to the mock exams on KodeKloud, it's significantly harder, and indeed, as I later noticed, it's genuinely tougher than the actual exam. A major advantage of killer.sh is that it mimics the actual exam environment. Under the hood, there's a virtual machine that opens in your browser, equipped with Ubuntu and with access to several k8s clusters via the terminal. One more critical feature is that there's a browser, which can be a bit painful to use because the overall environment is somewhat laggy and may freeze. Also because it's a full-fledged virtual machine in your browser, the usual hotkeys for copying, pasting, searching, etc., do not work.
Unlike the mock exams on KodeKloud, the questions on killer.sh are static, that is, they are the same, in the same order for both attempts, so there is essentially no point in purchasing separate access to their environment.
After the "exam part" is over, access to the virtual machine is provided for another 36 hours, so you can play around to your heart's content, go through what you didn't have time to do (and with a very high probability, you will not have time to answer all the questions the first time).
The mock exam has 20 questions and several "bonus ones with a star", which are much more difficult. Overall, the entire mock exam is noticeably more difficult than the Mocs on KodeKloud.
Also, at the time of my attempts, I am sure that at least one question was broken, as even after the "exam" when I already had the answers in hand, I could not figure it out.
On the first attempt, I scored a low number of points: 67 out of 125. This was partly due to the factor of limited time, which provoked me to be nervous and rushed. Another factor is that this is a special environment, which is not very friendly in terms of hotkeys, and not very responsive - a few times my terminal or browser hung up, and also my internet simply dropped out for 15 minutes during the first attempt.
There are also a couple of questions that are covered in the CKAD course, and the biggest problem for me was that killer.sh, like the real exam, does not forgive typos in answers.
As I mentioned earlier, after the end of the exam time on killer.sh, you are given access to the solutions to all tasks and an interface that shows where and how points are calculated, according to which steps, and which of them are correct or incorrect. That is, if you have deployed a deployment, attached storage to the application or created a service, but entered the name of the initContainer with a typo, then in general it will not count. It's strict in terms of task completion: if there are any inaccuracies or errors, the entire task or some part of it may not be counted, even if the general result seems to be correct. The whole process teaches precision, which is, of course, very important when working with Kubernetes in real-world scenarios.
It's indeed important to mention that during the test exam, just like the real one, the use of official documentation is allowed. This is why I've repeatedly brought up the issue of a slow browser.
After receiving the result on killer.sh, of course, I analyzed all my mistakes and what I did not have time to complete. By correcting typos, the result of the first attempt was 81 / 125 points. I understood what key steps needed to be taken as soon as I got access to the test environment, in order not to spend precious time during the exam.
Enable automatic copying in the terminal when selecting.
Decrease the scale of the terminal.
Decrease the scale in the browser (since scrolling its pages is still painful).
Whenever an object should have a specific name - use copy/paste.
In the second attempt on killer.sh, I already scored 103 points, without correcting typos.
After the second attempt, I decided that it was time to go to the real exam.
By the way, there's something to tell here.
CKA exam scheduling
When I was preparing for the exam, my friend was also doing the same, and he scheduled his exam just a day earlier than mine. At the scheduled time, he encountered a bug in the Linux Foundation interface and couldn't get into the exam.
This was related to the renaming of the main Ukrainian timezone: Europe/Kiev -> Europe/Kyiv. When scheduling an exam, in the selection of the Kyiv timezone on trainingportal, it shows Kyiv/Ukraine.
But the actual exam environment - home.psiexams.com couldn't find this timezone, as it still had Europe/Kiev, and it looked something like this:
After the time allotted for the exam had elapsed, the attempt was considered failed. The problem was not on the client side but within the examiner's infrastructure.
Support, of course, helped in solving this problem, and the attempt was returned, but there was still a bad aftertaste, and it took 3 weeks.
In my case, knowing about this problem, I simply chose a timezone, also Ukrainian, but for another city, which was not renamed, and I did not encounter this problem.
And now the exam is scheduled:
More about exam
What about the actual exam?
I planned it for the day after my second attempt at killer.sh.
Expectedly, you will be required to perform pre-flight checks: identify yourself, take a camera shot, show some ID (make sure the photos match your face), ensure that webcam and mic are working. You are not allowed to use headphones, make sure you have a mic built-in to your camera or use an external one, and you will need speakers, too.
Access to the environment is granted an hour before the scheduled time, and I would recommend everyone to enter as soon as the button becomes active, as you will need to verify yourself again, pass a workstation check, and have a personal check by the proctor.
A proctor during an exam is a person who oversees the examination process to ensure its fairness. This could be a teacher, another educational worker, or a professional, especially in the case of professional exams.
The proctor communicated with me through the built-in chat, asked me to show him all of my room through the webcam, what was on the table, what was next to the table, what was under the table, what was within arm's reach, to show my phone, put it in a visible place, show my documents again, confirm where I was, close all the doors, turn off all devices and move them away from my workspace, except for the workstation itself. Unfortunately, it was not possible to use two monitors. The proctor also asked if anyone was with me in the room. In general, all communication with the proctor and checking the place where I took the exam took about 40 minutes.
Throughout the entire exam, the webcam was turned on and the proctor was watching me, and the microphone was also turned on. During the exam, the proctor interfered once, at the moment when I brought my hands to my mouth while thinking, and asked not to do so.
So, when you are going to take the exam, you should keep in mind that you need to take care of the place where you will do it. As an option, I considered going to a coworking space in a private office for the duration of the exam, but still decided to do it at home and just cleaned up a bit so that as few objects as possible that could raise questions from the proctor were visible.
As for the exam itself, the environment is indeed very similar to the one used in killer.sh, and all my key setup points are relevant for the exam.
The only significant change is that each question has a link to the section of the documentation to which the question relates, which was a pleasant bonus and also saves time.
As for the questions themselves - actually, I was somewhat surprised by them, after two intense days in killer.sh they seemed suspiciously easy to me and I even felt some kind of catch, but there wasn't one.
I answered all the questions within the first hour, skipping 3 questions that could potentially take too much time, later I returned to them and calmly completed them. I also had enough time to review all my answers to each question and check them again where possible, this took another 40 minutes.
With 20 minutes left, I already realized that there was nothing else to do, and I decided to finish the exam.
They promised me the results within 24 hours, and that's how it was. I was confident that I had at least passed the exam. Well, not to drag it out, it turned out so )
Bottom line: The exam is actually not as difficult as many people may expect. You have two hours and this is more than enough to solve enough tasks to pass. The entire preparation process took three weeks for me.
This doesn't include basic familiarity with Kubernetes and the first course on KodeKloud. But these three weeks were quite intense, I dedicated every free minute to preparation, about 10-14 hours a day. That's a lot, yes, but I feel I was somewhat overzealous with the preparation and could have tried to take the exam a little earlier.
I especially want to highlight again that the course on KodeKloud by Mumshad Mannambeth is truly excellent, and it is completely sufficient to successfully pass the exam, and by the way, it also greatly helps in real work.