My experience with Certified Kubernetes Application Developer (CKAD) Exam

My experience with Certified Kubernetes Application Developer (CKAD) Exam

If you are new to cloud or to container technologies, this article would be mostly irrelevant for you but if you have been working with containers for some time and are already familiar with the term Kubernetes. This article is a fresh perspective if you intend to appear for one of the Kubernetes exams organized by Linux Foundation. For people who are aware about the exams conducted for getting certified on Kubernetes technology like CKA, CKAD & CKS the Certified Kubernetes Application Developer Exam is one of the most revered exams for people who want to orchestrate their application development in Kubernetes.

Since I am a developer by heart, I too yearned for the shiny badge bestowed by Linux Foundation for clearing the exam which catches the gaze of big companies who mostly use Kubernetes as one of the development platforms for their applications. So, I prepared for the exam for months as it was a new technology for me, and it is not an easy nut to crack. So, here I am sharing my experience for the preparation as well as appearing for the exam:


The preparation journey

I started preparing in 2022 after I had to deliver a training on the fundamentals of Kubernetes and AKS, its Azure counterpart. I was bedazzled by the technology and was a complete novice but somehow delivered the training with success. After that I was determined to dive deep into it and once I gained some insights, I decided that this would be my next mission.

This was not an easy ride as although I was required to complete certifications as a part of my quarterly objectives, but the priority goes to the training?which I delivered. Being a seasoned trainer, I was always occupied with a lot of trainings and did not get ample time to prepare for the exam or shadow trainings?conducted internally or externally.?So, here is my tip no. 1 for the exam:

  • Don't?buy the exam or?start preparing or until you have at least a month of time on your hand where you will not be occupied by other tasks competing for it.

The course curriculum is a long one that requires intense hands-on practice as all the questions in the exam are implicative and not objective. All the questions require you to solve some tasks which takes time. Usually, if you are a beginner then the same task can take up to 15 minutes for you to solve but once you have good preparation for the exam you must solve that task by any means within 5 minutes. So, here is tip no. 2:

  • Practice makes a human perfect. Do a lot of hands on by using the CKAD playground on Killer.sh or Killercoda as you will not get enough time in the exam to solve all the questions with accuracy.

Coming to the most important part of time management, I would like to share some crucial tips that will help you in the exam:

  1. Edit as many YAML files as possible: I would recommend rather for you to create your own yaml files instead of copying and editing ones from Kubernetes.io/docs/home because it will give you more clarity with the structure of the Kubernetes manifests and how to create various Kubernetes objects. You may refer to the documentation for the manifests and then type the same on your terminal. When it comes to the exam, you might get pre-configured manifest files in the simulator for some questions. It is better to edit those files and directly deploy them as you might not have time to search for a similar YAML file from docs and modify it to match the existing deployment.
  2. Time your tasks: Every task that you are completing should not be more than 5 minutes if you want to ace in the exam. The exam is for 2 hours, and you need 66% to get certified. Since, there would be at least 15 and not more than 20 questions you need to complete one question within 5 minutes. So, even if you get 20 questions and are completing the exam within 5 minutes you would be able to complete the exam in 100 minutes and still have 20 minutes left to verify all your deployments are working as per the task requirement. This gives you only a minute to verify each problem which is ideal but in case if it does not work, you still have a bit of time left to remediate it.
  3. Don't spend much time on complex tasks firsts even if you are tempted: I know it can be hard to resist but every problem is marked differently, and some are easier than others. So, it is better to first solve those as you can switch between the problems and finish the ones first which are less complicated. Otherwise, you waste half of your time on a problem which you are not familiar with, and which sucks up quite a portion of your time. You can flag those complex questions and return to them later once you are done with the scoring tasks.
  4. Try to use imperative commands as much as possible: Creating the resources with just a command is easier than first creating a YAML file and then editing it, only to find out that it gives you an error while deploying. Also, in imperative commands you can easily use '--help' to get an idea how that resource is created, but again my recommendation would be to practice memorizing the commands which are basic like deployments or services. Although, there are not many imperative to remember, you can still refer to the official docs or a cheatsheet when required, especially when you are getting errors doing the same.
  5. Abbreviate wherever possible: when it comes to imperative commands you can save time by abbreviating certain repetitive expressions like '--dry-run=client -o yaml' and '--force --grace-period=0' by exporting it to some variable like do & now and then using it with $ sign. An even shorter way of using imperative commands is by typing just initial characters of the term and then pressing tab so that it autocompletes with the relevant jargon. You would have to play with it to understand how it works to use it effectively. Be careful as if there are multiple files present locally or references with the same initial letters it might not work and if you press tab twice it will show you the available references to your query. Then you can also alias objects like 'Kubectl' for 'k', '--namespace' for '-n', 'persistsantvolumeclaims' for 'pvc' and so on. For a complete list, refer to the K8s alias documentation on the same.
  6. Not all objects can be created using imperative commands: Some objects like Persistent Volumes, Claims, Storage Classes, Network policies etc. cannot be created using imperative commands and it is better to copy paste their manifest files from the docs or create manually. For the resources that can be created using imperative commands it is always recommended to create a dummy definition by dry running it on client and saving the output in a YAML template. This will again help you save time as you will first check the deployment, modify it with the required changes and then deploy it. This way you can always reuse the template in case your deployment does not work or gives you an error. You can then make changes into the manifest and then use '--replace -f' command with '--force' or simply delete the resource and apply the manifest again.
  7. You need to be familiar with some shortcuts for working with your Linux terminal: First is you should check certain things like tab stop is set and shift width & tab width is set to 2. Although, it will be set by default but If not, set them in the terminal and then proceed with the exam. The next thing is that when you are copying inside the terminal you need to use 'control+shift+c' and outside the terminal 'control+c' to copy the contents in the remote desktop browser. Similarly, to paste just use 'control+shift+v'. When you are inside manifest files, to delete a single or few lines you need to take the cursor to the first line, press 'Esc' key & then 'shift+v' to enter the Visual mode, then press arrow keys to select the desired lines. Once highlighted, press ‘d’ to delete them. Once deleted, the text cannot be recovered so be careful while doing it or press 'Esc', 'q!' & 'Enter' to undo the changes to the manifest. Similarly, to shift copied text into the manifest file left or right go into the Visual mode again and select the copied lines. Then press 'shift+<' or 'shift+>' and keep repeating the process till it indents correctly.

