Certified Kubernetes Administrator (CKA) Exam Experience
Since I started learning Kubernetes the Certified Kubernetes Administrator (CKA) exam has been a target for me, but it’s always seemed to be out of reach. The whole Kubernetes ecosystem is a vast and nebulous beast, with new projects rising to the fore all the time, and old projects fading from favour. The size and rapid development that make the field so interesting and powerful, are the same properties that make the learning curve so steep, and the entry bar so high.
In the past two years I’ve spent time labbing and blogging about PKS and Kubernetes, and I’ve spoken at VMUGs. I’ve attended sessions at VMworld, VMUGs, internal and public webinars, and I’ve spent countless hours working out how to run some of my home services on Kubernetes. Nothing beats getting your hands dirty to force yourself to learn, and to then attempt to communicate that with clarity to different audiences forces you to really understand what you’re talking about.
However, after doing all of this I was not confident to take this exam! I put it off for months and months, and in the end I was emailed by the exam provider to say that I needed to take the exam before my voucher expired in May. Since the CNCF gives a free retake, I decided to take the exam simply to get a gauge on how close or far away from the required level I was, and that would give me another 12 months to do the real thing.
The Certified Kubernetes Administrator (CKA) exam has a reputation for being a difficult exam to pass, but I think that it was a fair exam. It was not as difficult as I had anticipated. It’s a three hour, 24 question, lab based exam that drops you straight into the command line with multiple Kubernetes clusters to perform various administrative tasks on. It is only available as a remote-proctored exam, and requires a score of 74% to pass. The exam is automatically scored and as such results based - i.e. it is looking for specific conditions in the exam environment, be that a pod or object with a specific name, or the contents of a file.
- 24 questions in 180 minutes gives you roughly 7m30s per question. Some questions are simple and will only require a minute or two, and others are much more in depth and will take a bit longer. When you read the question, make note of the weighting - if you find yourself taking 10 minutes on a question that has a 1% weight, then you might want to skip that and come back at the end if you have time. The questions I encountered had between 1% and 11% weight. I managed to complete all of the questions with about 15 minutes to spare, which allowed me to loop back on some of the questions I was less sure of. When you’re going through the questions and theres one you’re struggling with (and if it’s not worth a decent percent weighting) make a note in the exam interface’s note pad and come back to it.
- All of the questions that use the same environment are bunched together, and some of them build on the previous questions. Make sure you are in the correct context for the question you are answering, and make sure if you skip a question it’s not going to affect the next few in that environment!
- You can access the Kubernetes documentation while running the exam. This is critical for me - the examples that are on the documentation site save me a huge amount of time. This doesn’t compensate for knowledge of the objects and methods required to perform a task, but it does mean that if you know what you’re looking for you can reference it very quickly.
- There’s limited copy and paste allowed in the exam environment - that said I was able to copy configuration from the documentation into the exam notepad, edit the configuration to the question’s requirements, and then paste into the console.
- Because the results are automatically scored, you need to follow the instructions precisely. If the question asks you for a
podnamed Bob, and you create a
statefulsetnamed Bob, you won’t get the points you deserve! So, read the question carefully!
- Don’t lean forward. This may sound silly, but in a remote proctored exam where the only view of you is via a webcam, if you lean forward to re-read a question you’re struggling with (which I do), it can look like you’re reading something on the desk. If you do that, then the proctor will have to ask you to move your webcam about to check you’re not doing that - which will break your concentration!
- On my MacBook I got used to a whole bunch of aliases that are great timesaving exercises - e.g. I can use
kg podsinstead of
kubectl get pods- where you’re typing
kubectl100 times a day, it saves you quite a few keystrokes. However, you will not have this configured in the exam - so make sure you learn the full commands. I found myself using the aliases automatically and then having to re-write the commands in full. So, use with caution if you’re prepping for the exam.
I don’t want to replicate other peoples’ lists of study resources - there are plenty out there. In reality, everything that you need to pass the exam is in the official documentation, all of the other training courses I’ve looked at just provided a structured approach to going through the documentation.
- Know the Documentation
- Study the Concepts page, if you understand the concepts then the actual administration tasks become much easier, but just take a look at the exam specifications - 19% of your score is “Core Concepts”. In an exam where you need 74% to pass, 19% is a significant chunk of that!
- Study the Tasks pages, I would go through that a couple of times at least, and don’t neglect the Monitoring, Logging and Debugging!
- Read the Exam Material - should be obvious, but
- Build Kubernetes clusters
- Do Kubernetes the Hard Way, then do it again slowly, then do it again in vSphere or AWS or Azure, just to make sure you’re not copy/pasting blindly. Make sure you understand the sequence of events that goes into building a cluster.
- Build a single-master, single worker cluster using
- Build a multi-master, multi worker cluster using
- Make sure you know how to add and remove nodes, to label and taint nodes and to safely move workloads from nodes
- Learn how to troubleshoot your cluster!
- Build Kubernetes workloads
- You will need to know how to create
Deployments, how to use the different Controllers - I refer back to my point about the core concepts. The best way to learn how to do this is to actually do it.
- Troubleshoot your workloads - there’s nothing like breaking it and learning to fix it, learn how to examine events and logs and to fix broken workloads
- Learn how to use
kubectlfilter and sort, to output YAML from existing or new objects using
--dry-run, and to use
jsonpathto select output properties
- You will need to know how to create
- Other things to learn
- You need a basic grasp on systemd and how units are configured
- Basic command line text editing skills - I prefer
- Basic understanding of SSL certificates,
- Learn how to use
etcdctlto manage Etcd
Once you’ve completed the exam, you’ll probably feel pretty wrung out - it’s taxing concentrating so hard for that long. I kept a rough tally of the percentage of each question with a guess as to how complete the answer was, and on reflection was cautiously optomisitic that maybe I had passed. The exam is scored over the next 24 hours, and results should be emailed to you within 36 hours - in reality it was slightly less than 36 hours for mine to come through, and I was thrilled to have passed!
The CKA exam is nothing to be feared. It’s a fair exam that can be passed based on the documentation, and you get that documentation available to you. Study, practice, and give it a go!