Kubernetes lets you manage infrastructure as code. It also lets you implement deployment strategies commonly found in DevOps books. Furthermore, it is one of the most active repositories at GitHub, which recently reached one million issues.
Last year, we published a series exploring how to host a Drupal project on different cloud providers using Kubernetes: Continuous Deployment, Infrastructure as Code, and Drupal. Kubernetes feels like magic. It’s fun tearing up and down clusters, configuring workloads, and seeing how they reorganize automatically based on CPU and memory usage.
The Linux Foundation offers training and certifications for Kubernetes. These are a good way to fill in knowledge gaps and validate your experience with using the tool. The process of obtaining the Certified Kubernetes Application Developer (CKAD) and Certified Kubernetes Administrator (CKA) certifications is challenging but rewarding.
This article presents some tips for passing both exams.
Differences between CKAD and CKA
- Both exams share around 60% of the curriculum. The shared material is all around managing pods, deployments, and services.
- CKA has tasks on administering clusters such as upgrading a cluster to the next minor version, fixing a broken node, or backing up and restoring the etcd key-value store.
- CKAD has tasks on setting up multi-container pods, debugging broken pods and deployments, config maps, and using volumes.
Which one should you do first?
If your background is Systems Administration, go for CKA. Some folks at the Kubernetes Slack have this background and found CKA easier.
If your background is development, go for CKAD as it can help get you ready for CKA.
Both courses are great but not enough to pass the exam. You need to go beyond that and practice as much as possible until you feel fluent with the imperative mode, which involves creating Kubernetes objects with kubectl instead of copying a template and adjust it.
Udemy offers alternative courses. Based on various blog posts, the following courses provide a good foundation for the exams:
- Certified Kubernetes Administrator (CKA) with Practice Tests
- Kubernetes Certified Application Developer (CKAD) with Tests
As for setting up a cluster to study and train, you can set up a two-node cluster at AWS for CKAD or Google Cloud Console for CKA. These are expensive resources. You might end up paying $100 in a month.
Google Cloud has a great offer that gives you a $300 credit when you start using its cloud. This might be enough credit for you to prepare for one of the exams. If you prefer to host the cluster locally, you can use Minikube or Kind to set it up.
Here are free resources that some wonderful folks published to improve your skills:
For both CKAD and CKA
- StenlyTU/K8s-training-official - Stilian Stoilov wrote tasks for various topics with inline solutions.
- Kubernetes the hard way - If you don’t do the Linux Foundation courses, do or at least read this tutorial. It will teach you a lot about each of the pieces of a Kubernetes cluster.
- O’Reilly Kubernetes tasks - Create an account and go through all these tasks. Each task has an isolated environment with a terminal where you can experiment.
For CKA only
- David-VTUK/CKA-StudyGuide - David-VTUK gathered a few sets of tasks grouped by service type.
- The official documentation at https://kubernetes.io - Read all of the Concepts, Tasks, and Tutorials.
For CKAD only
- bmuschko/ckad-prep - Benjamin Muschko created a detailed list of tasks with additional notes explaining the solutions.
- dgkanatsios/CKAD-exercises - Dimitris-Ilias Gkanatsios created this repository with a lot of tasks to practice.
- Practice Enough With These 150 Questions for the CKAD Exam - Bhargav Bachina prepared 150 exam-like tasks with inline answers. He also has a repository with further resources.
As you study, prepare a set of bookmarks to use during the exam. According to the official documentation, during the exam, you can open one additional tab in order to access assets at https://kubernetes.io/docs, https://github.com/kubernetes, https://kubernetes.io/blog, and their subdomains. While you will become very fast at searching at https://kubernetes.io, bookmarks are even faster.
Here are some that can be used for both exams. Save the bookmarks using short names so more can be seen at a single glace:
- Cheat Sheet
- Declare NP
- etcd docs
- etcd example
- etcd restore
- DNS debugging
Taking the exam
One of the things that might be daunting is that the exam is monitored by a proctor who has access to your screen, mic, and webcam. The proctor is there to make sure that you are on your own, that you won’t copy, and help you if you find issues with the exam interface. All the important details are explained at Important Instructions: CKA and CKAD.
Here are some additional tips:
- Join 15 minutes early. The proctor will already be there. Checking your environment with the proctor may take 15 to 20 minutes. Don’t worry, if this takes long it won’t take time out of the exam.
- Clear your workspace. Remove everything that is non-essential from the desk and under the desk. Your proctor will ask you to show the area so make it easy for him/her to verify that there is nothing suspicious.
- You can use an external monitor. I have seen cases where the proctor required a student to unplug the external monitor but these are rare. Usually, they just ask you to make both monitors visible via the exam tool and that’s it.
- Close the door and turn off your phone. Ensure that nothing will interrupt you while you are doing the exam.
- Use the notepad to keep track of your progress. There is a notepad at the exam interface which you can use to keep track of question percentages and take notes of questions that need a re-check. Both exams require you to get 66% out of 100%, so don’t get stuck on a task since there will be easy tasks that you can solve in seconds.
Contribute and help
Be aware that there are typos in the Kubernetes documentation and some topics that lack examples. Fixing these is a straightforward process that can be done via the browser by clicking on Edit this page at the top right corner of any page at https://kubernetes.io. Here is a sample pull request that suggests adding an example:
Kubernetes at GitHub is one of the valid resources to use during the exam, so by contributing to the official documentation you are also helping yourself.