Learning Kubernetes and getting officially certified
I had plans for the first week of May 2020 — vacationing in Amsterdam! Yeah, I know it’s far from possible to travel anywhere in the midst of this pandemic. Therefore, when my vacation plans were crushed by a virus, I had to come up with an alternative plan. (yeah Netflix is an option but I get bored of it too!). So I decided to take up the certification exam and I did and also completed it successfully. (Yippie!) I know that many other developers also plan to get certified and therefore I wrote this article to provide some insights related to the exam and the preparation. Hope it helps!
One more thing, if you do not want to read all the “blah blah”, skip over to the “Nature of the exam” section.
Motivation
I get excited with anything Linux. That’s one of my motivations to do the Certified Kubernetes Application Developer (CKAD) certification developed by Cloud Native Computing Foundation(CNCF) in collaboration with The Linux Foundation. This is my first Linux Foundation certification (so cool!)
Kubernetes (K8s) is flying high. It is being adopted by many companies (even in Europe and Asia) and it has proven to be the go to platform for the projects with micro-service architecture (of course not limited to that). Platform engineering and DevOps have become way cooler than before, thanks to K8s. Even if you are not into operations or platform development, one has to have the minimum knowledge of containerization and K8s platform to develop applications that are intended to be deployed in a K8s cluster.
In my opinion, the main goal of the CKAD certification is to establish the understanding of the K8s concepts and develop the ability to (architect), deploy, manage, observe and debug the applications in the K8s cluster. This includes, going through the K8s documentation and using it to get things done. The certification exam facilitates the use of documentation.
Foundation for understanding K8s concepts
Apart from the most important thing necessary to dive deeper into K8s concepts which is curiosity and willingness to learn, following provides a solid foundation for in-depth understanding of the K8s concepts and helps immensely in the day to day working with K8s. I know that some things in here are obvious, but if we consider the fact that many in the developer roles (especially in AI and Data Science teams) do not come from the computer science background, explicitly mentioning these might help someone comprehend what they are getting into.
- Understanding of the basic concepts related to Storage, Networking, Security, Application: development, deployment, logging and monitoring.
- Understanding of basic Linux concepts (cronjob, volume mounts, processes etc.)
- Hands-on experience with Linux or Unix based systems.
- Understanding and experience with containerization. (Docker is your friend)
Registering for the exam
One can register just for the CKAD exam or both official training and the exam. Link to the exam registration page:
https://training.linuxfoundation.org/certification/certified-kubernetes-application-developer-ckad/
Note that The Linux Foundation usually has some sort of offers/promo which provides discounts. So, make sure to use any existing offers while you register for the exam. There is a promo going on right now! (at the time of this writing).
Nature of the exam
- Hands-on
- The exam is remotely proctored
- One can use the official K8s documentation during the exam as a reference
- The Exam curriculum can be found in the following page
https://github.com/cncf/curriculum
For further details please refer to the CKAD Candidate handbook, Exam Tips and FAQs listed here.
Following is the list of important steps for the preparation:
Online courses:
- Kubernetes for Developers course from Linux Foundation
- Kubernetes Certified Application Developer (CKAD) with Tests course from Udemy (Preferred)
Hands-on experience with K8s cluster
- One can start with Minikube or simply with Docker which now comes with an inbuilt K8s cluster.
- If you don’t have access to a multi-node cluster on-premise or on cloud, then you can try things on training sites like KodeKloud (access is also available with the Udemy Course).
Time management is extremely important
- Practice time management with mock exams (Also included in the Udemy course)
- Use kubectl imperative commands whenever possible -> Kubectl Cheat Sheet
- Use alias (alias k=kubectl)
- Be comfortable with editing YAML files.
- It is great if you know how edit using VIM (VI Editor), but I think you can also use nano by setting it as the default kubectl editor.
- Go through the Kubernetes official documentation and get accustomed in using it to search stuff.
- Make sure you know how to copy-paste from the webpage into the terminal (depends on your OS)
Some useful links can be found in the following page:
https://github.com/lucassha/CKAD-resources
That’s it! I hope this write up provides some useful tips to anyone who is planning to ace the CKAD certification.