Passing the CKA and CKAD

Andrew Hibbert
5 min readDec 17, 2018

--

I’ve taken both these exams recently and passed. Here is some information on the exams and some tips to pass.

CKA Exam

The Certified Kubernetes Administrator Exam is 3 hours long and consists of 24 problems to be solved on the command line. During the exam you will work with 6 clusters and will solve a variety of problems. This exam is aimed at systems administrators and so there is some focus towards installing and troubleshooting clusters as a whole.

CKAD Exam

The Certified Kubernetes Application Developer Exam is 2 hours long and consists of 19 problems to be solved on the command line. During the exam you will work with 4 clusters and will solve a variety of problems. This exam is aimed at engineers running applications on Kubernetes and so there is more focus on different ways of running applications within kubernetes and less on administration tasks.

Both Exams

There is a fair amount of overlap between the exams and so if you are training towards one you may be able to pass both. On review the CKAD may seem easier but the time was tighter, I actually scored less in this exam than the CKA but this was partly to do with some technical difficulties on the day. As above I found the CKA has some questions focussed towards installation and troubleshooting, on the flipside the CKAD was more complicated with regards to the kubernetes resources, different namespaces, more complicated yaml files etc.

In the exam you are required to use Google Chrome web browser and are allowed one extra tab open to view kubernetes.io website. You should ensure you are familiar with that website.

Read the links for the exams as these will give you an understanding of what you will be tested on, the kubernetes version the test will be on, number of clusters, guidelines, rules etc — https://www.cncf.io/certification/cka/ and https://www.cncf.io/certification/ckad/.

Prerequisites

There are no official prerequisites to the exams but these are the skills I believe someone should have before working towards the exam:-

Linux CLI Skills. You should probably know:-

  • vi/nano/emacs = There is a lot of yaml file editing and so you should be proficient in one of these
  • grep/awk/head/tail/cat = You will be asked to provide specific output from commands you run and so knowing these tools will help quickly get the information required
  • scp = You may need to copy files from one cluster to another
  • tmux/screen = You might need to be running commands on more than one server at a time
  • systemd/journalctl = You may need to debug why clusters aren’t running, change systemd unit files etc

Docker = Ideally you should have experience in Docker at least have run some standard docker containers, used commands to keep them running, got into a running container, understand images, tags etc.

Preparation

Whilst preparing for the exams I used a number of resources.

Certified Kubernetes Administrator — Linux Academy — This was a good introduction and has some good labs and a full exam. You can also use up to 6 cloud servers to practice on.

Official Linux Foundation Courses — You can purchase the exam as part of a bundle with the training. This training is good and goes into more depth than the above although there are no videos, no full exam and you need to use your own compute to practice the labs on.

kubernetes.io — You’ll want to be very familiar with this website and should be referring to it when doing labs, exams etc during other courses. It also has a tasks section which shows how to do various things in kubernetes — https://kubernetes.io/docs/tasks/. The documentation points to the current version and so the documentation should be fine in most cases but you can get a specific version by prepending the Kubernetes version to the URL e.g. https://v1-11.docs.kubernetes.io/docs/tasks/job/coarse-parallel-processing-work-queue/

Kubernetes The Hard Way by Kelsey High Tower — https://github.com/kelseyhightower/kubernetes-the-hard-way. The majority of the training is done on kubeadm as this is quick to setup, this is fine for running various kubernetes resources but this git repo gives you a guide of setting up a cluster from scratch. From this you should be looking to find out the components running on the master vs nodes and how they are set up. It’s a good idea to vary this rather than follow exactly what is there, for example run a different kubernetes version, different ubuntu version etc. After the cluster is up and running you can run other tasks such as adding a node into the cluster, backing up etcd, look into configuration for different components etc.

Kubernauts cka and ckad slack channel — https://kubernauts.io/en/. Sign up to these slack channels and you can see other peoples advice on passing the exams and various resources for training, exercises, exams etc.

Personal projects / hands on work — From the above you should get some hands on experience. As the exams are practical you should have used kubernetes as much as possible. After doing the courses I was seeking out ways to test myself and learn more. One of these ways may be to get an application you know well running in kubernetes and configure it in various ways.

Tips For The Exam

  • Switch on kubectl autocomplete
  • Create resources imperatively. i.e. use kubectl create/run/edit/expose/annotate/label
  • Use kubectl run and kubectl create, output to a yaml file and then make further alterations in vi and then use kubectl apply/create. Ensure these yaml files are named uniquely so you don’t get mixed up as the exam progresses
  • Use kubectl explain when editing yaml files. You can use this to get documentation for a resource and specific fields
  • Use the -h flag when you are unsure, the commands contain examples which will help
  • Keep a note of where you are in the exam using the provided notepad
  • Each question will have a percentage so don’t spend to long on questions with a low percentage
  • The exams generally got harder as they progressed, I went through them mostly sequentially, I didn’t spend much time checking things were right as there wasn’t enough time for this
  • Leave the hardest questions till last, these will have the largest percentage but there is more possibility for things to go wrong which will consume more time

--

--