In August 2020, I had the opportunity to pass both Kubernetes exams Certified Kubernetes Administrator & Certified Kubernetes Application Developer. It was a hard decision because I learned about the change in the CKA curriculum starting from September (found here) and I am a few weeks away from the KubeCon Europe 20’. So I prepared for both curriculum but in the end, I preferred to attend the KubeCon holding my CKA or CKAD at least.
In my very first post in this blog and proudly after I successfully received both of them at the first attempt, I loved to share my experience and notes, what tips and hacks you must have to crack the Kubernetes exam.
The two exams are 100% hands-on, I practiced a lot on kubectl and did kubernetes.io tasks for a period again and again. this must be your number #1 goal. The exam is almost copy-paste from the Kubernetes website, doing the tasks will help in exploring the docs and be familiar with the website also practice more on Kubernetes.
Have your Kubernetes Cluster
I started with building my Kubernetes 1.8 cluster using kubeadm so it becomes my field to further practice, other tools that set up a Kubernetes cluster like microk8s, kind or minikube are also fine but remember in CKA, you must have practiced bootstrap a cluster using kubeadm however CKAD it’s will not have to. In my experience during CKA, I was given a clusterConfiguration kind yaml file and asked to bootstrap a cluster using the yaml file. other questions were to fix a notReady node, join a node to the cluster. So you have to be fast on kubeadm for such tasks.
These page in the Kubernetes website helped me a lot :
- Creating a cluster with kubeadm
- Customizing control plane configuration with kubeadm
- The reference page for kubeadm document the tool command and its arguments
Practice on the cluster
After I set-ed up my cluster, I start to create deployments, expose services, provision volumes, attach config maps, and secrets to pod specs. All kinds of these tasks, you will be asked to do in the exam and more. what I highly recommend to do is to go through the Tasks section in the kubernetes.io website.
Among all the sections, I pick up the most important parts that cover bother CKA and CKAD:
- Install Tools
- Administer a Cluster
- Configure Pods and Containers
- Manage Kubernetes Objects
- Inject Data Into Applications
- Run Applications
- Run Jobs
- Access Applications in a Cluster
- Monitoring, Logging, and Debugging
- Manage Cluster Daemons
Both exams are hand-on tasks you have to complete over a specific amount of time. some tasks are difficult or took time to do, others are easy and straight forwards. Each question has a weight percentage and your final score is calculated on how much questions you completed depends on the question weight.
All questions I got are almost the same as Kubernetes.io tasks, run pods, make deployment, inject data into pods, attach volumes, make secrets, debug node/cluster,…
Never write a yaml file by hand, rely heavily on the –dry-run=client with kubectl, copy the parts you need from the Kubernetes.io website
You can have bookmarks in the browser to use during the Exam, I shared a useful HTML bookmark file in my GitHub HERE to fast access during the exam.
In case you failed in the exam, don’t panic there will be a FREE retake.
Both CKA and CKAD cost 300$, you can take advantage of discount coupon. During the KubeCon event I got 50% discount for CKAD, Black Friday is also near so take advantage whenever there is a discount
The exam allows you to have ONE additional tab with documentation located on kubernetes.io and github.com/kubernetes during both exams. discussion subdomain and links points outside the Kubernetes docs are not allowed
You can take the CKA exam from any qualifying computer, anywhere you have internet, almost any time. The passing score of the exam for CKA is 74% and 66% for CKAD.
You can flag a question if it will take time or it is complex, so you come back to it later. I highly recommend starting with the easy and quick questions to you so to complete as much as possible questions quickly. Questions have weights so they worth more in the final score.
Setting up aliases & Autocompletions would save a lot of or time.
echo "source <(kubectl completion bash)" >> ~/.bashrc alias k=kubectl complete -F __start_kubectl k
I highly recommend to setup vim to yaml editing
vim ~./vimrc # append the following lines set nu set ic set expandtab set shiftwidth=2 set tabstop=2
During The Exam
- During the 3 hours exam, there are six clusters that comprise the exam environment over 24 questions to switch between clusters, we can use: $ kubectl config use-context <cluster>. The command will be provided at the beginning of each question, ensure that you are copying and pasting on the terminal before you start answering any question
- Roughly if you get 18 to 19 questions right, you would pass the exam
- most of the questions are with kubectl and yaml editing and few others with kubeadm to debug and install Kubernetes control plane components. while you will not be asked to bootstrap a cluster from scratch, I find Kubernetes the hard way useful to attack the cluster debugging and maintenance.
- Any question will take you more than 8 minutes, FLAG the question and PASS to the next one
- you have 2 hours to complete the 19 questions, there are just four clusters that comprise the exam environment to switch between clusters.
- All of the questions are with kubectl and yaml editing
- my training on CKAD was the same as CKA, just more practice to be fast on kubectl.
- I practiced more on structural Kubernetes patterns: init containers, side-car, adapter, and ambassador, this is important!
September syllabus Update
Exam will be 2 hours instead of 3 hours long
Number of questions changed from 24 to 15 to 20 performance-based questions
The Passing score changed from 74% to 66%
The new syllabus change become like the following :
The preparation tips I shared above for CKA still valid for the new Syllabus.
Cluster Maintenance(11%) + Installation, Configuration & Validation(12%) = Cluster Architecture, Installation & Configuration(25%)
- Manage role-based access control (RBAC) Using RBAC Authorization
- Use Kubeadm to install a basic cluster create cluster using kubeadm
- Manage a highly-available Kubernetes cluster highly available cluster
- Provision underlying infrastructure to deploy a Kubernetes cluster
- Perform a version upgrade on a Kubernetes cluster using Kubeadm Upgrading kubeadm clusters
- Implement etcd backup and restore ETCD backup and restore
Networking(11%) + Core Concepts(19%) = Services & Networking(20%)
- Understand host networking configuration on the cluster nodes Nodes, Node communication
- Understand connectivity between Pods Pod to Pod Communication
- Understand ClusterIP, NodePort, LoadBalancer service types and endpoints Services
- Know how to use Ingress controllers and Ingress resources Ingress controller, Ingress resource
- Know how to configure and use CoreDNS CoreDNS
- Choose an appropriate container network interface plugin network plugins
Logging/Monitoring(5%) + Troubleshooting 10% = Troubleshooting(30%)
the exam will test your ability to troubleshoot different components in the cluster, list of pages below covers how to tackle the section:
Scheduling(5%) + Application Lifecycle Management(8%) = Workloads & Scheduling(15%)
this new section includes topics such as Pods, DaemonSets, Deployments, Schedulers, ConfigMap, Secrets
- Understand deployments and how to perform rolling update and rollbacks Perform a Rollback on a DaemonSet
- Use ConfigMaps and Secrets to configure applications Configure a Pod to Use a ConfigMap, Distribute Credentials Securely Using Secrets
- Know how to scale applications Scaling your application, Scale a StatefulSet
- Understand the primitives used to create robust, self-healing Deploy an App
- Understand how resource limits can affect Pod scheduling Assign CPU Resources to Containers and Pods, Assign Memory Resources to Containers and Pods
- Awareness of manifest management and common templating tools
Storage(7%) = Storage(10%)
- Understand storage classes, persistent volumes Storage Classes, Persistent Volumes, Persistent Volume Claims
- Understand volume mode, access modes and reclaim policies for volumes Volume Modes, Access Modes, Update Reclaim Policy
- Understand persistent volume claims primitive
- Know how to configure applications with persistent storage Storage, Persistent Volumes
Relevant courses and Repos
While preparing for CKA, I found the following online courses helpful:
- Exam Curriculum: The Cloud Native Computing Foundation designed a curriculum that outlines the knowledge and skills that both Certified Kubernetes Administrators and Certified Kubernetes Developers are expected to demonstrate. You can find them on GitHub.
- Slack: Kubernauts Slack has a slack channel for both CKA and CKAD, you will find many people around the world chat on exam preparation. Sure you can post questions, interact with the community you will get help or suggestions.
- “Introduction to Kubernetes” on edx.org, if you are fresh to Kubernetes this course from the Linux Foundation is a great starting point to be familiar with Kubernetes, the course introduces basic concepts, the architecture of the K8S system, and to get a better understanding of problems it solves.
- LinuxAcademy Chad’s CKA & CKAD Certification courses: these two courses are dedicated exactly for the exam, it covers the theoretical aspects, practical Labs, and exams mocks to practice at the end of the course.
- “Kubernetes in Action” by Marko Luksa: If you prefer reading books over watching online video courses, you can learn all the necessary theoretical concepts from Marko Luksa book’s.
- “Kubernetes — The Hard Way” by Kelsey Hightower: as I said above you will not be asked to build a cluster from scratch during the exam but this guide helps a lot to understand Kubernetes parts and how they work.
With that, once again I Wish All the best to you for the exam!!**
I offer 1:1 help and support for CKA or CKAD exam preparation.
you can reach me via: