Preparing for CKAD exam
Tags: kubernetes, ckad, certification
Published: 2021-08-03 20:31:09

# Background
I was planning for my next certification and I was thinking of either taking cloud certification like AWS or GCP, but then I recollected my discussion with one of my colleague who just passed CKAD exam and he also suggested me to go for it. Since, we were already working on Kubernetes, it would be a little easy to get certified. Also, Kubernetes has no dependency on one specific cloud platform. Every cloud platform has its own version of managed Kubernetes platform e.g. Azure offers AKS, AWS offers EKS and GCP offers GKE. So the certification is independent of the cloud providers, that means this certification will still hold value against the majority of cloud platforms.

I recently passed my CKAD certification and I am sharing my experience in this post.

The certification has been developed by the Cloud Native Computing Foundation (CNCF), in collaboration with The Linux Foundation.

# Prepare for the exam

In this section we will look at what it takes to prepare for the exam.

## Get trained for the certification

If you have basic understanding of Kubernetes look no further start with Mumshad Mannambeth's course (KodeKloud) on Udemy,

[Certified Kubernetes Application Developer - By KodeKloud](https://www.udemy.com/course/certified-kubernetes-application-developer/)

This exam curriculum includes these general domains and their weights on the exam:

1. 13% – Core Concepts
2. 18% – Configuration
3. 10% – Multi-Container Pods
4. 18% – Observability
5. 20% – Pod Design
6. 13% – Services & Networking
7. 8% – State Persistence

This course covers all the topics required by the exam in detail with hands-on lab, lightning labs and mock exams. You will get access to labs on Kode Kloud after you purchase the course and you can practice as many times as you like for the exam.

However if you are at beginner level and want to get comfortable with Kubernetes you can start with,

[Kubernetes for the Absolute Beginners - Hands-on](https://www.udemy.com/course/learn-kubernetes/)

## Practice Exams/Labs

KodeKloud provides you with hands-on labs, lightning labs and 2 mock exams (2 parts with 10 questions each). You can take the labs as many times as you like. The labs simulates all real life scenarios you will face while working with Kubernetes and that's what the exam is all about. 

In addition to the mock exams you should practice [CKAD-Excercises](https://github.com/dgkanatsios/CKAD-exercises). This one is pretty extensive and covers all the topic in details. The good thing about this lab is that it provides you alternate approaches to implement the same problem. The lab also covers how to validate the answers (implementation) which is one important aspect of the exam. You should be able to test what you implemented.

Along with this you can also practice on [killer.sh](https://killer.sh) its a paid lab and it will cost you around 29.99 €, you do normally get 10% discount after you register with them (Register and wait for a day :p). However I will advice you not to buy this exam separately as it comes complementary as a exam simulator with CKAD Certification Exam. Killer.sh will provide you 2 sessions, each session will be valid for 36 hours once you start the session. The session gives you a mock exam with 20 questions with a timer of 120 mins to pass the mock exam. You can restart your session as many times as you like in the 36 hours, at the end of the exam you will get answers with explanations. 

Each of the practice labs I suggested above will help you learn smart ways of implementing and validating your answers. 

# Exam Tips

## Practice, practice and practice
This is a hands-on exam, you have to solve 19 questions in 120 minutes. The time just flies when you are giving the exam, so there is no time to relax. The only way to get around this exam is to practice every day and make sure you complete the mock exams from Kode Kloud in half time, once you reach there you are ready for the exam. 

## Don't rely on the Kubernetes documentation
This is a open book exam. You are allowed to open one extra tabs with following sites,

* [https://kubernetes.io/docs/](https://kubernetes.io/docs/) and their subdomains
* [https://github.com/kubernetes/](https://github.com/kubernetes/) and their subdomains
* [https://kubernetes.io/blog/](https://kubernetes.io/blog/) and their subdomains

If he documentation is allowed then why I am saying don't rely on it? No, the documentation is not wrong, the time is short. You can't be searching for documentation on Kubernetes documentation site while in the exam. Its too time consuming and you will loose time quickly.

So what's the best way?
The easiest thing to do is to use imperative commands as much as possible. However resources like Persistent Volumes, Network policies or Ingress is not available as imperative commands. So, its best to rely on documentation in this case.  

## Always check the weightage for the question
Some of the questions might carry lower weightage and can have multiple things to do like create persistent volume, create volume claim and mount it to a pod. Asses the complexity of the question against weightage, if it takes more time to execute flag it and move to next question and come back to it later. The trick here is to cover maximum questions in less time and then come back to the flagged questions.

I had a similar problem where one question had a weightage of 2% but I was not sure how to answer it. So I flagged it and came back to it later, searched for the documentation and answered the same. 

## Don't spend too much time on one question
Remember this you should not spend too much time on one question, if you are stuck on a question and you are not sure don't panic just move to the next question. Yes, I know everybody wants high score but you need to pass the certification as well, so just move ahead flag the question, move ahead and then come back to the flagged questions.

## Bookmark important links
When you are practicing make sure you bookmark the links you are referring for solving the question. The best place to bookmark is on the bookmark bar create a folder and start bookmarking all the documentation links there. This makes it easy to access during the exam. 

You can import bookmarks from [Kubernetes] (https://github.com/reetasingh/CKAD-Bookmarks). However you should also create your own version of the bookmarks, it helps you in locating the required documents faster.

Also, bookmark documentation which has all things you require to complete a solution in one place e.g. Create persistent volume, volume claim, mount in pod. 

https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

This link has all the things required to solve such scenario in one place.

## Use one YAML file with multiple definitions

Try to use one YAML files separated by --- to store different definitions related to the solution e.g.

```
apiVersion: v1
kind: PersistentVolume
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"
---
apiVersion: v1
kind: Pod
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
        claimName: task-pv-claim
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage
---
apiVersion: v1
kind: Pod
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
        claimName: task-pv-claim
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage
```

## Practice your Vim skills
Vim is the default editor for editing Kubernetes definitions. Make sure you learn the shortcuts to implement the solution faster. You can refer [Vim Crash Course](https://www.youtube.com/watch?v=knyJt8d6C_8) to learn more about the shortcuts.


This is a pretty long post, read my next post for [Tips for CKAD exam](https://dev.to/adityakanekar/tips-for-ckad-exam-58gn). Till then, happy learning!