<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abhi</title>
    <description>The latest articles on DEV Community by Abhi (@abhibhuj).</description>
    <link>https://dev.to/abhibhuj</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F370072%2F3705b934-8040-4432-b2af-b151d3fa8ece.jpg</url>
      <title>DEV Community: Abhi</title>
      <link>https://dev.to/abhibhuj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhibhuj"/>
    <language>en</language>
    <item>
      <title>My unique CKAD experience</title>
      <dc:creator>Abhi</dc:creator>
      <pubDate>Sun, 19 Jul 2020 21:15:44 +0000</pubDate>
      <link>https://dev.to/abhibhuj/my-unique-ckad-experience-41ea</link>
      <guid>https://dev.to/abhibhuj/my-unique-ckad-experience-41ea</guid>
      <description>&lt;p&gt;So, I passed the CKAD exam and I thought I'd share my unique experience.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Practice, practice and practice. Improve your YAML and VIM skills. Good luck!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/B1uajA01vvL91Urtsp/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/B1uajA01vvL91Urtsp/giphy.gif" alt="practice"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just to be clear, there are 2 kinds of kubernetes certifications and I took the &lt;code&gt;developer&lt;/code&gt; one.&lt;br&gt;
&lt;br&gt;&lt;br&gt;
If you are planning on it, you might want to read the description below to see which of these are you more interested in.&lt;br&gt;
I have seen folks taking both the exams 🤷‍♂️&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Certified Kubernetes Administrator (CKA) certification  is designed to ensure that certification &lt;br&gt;
holders have the skills, knowledge, and competency to perform the responsibilities of Kubernetes Administrators&lt;/p&gt;

&lt;p&gt;The Certified Kubernetes Application Developer (CKAD) certification is designed to provide assurance that CKADs have &lt;br&gt;
the skills, knowledge, and competency to perform the responsibilities of Kubernetes application developers&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;More info &lt;a href="https://www.cncf.io/certification/cka/faq/"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Not so long ago
&lt;/h2&gt;

&lt;p&gt;It all started when I purchased the Linux Foundation's thanksgiving deal (course + exam under $200) with no &lt;strong&gt;retakes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The Linux foundation course was good but I soon lost interest like most of us do and stopped preparing for a while.&lt;/p&gt;