?

If you come from Linux background, you must already be familiar with some of these hacks, but I swear these things took a lot of time for me to learn and only last year I became aware of few of these wonderful tricks. That's enough for the time management thing even I can't stress on it enough. There are some other key factors when it comes to the exam. Tip no. 4:

  • Always read the question thoroughly and make sure you are using the right cluster context and are in the right namespace. Although you will be provided with a command for setting the Cluster context, but you must use it before starting each task. Once that is done, the resource that you are creating must be created in the right namespace otherwise you can do the entire task accurately and still get no points for it. As a recommendation, I would suggest using 'k -n' and then the name of the namespace before the rest of the command so that it gets executed in that namespace only. Alternatively, you can modify the namespace from default to the one mentioned in the task for the cluster by using the command 'k config set-context --current -namespace <your-namespace>' but just to be safe you have to keep checking after every deployment to make sure your resources are getting deployed in that namespace.Make this a habit even if you are supposed to perform the task in the default namespace. This will give you an edge & make sure to modify the same in the manifest files if it is not set correctly otherwise it will create the resource in the default namespace. This will of course be exceptional for resources like Persistent Volumes and Nodes as they are Cluster scoped & do not pertain to a particular namespace.


Some More Tips

In the exam you are only allowed to access Kubernetes.io, helm.sh and docker.io on the remote browser for reference purposes so please be well versed with these resources. For practice and learning, I prepared using the legendary Mumshad Mannambeth’s Udemy CKAD course which is sufficient for learning all the essential topics for the exam and gives a plethora of simulations for hands on exercises along with Mock exams and exam topic updates. I would suggest you go through the complete course two to three times along with all the labs.?

The next place where you can prepare is Killercoda which gives you a playground for CKAD exam along with some practice tasks on exam related training scenarios. Now, if you have already scheduled your exam then you should also get a sample practice test on killer.sh which will have two versions, but both are the same exam so do not attempt the second unless you want to practice the same questions again. The important thing is that the simulator environment in the sample exam would be only valid for 36 hours from the time you start so plan it?accordingly. The best part is that the solutions for that exam would be available even after the simulator session so you can revisit them any time before your exam or try them in a playground by trying to simulate them.

Also, it is clearly stated that the actual exam is easier than the sample attempt (with the exception of a few questions) so practice thoroughly as once you are confident it will be easier to attempt the actual exam.

Also, within 36 hours you can reset the simulator anytime so you can practice for 2 hours & a total of 18 times with one simulator or 36 times with both simulators.

This reminds me to give you a final tip that please do not go on for straight 18 hours or at a stretch while preparing and do take rests frequently as and when required. Just make sure to have consistency while preparing and if there is any pause do start over as a lot of concepts are interconnected.


Conclusion

So, here is my experience along with some tips on how to prepare well for the exam to confidently appear for it. It has been the toughest exam I have given so far in my professional career and it took me 2 years and 2 attempts to clear it but finally the result was worth the effort and I learnt a lot in the process. The only thing that matters is to never give up and seek help whenever you feel stuck.

If you are also planning to appear for your CKAD exam and need any guidance or insiders, you can connect with me on Topmate. I wish you all the best for your preparation journey and hope you pass the exam with flying colors.



Prashant Khosre

Tech Lead @ CloudThat | Azure X 12 | RedHat X 4

1 年

Congratulations Rishabh ??

Sharat Kanthi

BU Head | Cloud Solutions Architect | Azure IoT AI/ML |

1 年

Amazing.. Congratulations!

Bishu Tamang

Software Developer | Flask, Django, Odoo, Hadoop, PySpark @ Binary Semantics Ltd.

1 年

Great work

Praveen Kumar Deverakonda

Azure Trainer | One-on-One Cloud & DevOps Coaching | Azure AKS | Kubernetes | Terraform

1 年

congratulations

要查看或添加评论,请登录

Rishabh Beniwal的更多文章

  • Do you still need to learn software development?

    Do you still need to learn software development?

    A short answer would be yes! The Reason Now let me explain the long answer: Software development is not going away…

  • Why did I start learning Game Development in 2024?

    Why did I start learning Game Development in 2024?

    I am finally done with my first target for 2024 which involved developing 3 new games as a personal project. I had…

    5 条评论
  • WordPress WooCommerce Marketplace

    WordPress WooCommerce Marketplace

    WordPress is one of the most popular CMS platforms for designing websites and it is due to this reason that 37% of all…

    1 条评论

社区洞察

其他会员也浏览了