On the 23rd December I sat (and failed) my first attempt at the Certified Kubernetes Administrator (CKA) exam.
Having previously postponed the exam twice, I took the decision that no matter what, I was going to keep this 3rd appointment and sit the exam. If I continued to postpone it each time I would never really know what to expect, and I would risk the exam blueprint being updated to include new topics.
My plan had been that scheduling it just before Christmas, my professional commitments would have been slowly winding down ready for the festive break. On the personal side of things there wouldn’t be much going on either apart from the annual Christmas meal with my football team. That would leave plenty of free time for studying, and with no other certifications planned the CKA would get my full attention.
The reality was unfortunately nothing like my plan. The project I was assigned to at work was running behind schedule. I had been due to leave and start a new project at the end of November with another customer. Due to the delays that would have left the current project work needing someone to replace me. At the same time if I didn’t leave then my next project would also be left a person down, and the work couldn’t be postponed.
I ended up in a tug of war for a week or two between two projects (and project managers) who both wanted my time before it was escalated and my management team made the decision to keep me on my current project until the end of the year. Rather than winding down I was now the only VMware person left on the project, dealing with fast approaching deadlines and a requirement to travel 5+ hours twice a week to be onsite with my customer. My next project was already underway, and I was trying to remain involved as much as possible so that I would be up to speed when I started full time in January.
Then my personal life was thrown into disarray as my Mum was told the operation she had been waiting over a year for was going to happen at the start of December. Great news, except it meant all of the plans we had made as a family went out of the window as my parents had been due to host the whole family on Christmas and Boxing day. Instead I now needed to assume the duties of organising everything for Christmas and fulfil the hostess role. Thankfully the operation went well and apart from driving my Dad crazy while she was confined to the house she is on the long slow road to recovery. Added to this was the fact that I am in the middle of moving house, and was being put under pressure to try and get contracts exchanged before Christmas to make it legally binding. Instead of that nice natural slow down towards a holiday, my stress levels were heading through the roof.
On the weekend before the exam I started trying to cram my brain with all of my study notes, and quickly realised it wasn’t going in. No matter how hard I tried, I just couldn’t concentrate. I would sit with my Macbook connected to my lab and after a few minutes I would get distracted by something else.
When I look back now I can see I was simply exhausted and mentally just had no capacity left for studying. My brain needed time off from everything it was trying to process. I was doing the opposite trying to force it to retain all of the CKA related facts and quite rightly it was telling me ‘No’.
Therefore I took the decision to treat the exam as a training exercise and keep my promise to myself, I would take the exam rather than postponing it again. So I put away all of my study materials and instead tried to relax by going to visit my parents. The next day I would sit the exam without the pressure of trying to do everything I could to get a pass, there was no longer any point trying to study.
Instead I would simply look to get an idea of the style of questions being asked, how much time pressure would I likely be under, and what was the actual environment for the exam like. This would allow me to be far better prepared when I made my 2nd attempt at the exam.
Pre Exam Checks
On the morning of the exam I cleared my home office of any papers and electronic items. I logged in to the exam website and started my exam around 10 minutes before the scheduled time, I just wanted to get it over and done with by this time. I had booked the day off work, however due to project deadlines I was already planning to return to my customer project work once I had finished the exam. I simply had too much work still to do.
Having been connected through to the examination page an instant chat session was started with my exam monitor, explaining what would happen and asking me to share my desktop and webcam via the exam software. First problem, my webcam refused to share despite being configured within Chrome and MacOs to allow its use. 30 minutes, 3 web browsers, and the clearing of all cookies and 3rd party data later a full reboot of the macbook was requested. Thankfully the webcam sprang into life after the reboot. Not a great start to the day, however I have to thank the exam monitor for being patient enough to work through the issue rather than simply telling me no webcam=no exam and to reschedule. Now the exam monitor was able to check my ID, and confirm that the room was as required for the exam to commence etc. A short while later my exam was ready to be released and my monitor confirmed a few rules and regulations via the chat before I started the exam.
A simple process and nothing more than an extension in my Chrome browser required for me to be able to take the exam.
Obviously there is a Non Disclosure Agreement for the exam, so I can’t reveal too much about the exam itself. If you have ever undertaken a VMware VCAP Deploy exam you will be comfortable with the CKA exam style. Its very similar with questions providing all of the details you need to complete a scenario without telling you the steps you need to perform.
The questions were a mixture of setup/configuration, troubleshooting and monitoring topics. YAML files were part of some of the questions, it wasn’t completely focused on the creation/manipulation of YAML though, and it did highlight some topics that I hadn’t paid much attention to in my studying.
You are allowed one additional browser tab open throughout the exam with access to the Kubernetes.io site. This site is a gold mine of information and I lent heavily on it during the exam, a side effect of my lack of preparation. You are also allowed to access any of the subpages of the site, so can access the GitHub pages for example. I didn’t make use of these during the exam, however for my 2nd attempt I will invest some time in looking at what benefits the subpages might offer e.g. accessing example YAML files.
The exam environment contains multiple Kubernetes clusters, and each question highlights which cluster you will need to use. They also show the weighting percentage so you can tell which questions will be worth more marks.
There were some questions I just wasn’t able to answer. I knew the subject they were related to, I just didn’t know the steps I needed to perform and couldn’t locate the missing information in the documentation to get me started. The fact I come from a Windows background rather than Linux also played a part. My Linux knowledge is quite basic compared to my VMware and Windows knowledge. In one of those environments I would have gone through a logical process to eliminate different possibilities and probably stumbled on an answer. In a Linux environment I was only make it through a few steps before I had exhausted my knowledge, and didn’t know what my next step should be.
My approach to the exam on this first attempt was simply to start at question 1 and work my way through, skipping any questions I couldn’t immediately attempt to answer. My focus was to get experience of as many questions as possible and identify what areas were my strengths and weaknesses. I wasn’t looking at how to score the highest marks so didn’t really pay much attention to the weightings at first.
I definitely struggled more on the higher percentage questions though, they required deeper knowledge or focused on topics which required you to have background knowledge rather than being able to simply look up a command or YAML file in the documentation. When I reached the end of the questions on my first pass through and went back I did notice most of the questions I had skipped had higher weightings attached to them.
For my 2nd attempt I haven’t decided if I will focus on the questions that provide the higher marks first and then circle back to do the lower weighting questions. Normally when I sit a VCAP exam I just start at the beginning, answer as many questions as possible and then circle back with any time remaining at the end to answer questions I might have skipped. With the high pass mark for the CKA exam, it does feel like attacking the higher weighted questions first might be a good tactic.
Time pressure was something I was worried about before the exam. With 24 questions to answer, and my lack of familiarity with Linux I was worried about whether I would run out of time before answering all of the questions. Whilst I didn’t fully answer all of the questions in my exam before the time expired, I do think if I had been more familiar with the key topics of the exam blueprint I would have been able to answer most if not all of the questions within the time limit.
The questions aren’t written in a long winded way where you have to spend 3 minutes reading and then re-reading the question before you understand what you are being asked to do. They are very clear and succinct, which was a nice surprise. They clearly highlight the key factors or pieces of information you need so you are able to immediately start implementing your answer, or lookup extra information in the documentation. I definitely spent too much time in the Kubernetes documentation during my exam, there are massive time savings to be made with more hands on practice before my next attempt.
Before the exam I had been practising using aliases for kubectl commands, and vim editor tips like find and replace. When I got into the exam some of this simply went out the window. I completely forgot about using aliases, and looking back I typed the same kubectl command in across numerous questions. I also got confused between kubectl run and kubectl create when using the –dry-run flag, using the wrong command for my situation. This wasted time as I had to correct the format of the command and rerun it, so I could have saved some time there as well.
The editor commands I was a bit better with. I did remember to use the replace command to update my YAML files, although I didn’t always type the command correctly first time. A bit more practice and there are more time savings to be had for my next attempt as well.
All of those little time savings could add up to allow me enough time to answer or review my answer to an extra question in my next attempt.
The exam itself felt fair in terms of complexity and difficulty, I would put it at a similar level to the VMware VCAP deploy exams. You need to be comfortable and familiar with how to perform the most common tasks quickly without referring to the documentation. You should also know where to look in the documentation for information to help you on more complex tasks and I mean knowing exactly where to look. Simply having a rough idea that it is in the concepts sections won’t be good enough, as you will waste too much time searching the documentation.
It’s definitely more focused on the hands on experience as you would expect, however just knowing how to create YAML files or apply them via kubectl isn’t going to be enough to pass the exam. Remember the title of the exam, Certified Kubernetes Administrator and think about the types of tasks an administrator might need to perform as part of their job. It will encompass more than just creating and destroying pods and their associated objects, and so the exam questions cover more than just YAML and kubectl. You need to pay close attention to what the exam blueprint outlines in terms of the topic areas and which areas are more heavily weighted.
The difficulty is really that you need to achieve 74% to pass the exam rather than in the complexity of the questions themselves. For seasoned pros who have been working hands on with the technology for a while, dedicated study of any areas of weakness will be sufficient to get them across the line comfortably. They will be quick enough and comfortable enough with the commands they need to run that most questions will be simple to answer. For people like me who are just getting started you really need to put in the effort to practice and not just study the documentation.
This was the first exam I had sat where you are remotely monitored via the webcam and shared desktop. I found it a little strange at first and I was definitely a bit paranoid about not talking to myself, or reading the questions silently to myself. I know I sometimes find it useful to read the question to myself silently i.e. moving my lips without the sound coming out. It’s an odd habit, it just somehow helps me. My brain better connects with the words in the question or something I guess.
After a little while I think I just got absorbed into the exam and didn’t really notice the remote monitoring until they sent a reminder that there was 30 minutes left in the exam. The remote monitor was silent throughout the exam, I didn’t notice any signs that they were watching me or watching my desktop during the exam. It’s nice to be able to schedule an exam for whenever you want rather than having to find a time that works for you at a local exam centre.
I did manage to accidentally open Skype on my Macbook during the exam when navigating between browser tabs. Luckily with my VPN switched off it wouldn’t have connected even if I hadn’t immediately shut it down and the exam monitor did not bring it up via the remote chat. The downside of using your own equipment rather than a test centre dedicated PC which is configured in a kiosk style mode!
In my case my results arrived via email just over 24 hours after sitting the exam, complete with instructions on how I could book a resit. The official email at the end of the exam tells you the results will arrive within 36 hours. There is no information provided with the results to indicate the areas you did well or badly in. So, it is up to your own memory of the exam to figure out what topics you need to revisit before you retake the exam. I can understand this viewpoint, however it would be useful to the individual to know maybe the top 3 exam objectives they needed to focus their attention on without giving any more details. Especially if they fail with a score that indicates they are only one or two questions away from the pass mark.
Personally I did a brain dump as soon as the exam was over, noting down as many of the questions as I could. My notes were very high level about what you were expected to do for the questions in terms of the topic it covered and the expected outcome e.g. know how to deploy x object type and what YAML structure should be. I also made notes on anything I would need to look at for a resit that wasn’t directly related to the questions e.g. know how to locate and access particular files at the OS level during troubleshooting.
Originally I was hoping to be able to retake the exam before the end of January, however as this is my final free attempt at the exam I will be more cautious this time. I haven’t scheduled the exam and won’t do so until I feel comfortable that I have a good chance at passing. There is already a requirement for me to travel abroad before the end of January for work, and then again at the beginning of February so I’m not sure if it is realistic to expect to be ready within 3 weeks if I use the end of January as my deadline.
I will be blogging as I go through studying for the retake, providing links to resources I use. My main focus areas based on my notes from my first attempt will be:
- Getting familiar with the key objects yaml file structure – I’m not going to attempt to memorise all of the possibilities. I want to be able to recognise what elements are part of a pod yaml spec for example, and how it changes if you have multiple containers compared to a single container. I also want to be sure I know where I can grab example files from within the documentation for each of the key object types. During my exam I wasted a lot of time from not getting the structure of yaml files perfect, or trying to find an example of what was needed.
- Installation, configuration and decommission of the Kubernetes cluster – Knowing the steps and commands that are needed, or where to find them within the documentation. Understanding the flags or arguments that can be used with different commands, and when you might need to use them. This was a big weakness for me and something I need to spend more time looking at. Using things like Minikube is great to get up and running quickly, I simply didn’t give enough focus to the steps that it allows me to bypass.
- Troubleshooting Kubernetes clusters – Establishing a logical process to follow to troubleshoot a Kubernetes cluster, which includes OS based troubleshooting. What are the potential scenarios that commonly occur for Kubernetes clusters and how do you resolve them. A symptom of the lack of real world hands on experience I have had with customer projects, I don’t have the battle scars from customer deployments so I need to look at what other people are experiencing.
- Viewing information within Kubernetes – Once a cluster is up and running and hosting containers what information can I view via the command line, or the Kubernetes dashboard. Also how can I save that information, or use it within a command to perform another action. I also forgot how to get information about the kubectl command flags without looking at the documentation, so this will be another area I will be looking to practice. There were some questions within the exam which were probably easy marks to collect if you knew some of the basics, which I didn’t. Whilst answering these questions on their own won’t get me a pass on the exam, easy marks like these might just be the difference between a close fail and a close pass.
- Better use of the Kubernetes documentation – Whilst I leant heavily on the Kubernetes documentation during my first attempt, there was too much time spent searching and scrolling through pages to find the detail I was looking for. I didn’t use the GitHub pages at all, and this feels like a missed opportunity. Before my retake I will be looking at the documentation and identifying any key pages or sections that I could use during the exam. I will be aiming to have 4 or 5 targets that I can instantly access during the exam if required. Anything more than this and I don’t think I will have the level of hands on practice required to be able to achieve a pass.
Overall despite the challenging build up I did enjoy the exam experience. Personally I prefer the hands on style exams to the multiple choice questions like the VCP or VCAP Design exams. I always find them more difficult as there are details left out of the questions, which in the real world you would ask your customer before making a decision. Hands on VCAP Deploy style exams feel more natural, and are testing that you are able to do something rather than that you can remember how someone thinks you should do something.
It felt good to realise after the exam that I had been able to attempt to answer almost every question. My previous practice and study had been on the right path, I just hadn’t been able to do enough of it to have a realistic chance of passing and I had a couple of topics that I now know I need to include in my practice.
I don’t feel dishearten at the score I achieved, or feel like passing the exam is an unachievable goal. I’ll admit there is some hard work ahead of me to be able to get up to the level I think I need to be before I will consider retaking the exam, I’m up for the challenge though!