&lt;p&gt;Fast forward to April 2020, just then I had passed my Elasticsearch certification(which I'll write about it soon) and was motivated to take up another certification since we were all sheltering in place during the pandemic.&lt;/p&gt;
&lt;h2&gt;
  
  
  Courses that helped me
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Pluralsight
&lt;/h3&gt;

&lt;p&gt;Pluralsight came up with a free learning for the month of April and I started looking at CKAD courses. I had taken Nigel Poulton's courses on docker before and they were the best (still is).&lt;/p&gt;

&lt;p&gt;The courses that helped me the most were &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://app.pluralsight.com/library/courses/getting-started-kubernetes"&gt;Getting started with Kubernetes&lt;/a&gt; by &lt;code&gt;Nigel Poulton&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://app.pluralsight.com/paths/certificate/certified-kubernetes-administrator"&gt;CKA courses&lt;/a&gt; by &lt;code&gt;Anthony Nocentino&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are new to kubernetes, I definitely recommend going through both the courses to get your basics right.&lt;/p&gt;
&lt;h3&gt;
  
  
  KodeKloud
&lt;/h3&gt;

&lt;p&gt;KodeKloud's &lt;a href="https://kodekloud.com/p/kubernetes-certification-course"&gt;CKAD course&lt;/a&gt; by &lt;code&gt;Mumshad Mannambeth&lt;/code&gt; solidified what I had learnt so far. The best part of this course is that it has practice tests for each topic which will help you learn by doing it.&lt;/p&gt;
&lt;h3&gt;
  
  
  Github
&lt;/h3&gt;

&lt;p&gt;After these 2 courses, it was time to practice. There are handful of CKAD exercises on github but I did this one from &lt;a href="https://github.com/dgkanatsios/CKAD-exercises"&gt;dgkanatsios&lt;/a&gt;&lt;br&gt;
I already had a cluster setup in Linux Academy which proved handy for practising.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Soon I realized that learning and understanding of the concepts were not enough, it's vital that you develop speed and agility in understanding and solving the problems.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Text Editor
&lt;/h2&gt;

&lt;p&gt;Know your text editor well since the exam is entirely in command line and you can choose your editor available in Linux environment &lt;code&gt;Nano&lt;/code&gt; or &lt;code&gt;Vim&lt;/code&gt; and I chose &lt;code&gt;Vim&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;And, I'm one of those who never liked &lt;code&gt;Vim&lt;/code&gt; before 🙄 and that was about to change.&lt;br&gt;
I spent good few days to practice Vim and learn all the necessary shortcuts.&lt;/p&gt;

&lt;p&gt;Here's my &lt;code&gt;.vimrc&lt;/code&gt; config that I used for the exam&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="nb"&gt;syntax&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt;

&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="k"&gt;nu&lt;/span&gt; &lt;span class="nb"&gt;ic&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="nb"&gt;ai&lt;/span&gt; &lt;span class="nb"&gt;et&lt;/span&gt; &lt;span class="k"&gt;st&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="k"&gt;sw&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="nb"&gt;pt&lt;/span&gt;&lt;span class="p"&gt;=&amp;lt;&lt;/span&gt;F2&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;syntax on&lt;/code&gt; - good for syntax highlighting&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nu&lt;/code&gt; - shows line numbers&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ic&lt;/code&gt; - ignore case while searching&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;is&lt;/code&gt; - incremental search&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ai&lt;/code&gt; - auto indent&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;et&lt;/code&gt; - expand tabs to spaces&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;st=2&lt;/code&gt; - indent using 2 spaces when you use tab&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sw=2&lt;/code&gt; - shift width 2 spaces&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pt=&amp;lt;F2&amp;gt;&lt;/code&gt; - paste toggle when you press F2 key&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All these options are helpful when writing yaml definition files, copying yaml configurations from docs, searching, etc&lt;/p&gt;

&lt;p&gt;I took few &lt;code&gt;.vimrc&lt;/code&gt; options from &lt;a href="https://blog.codonomics.com/2019/09/essential-vim-for-ckad-or-cka-exam.html"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Imperative commands
&lt;/h2&gt;

&lt;p&gt;There are 2 ways to create resources in Kubernetes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The &lt;strong&gt;declarative&lt;/strong&gt; way with yaml and applying the configuration with &lt;code&gt;kubectl apply&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For example you have the following yaml config to create a pod names &lt;code&gt;nginx.yaml&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="highlight yaml"&gt;&lt;code&gt;  &lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;v1&lt;/span&gt;
  &lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Pod&lt;/span&gt;
  &lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;nginx&lt;/span&gt;
  &lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;containers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;nginx&lt;/span&gt;
      &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;nginx&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;To create the nginx pod you run the command &lt;br&gt; &lt;code&gt;kubectl apply -f nginx.yaml&lt;/code&gt;&lt;/p&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Imperative&lt;/strong&gt; way will create the resources without explicitly creating the yaml file.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The same nginx pod can be created using  &lt;code&gt;kubectl run nginx --image=nginx&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Get good with creating resources the imperative way. This will save you a lot of time during the exam.&lt;/p&gt;

&lt;h2&gt;
  
  
  kubectl aliases
&lt;/h2&gt;

&lt;p&gt;Create kubectl aliases so that you don't have to type the entire command.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Remember you'll have 120 minutes to answer 19 questions, ~&lt;strong&gt;6.3 minutes/question&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My aliases. And make sure you add them to the &lt;code&gt;.bashrc&lt;/code&gt; file as well&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alias k=kubectl
alias kaf='k apply -f'
export do=‘—dry-run=client -o yaml’
alias kdr='k create $do’ # kubectl create resource with dry run
alias kdrp='k run $do’ # kubectl run pod with dry run
alias kn='k config set-context --curent --namespace' # set namespace
alias c=clear
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;So, if you had to create a deployment with dry run option you would just do &lt;code&gt;kdr nginx --image=nginx&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Understand the basics of kubernetes and the different ways to create and edit a resource. There would be questions around editing an existing deployment/pod.&lt;/li&gt;
&lt;li&gt;You will have access to kubernetes documentation and get good at searching the documentation&lt;/li&gt;
&lt;li&gt;Familiarity around listing resources for debugging purposes

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;kubectl get &amp;lt;resource&amp;gt; -o wide&lt;/code&gt; for listing additional details on the resource in the current namespace&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;kubectl get &amp;lt;resource&amp;gt; --all-namespaces&lt;/code&gt; for listing resources across all namespaces&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;kubectl get &amp;lt;resource&amp;gt; -o yaml&lt;/code&gt; gets the resource's yaml&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Describe and Explain commands are your best friends &lt;code&gt;kubectl describe pods my-pod&lt;/code&gt; &lt;code&gt;kubectl explain pods&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;For a quick glance kubernetes &lt;a href="https://kubernetes.io/docs/reference/kubectl/cheatsheet/"&gt;cheatsheet&lt;/a&gt; is quite helpful&lt;/li&gt;
&lt;li&gt;Always save a copy of the resource's yaml before deleting it&lt;/li&gt;
&lt;li&gt;Know your text editor well and definitely configure shortcuts for quick access&lt;/li&gt;
&lt;li&gt;Get familiar with basic linux commands like creating a file, appending to an existing file, etc&lt;/li&gt;
&lt;li&gt;Get good with creating resources the imperative way&lt;/li&gt;
&lt;li&gt;Try to attempt all the questions. Don’t spend too much time on one question&lt;/li&gt;
&lt;li&gt;Skip the questions with weight &amp;lt; 3% if it takes a long time&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My exam experience
&lt;/h2&gt;

&lt;p&gt;Congratulations! You almost made it.&lt;/p&gt;

&lt;p&gt;Now that I had prepared for several months, I felt I was ready for the exam. So, I booked a date.&lt;/p&gt;

&lt;p&gt;Come exam day, fed my dog, logged in early and waited for the proctor to finish the formalities.&lt;/p&gt;

&lt;p&gt;Once I got the green signal, the proctor released the exam.&lt;br&gt;
Usually you'd see the questions on the left hand side and the in-browser command line on the right hand side where all the magic should happen.&lt;br&gt;
Unfortunately, once I started typing on the command line, it went blank and I couldn't see what I typed or the result of the command.&lt;/p&gt;

&lt;p&gt;I thought something's wrong with the exam environment and explained this to the proctor and they gave me a new exam environment.&lt;br&gt;
And again the same experience and now I can see myself panicking a bit when I saw the time remaining 😱&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/1FMaabePDEfgk/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/1FMaabePDEfgk/giphy.gif" alt="this_is_not_fine"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was using an older version of MacBook Pro (2011) High Sierra (Don't you judge me!)&lt;br&gt;
Luckily I had a chromebook and I asked the proctor if I could switch laptop real quick and they agreed! 😄&lt;/p&gt;

&lt;p&gt;Logged in real quick on my chromebook and after completing the formality, off I went.&lt;br&gt;
I wasn't able to attend all the questions but I was confident on the ones I did.&lt;/p&gt;

&lt;p&gt;Finally, the result came after couple of days and I had passed the exam!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/Is1O1TWV0LEJi/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/Is1O1TWV0LEJi/giphy.gif" alt="celebrate"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would encourage you to try and use the latest mac/laptops or one that isn't old as mine!&lt;/p&gt;

&lt;h4&gt;
  
  
  I wish you Good luck on your exam!
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/1xVbRS6j52YSzp9P7N/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/1xVbRS6j52YSzp9P7N/giphy.gif" alt="you_got_this"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Leave a comment on your experience.&lt;/p&gt;

&lt;h4&gt;
  
  
  Keep calm and kubectl ✌️
&lt;/h4&gt;

</description>
      <category>ckad</category>
      <category>kubernetes</category>
      <category>k8s</category>
      <category>experience</category>
    </item>
  </channel>
</rss>
