My Journey into Kubernetes: CKA and CKAD
In my previous article, I shared how I started from scratch in the IT infrastructure world. My first step was exploring Linux to understand traditional IT environments. Gaining certifications like RHCSA and RHCE pushed me to get comfortable with Bash commands and foundational Linux skills.
However, as I advanced in the IT industry, I realized a major shift was happening. The industry is transitioning from traditional VM-based architectures to containerized (Kubernetes-based) environments. More and more IT professionals, including myself — currently working as a Project Manager — are embracing this shift. I felt it was essential to stop viewing Kubernetes from afar and get hands-on with it, to truly understand how the containerized world works.
Diving into Hands-on Learning
One of my most valuable learning experiences was going through Mumshad Mannambeth’s CKA & CKAD KodeKloud Lab. I skipped the step-by-step course and jumped into the practice labs, solving questions and using online resources to learn by doing.
This approach was eye-opening. Unlike Red Hat Linux exams, which rely heavily on memorization, Kubernetes offers cheat sheets and commands that simplify the process, allowing me to focus on problem-solving rather than memorizing details.
Key Kubernetes Commands and Tips
A few key Kubernetes commands made my learning process much smoother:
- Alias for kubectl: alias k=kubectl
- The --dry-run flag is incredibly useful when creating resources. For instance, you can create a sample YAML file for a pod with the following command:
kubectl run example-pod --image=nginx --dry-run=client -o yaml - This outputs a YAML file, which you can modify and apply later with kubectl apply -f <filename>.yaml
- Another essential command is kubectl explain <resource>. For example: kubectl explain pod.spec.containers This command allows you to dig deeper into each field of a resource, making it easier to understand and write YAML configurations.
Kubernetes Resource Management
Initially, I struggled to fully grasp how Kubernetes manages resources, especially since it abstracts much of the infrastructure. However, as I spent more time with it, I began to appreciate the power of Kubernetes in maintaining the desired state of resources (Pods, Deployments, Services, etc.). For instance, if you delete a Pod managed by a higher-level controller like a Deployment, Kubernetes will automatically recreate it to maintain the desired state. However, to completely remove a resource — whether it’s a Pod, Deployment, or any other Kubernetes object — you need to delete it from its YAML definition using:
kubectl delete -f <filename>.yaml
Alternatively, deleting a Pod directly with:
kubectl delete pod <pod-name>
will only remove the Pod, but if it’s managed by a higher-level controller, the controller will recreate it. This was something I needed to understand early on to avoid confusion.
Final Thoughts on Kubernetes Learning
I’m really satisfied with my Kubernetes learning journey, thanks to KodeKloud Lab. While the Linux Foundation’s Kill Shell mock exam is tough for beginners, the hands-on practice in KodeKloud was much more engaging than memorizing theory. It felt more real and practical.
For those new to Kubernetes, I recommend starting with the CKA (Certified Kubernetes Administrator) certification. It covers the basics, like cluster management and Pod operations, making it easier to grasp Kubernetes. Once you’ve got a good handle on CKA, CKAD (Certified Kubernetes Application Developer) will be smoother, help you deepen your expertise in application deployment and development on Kubernetes.