Until recently there was no official accreditation that engineers could receive for becoming competent with the Kubernetes platform. The Cloud Native Computing Foundation (CNCF) recently established a certification program to help develop the Kubernetes ecosystem and it is now recognised as an essential accreditation to obtain Kubernetes engineers.
My name is Garreth Davies and I am a cloud engineer here at Mobilise. I recently passed the Certified Kubernetes Administrator program and would like to share my experience with you.
If you haven’t already, it would be best to start with the Kubernetes 101 blog to get a general understanding of Kubernetes before proceeding.
What is the exam like?
Let me start by saying that I am bound to the Certification and Confidentiality Agreement that every participant must agree to which prohibits the sharing of confidential exam material such as questions etc. To that end I will try and provide as much useful information as possible…
First off, this is a practical exam- not your usual multiple-choice exam that you might be accustomed to with the likes of AWS for example. It is an online exam which is closely monitored by a moderator that requires you to solve a multitude of problems. All the exam is done from a command line (currently running version 1.10.2 of kubectl) where you have 3 hours to complete a tailored set of questions. The exam covers quite a broad range of material, focusing particularly on core concepts/ The fact that 10% of the exam is based on troubleshooting means you really have to have some experience in supporting a Kubernetes platform and dealing with common problems that crop up.
The exam costs $300 to take and includes a free resit – you can however opt to include the training material (Kubernetes Fundamentals) provided by the Linux Foundation (regular cost $299) for a combined total of $499/ This is the option I took and I found the labs provided by the course very useful- more about that later. The exam lets you open up one tab in your browser for the Kubernetes.io page which is invaluable during the course as a reference. There is also a notepad tool which you can use to make notes on throughout the exam.
What is your experience with Kubernetes?
Up until deciding to take the exam I had relatively limited experience with Kubernetes. I had experience with building Clusters using KOPS (A tool for building Kubernetes clusters on AWS) but no real experience with setting up Kubernetes from scratch or using tools like kubeadm to establish a cluster. I had a basic grasp on the kubectl tool and could get by with day to day support and maintenance of a multitude of environments. For this reason, I knew that I would have to spend a considerable amount of time training before taking the exam to both increase my general understanding of core Kubernetes concepts and kubectl operations.
How did you train for the exam?
As previously mentioned I took the exam & training package offered by the Linux Foundation for $499 and spent 4-5 weeks preparing. I found the training course to be quite dull- the format was usually a small 1-2 minute video at the start of the module, then slides of text before finally doing some practical labs. In my opinion, the actual course material wasn’t too great but the labs I found very useful. To carry out the labs in this course I setup a couple of Ubuntu machines in AWS.
I went through the course 2-3 times over my training period and spent a lot of time going over the practial labs (I must have been through them 10+ times). Towards the end of the training I used the labs in conjunction with the Kubernetes.io documentation, which I found I very unusual experience! For example, if a lab asked you to spin up a pod, rather than look at the instructions in the lab, I would use the Kubernetes documentation to try and achieve the same thing. This got me in the habit of using the material I would have available in the exam, training me to know which pages of the documentation were useful, how much material was available and where to find certain bits of information on the site.
Finally, I used YouTube for videos on high level concepts of Kubernetes, I found these useful 5-minute summary videos better than reading through the course material. The course material doesn’t include everything that could potentially arise in the exam- therefore I needed to do extra reading through the Kubernetes documentation to make sure all concepts were covered.
Do you have any tips for the exam?
- Make sure your exam setup is ready- this may sound obvious but ensure your internet connection is stable (you don’t want the stress of connectivity issues during an exam- you won’t get the time back), ensure you won’t be disturbed and ensure you’ve been through the exam pre-requisites.
- Become very familiar with the Kubernetes documentation, you do not have time in the exam to be searching for material- you need to know which page the required yaml or instructions are on and even where on the page.
- Practise, practise, practise – this is a practical exam, the more experience you have with kubectl the easier this is going to be.
- Know your linux- specifically how the systemd service runs and operates, how to troubleshoot problems and basic commands. #kubernetes
- Know your way around the kubectl command, the help outputs for each option are invaluable.
- Answer exactly what the questions ask you, if you’re asked to create a pod- create a pod, not a deployment.
- Use the notepad tool to copy and paste material, there are often issues copying and pasting into/from the terminal. If you get stuck note the question number down here and move on.
- At the start of every question ensure you are using the correct cluster by using the command provided to set the context.
- Try not to get too worked up about the exam- you have a free resit!
Kubernetes the hard way https://github.com/kelseyhightower/kubernetes-the-hard-way
CKA Exam Tips https://www.cncf.io/certification/tips
Kubernetes Documentation https://kubernetes.io/docs/home/
Kubernetes Certification Program https://www.cncf.io/certification/cka/