Toward the end of December I was able to pass my CKA exam. I wanted to take some time to share some tips which I think will help someone who is preparing CKA exam. Some of these tips will also be applicable to other exams as well.

Understand Exam Parameters

I have discussed some of this in my previous post, but I think it is important enough to dig deeper. Knowing how your exam operates is super important. I was talking with a colleague last year who was getting ready to take their CCNA, and they didn’t know whether or not they would be able to go back to answer or change their answer to questions. Something as simple as being able to go back to questions is not only super easy to find out, but also completely changes how to approach an exam.

The exam is a virtual desktop that includes access to multiple Kubernetes environments or contexts. As stated in the Linux Foundation, the exam includes 15-20 performance-based tasks to complete in various environments. At the beginning of each question or task is a command to run in order to make sure you are in the correct setting. Each question also has a different weight or value to your overall score. This means some questions may only be 2% of your overall score, while others may be 15% or more.

The exam length is 2 hours. Besides the obvious reasons for knowing the exam length, this also allows for a better perspective of how long each question should take. Assuming all questions were weighted equally(They’re Not) each question should take 6 minutes and be worth 5%. At the very least, this can give you an idea while you’re taking the exam how long a question should take. For instance, if you stumble across a question that weighs 15%, then the question could reasonably take 18 minutes to complete. On the other hand if you only take 5 minutes to answer a 15% question, you have either made up some time or you have potentially missed some of the task.

The exam also allows you to skip and return to questions, as well as flag questions you may want to review later. While this is nice, this means you need to be even more careful about which environments commands are run. If you start running commands in the wrong environment, you could get your current tasks wrong and make others more difficult by affecting the wrong environment/context.

The passing score for the exam is 66%. This is beneficial to know and possibly think about during the exam. I personally will review all questions towards the end of an exam to determine my level of confidence and decide whether or not I believe I have reached the needed 66%. If I am close to or under that threshold, I find questions where I can possibly improve my answers.

Understanding your goal

This is going to sound dumb, but please stick with me. If you are taking this exam, or any other exam, your goal should be to Pass The Exam. Secondary goals may be to learn about K8s or get a new job, but your goal is to pass the exam.

I bring this up because you should approach your studying with this in mind. For instance, many people may make a study guide for themselves which they learn and review for an exam. They will read through their notes or material and think “I understand this”, however, the exam doesn’t test you on whether you can read through the material and understand it. It tests your ability to be given a task, recall or determine how to perform the task, and quickly perform said task. If your preparation for the exam does not include performing these steps, you should reevaluate how you prepare.

Looking at it a different way…It is kind of like reading and studying all the books about how to play basketball without getting on the court. Being able to understand all the material is great, but if you are trying to be a great player without playing basketball, it isn’t going to work out well.

Imperative vs. Declarative

For this exam and Kubernetes in general there are normally two different ways to perform a task: Imperatively and Declaratively. Per the goal section above, this exam does not test your ability to be a good Kubernetes admin, it tests your ability to quickly perform tasks.

A good Kubernetes admin is probably going to perform all or most of their tasks declaratively, as it is not only best practice, but allows them to keep documentation of the environment. In this exam, you will need to decide which option is faster for you on the fly.

One of my favorite examples of this is with roles and rolebindings:

kubectl create role rolename --verb=get,list --resource=pods,persistentvolumes

This command is equivalent to the following yaml:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: rolename
  namespace: default
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - persistentvolumes
  verbs:
  - get
  - list
The imperative command above for me was much simpler to remember and type quickly than building the yaml from scratch, or going through the documentation to find a good example which I would then need to edit anyway.

Using the imperative kubectl create, these are all the resources you can create from the command:

In some instances, it might be faster to copy yaml from the Kubernetes documentation, but everyone is different so you will need to determine which method works best for you for which resource.

As a side note: Although you can’t create a single pod with kubectl create, you can create one with kubectl run.

Find a good course:

For my studying, I used A Cloud Guru as I have a subscription with that provider. A few years ago I was able to get grandfathered in with a cheaper annual price than what the current subscription cost so I have just maintained it.

However, there are plenty of great courses out there on Pluralsight, Udemy, and others. The trick is finding a course you enjoy that will keep you engaged.

One important thing to keep in mind though is if possible, to try to find a course that also included practice questions. This is important for my next point.

Practice Practice Practice

As I mentioned above, your goal is to pass the exam, and the exam tests your ability to quickly assess and perform tasks. This means you need to practice assessing and quickly performing tasks.

Fortunately, once you sign up for an exam, you get two free sessions with killer.sh. This site provides a practice exam that looks and feels like a real exam. Each of the two free sessions last multiple days, during that time you can reset the test as many times as you want. Because the duration of each session is limited, I started each of mine when I knew I would be able to go through the exam multiple times. Because Practice!

The only downside of this is killer.sh only has one version of the practice test.  So although this practice exam is supposed to be harder than the actual exam(which I thought as well), you cannot trust you will find similar questions on the real exam. Search for other practice questions, or create your own to build out your knowledge and skills.

Know the Documentation

With the Kubernetes Documentation being available to you during the exam, there is no reason not to familiarize yourself with it before hand. You also can’t solely rely on it as it will be too much of a drain on your limited exam time. This is why as you are practicing you should be noting in your mind where you are finding specific yaml or commands in the documentation.

For example, I found while doing practice questions I had a need to quickly build very simple yaml for persistent volumes, and their claims. So as one might do, I would search the Kubernetes docs for persistent volumes. The persistent volumes page itself had an abundance of information and I couldn’t find what I needed quickly and easily. However, just a few down from the persistent volume main page I found what I needed:

This page had very basic yaml and exactly what I needed. You may find during your practice you don’t need to use this page or there may be another page in the docs helpful to you. Going through the practice exams and really knowing where to find what you need in the documentation will help you immensely in your exams.

Hopefully these tips have been helpful to both your studying and your future exam!

Categories: Kubernetes