Do you want to learn Kubernetes, but you don't know where to start? The path is steep way too long and full of obstacles and challenges. You don't know what to learn first, and how you can learn it. You are not alone; I have been there too.
Based on Nana's video, these are my takeaways and notes.
I agree with Nana on one thing, the best way to learn Kubernetes is by following a roadmap, but the roadmap is not the same for everyone, I am going to share with you my thoughts on how to learn Kubernetes, and adapt Nana's roadmap to my own experience and knowledge, mainly focused on developers because Kubernetes is not only for administrators, and DevOps teams, developers are struggling to learn Kubernetes, and I think it is important to have a roadmap for developers.
Why Kubernetes? This is the first question we need to ask ourselves.
It depends on your WHY, your goals, and your current knowledge, if you are starting from scratch and you don't know anything about Kubernetes I am going to share with you how I think the roadmap should be, and I hope it helps you to learn Kubernetes.
Small parenthesis here:
Do you know the Golden Circle defined by Simon Sinek? If not, I recommend you check it out. It is a great tool to help you find your WHY.
closing parenthesis.
Let's go back to the WHY Kubernetes question.
The answer is simple: It's the backbone of modern cloud-native development, and with it, you'll be only focused on crafting your products, forget about the WHAT and HOW.
UPDATE: Another (important) parenthesis ๐ซฃ
After posting the article I ended up watching this video about the Concepts that you MUST know before Learning Kubernetes, it's worth mentioning because there are a few steps that you need to take before starting the Kubernetes journey, these are:
Containerization (like Docker)
Cloud Basics (Providers: AWS, Azure, GCP; Concepts: Virtualization, OpenStack)
YAML
Networking Basics - Networking Full Course OR AWS Networking For Programmers
Command Line Interface (CLI/Linux)
If you already have the basics, let's close the parenthesis... and continue.
Breaking down Kubernetes
๐๐๏ธ Let's break down Kubernetes using the drop shipping analogy with Amazon Prime as our logistics partner.
Why: Imagine you're an online store owner with dreams of conquering e-commerce. You want to sell products without keeping a massive warehouse worldwide โ that's where drop shipping swoops in with Amazon Prime holding you back. And just like that, Kubernetes steps onto the stage to help you manage, ship, and scale your virtual goods with finesse. It's all about keeping your digital shelves stocked and your customers happy.
How: Hold onto your hats, 'cause here comes the drop shipping guru. Kubernetes isn't just any old middleman. It's like a super-efficient dispatcher, juggling a fleet of suppliers and making sure your products (containers) get to your customers (users) pronto; it's like having Amazon Prime's logistical prowess at your fingertips. Think about it โ Amazon Prime coordinates a web of suppliers, distribution centers, and routes to get products to customers at warp speed. Similarly, Kubernetes juggles your containers, assigns resources, and adapts on the fly, just like a logistical virtuoso. Talk about a smooth operator! (- song reference)
What: Alright, time to pop the hood and see what's under it โ Kubernetes hands you the keys to automation kingdom. You can ramp up your online shop's capacity when demand surges, manage your "virtual inventory" (applications) without a hitch, streamline your "delivery network" (networking), and even do product swaps (updates) seamlessly. It's like having Amazon Prime's logistical brilliance but for your tech stack, that lets you focus on wowing your customers.
So there you have it, Kubernetes โ the drop shipping maestro of the tech world. Just like how drop shipping revolutionized e-commerce, Kubernetes does the same for your applications, making sure they're delivered on time, every time. ๐๐
Getting back to Nana's roadmap
Getting back to Nana's roadmap, I think it is a good one, but I would tweak a few things to it.
๐ Learning about Kubernetes components and their functions is essential for administrators to manage and troubleshoot Kubernetes clusters effectively, but IMO, for developers, it is not necessary to know all the components and their functions. We need to keep laser-focused on the components that are relevant to our work so that we can learn more efficiently and productively. Later, we can learn more about the other components, but at the beginning, let's focus on these 3 things:
๐ Learning the kubectl
command line interface is crucial for administrators and product engineers to perform various actions in a Kubernetes cluster.
๐ Troubleshooting skills and knowledge of kubectl
commands are essential for resolving challenges and issues when working with Kubernetes components and applications.
And from the Kubernetes concepts, as a developer, I would focus on these components:
Kubernetes Core Concepts
Pods
Services
Namespaces
ConfigMaps
Secrets
PersistentVolumes
PersistentVolumeClaims
Deployments
StatefulSets
DaemonSets
Jobs
CronJobs
Ingresses
NetworkPolicies
ResourceQuotas
LimitRanges
HorizontalPodAutoscalers
PodDisruptionBudgets
PodSecurityPolicies
PodTemplates
ReplicationControllers
ResourceQuotas
LimitRanges
HorizontalPodAutoscalers
PodDisruptionBudgets
PodSecurityPolicies
PodTemplates
ReplicationControllers
Kubernetes Core Commands
kubectl
kubeadm
helm
istioctl
kustomize
devspace
oc
Kubernetes Core Components
API Server
Controller Manager
Scheduler
etcd
kubelet
kube-proxy
cni
You see, still a lot of components to learn, but I think we can even laser-focused on following a few ones to be even more efficient!
Pods
Services
Namespaces
ConfigMaps
Secrets
PersistentVolumes
PersistentVolumeClaims
Deployments
StatefulSets
DaemonSets
Jobs
CronJobs
I will give you the tool to forget about the HOW and the WHAT and focus on the WHY. K1s is the first Kubernetes Serverless cluster simulator, and it is the perfect tool for learning Kubernetes, even better, as part of the K1s combo, we have K1s Terminal or K1st. No need to install anything and you are ready to go!
Serverless because you don't need to install anything and simulator because it is not a real Kubernetes cluster, but it behaves like one. You can create namespaces, pods, deployments, services, and more. You can even install Helm charts! And the best part is that you can do it all from your local machine, no need to pay for a cloud provider or install anything on your machine. ๐
K1s is a lightweight Kubernetes cluster simulator that lets you simulate deployments and manage Kubernetes clusters from your local machine to a simulated cluster. K1s makes it easy to learn Kubernetes by providing a simple, self-contained environment that you can use to experiment with Kubernetes without having to set up a full-blown cluster. The sidekick, K1st is designed to be easy to use and easy to learn, it takes you from your hand and accompanies you through the dark and hard path to master Kubernetes from zero, so you can get started with Kubernetes right away without fear on breaking anything.
I will be creating more videos and content on how to learn Kubernetes using K1s, so stay tuned, and register to the "La Rebelion's" newsletter to receive the latest updates.
I hope this post helps you to learn Kubernetes, and if you have any questions, please let me know in the comments below.
Happy coding!