A Story of Kubernetes


One day Mickey was at the train museum where he saw Minnie

Mickey – Hey Minnie

Minnie – Hi Mickey

Mickey – What are you doing here?

Minnie – Exactly what you came here for

Mickey – Okay, but you look lost

Minnie – Yeah, you know I hear about Kubernetes a lot at my office and do not know what exactly it is

Mickey – Do not worry let me tell you

Minnie – Oh great!

Mickey – Let’s sit in the garden

Minnie – Let’s go

Mickey – Okay, Minnie, do you see that train along with the Engine

Minnie – Yeah, now you will say the Engine is Kubernetes that runs the train

Mickey – Not exactly

Minnie – Then what?

Mickey – Imagine the train is running. Suppose there is a huge Robot watching the train

Minnie – That sounds scary

Mickey – Ours is a good robot. He takes care of everything needed to make the train run smoothly

He takes care of all that is required. If more compartments needs to be added, he will do it (scale-up)

If some compartment is damaged or not working, he will replace it

He will ensure all compartments work in coordination

Minnie – Wow

Mickey – Kubernetes does something similar with our applications and their infrastructure

Minnie – So Kubernetes manages application along with its infrastructure

Mickey – You got it

Let’s go and make it more interesting

Minnie – Yeah!

Mickey – Okay Minnie, do you remember earlier we had physical machines (servers) where applications were deployed

Minnie – Yes

Mickey – There was no efficient way of managing or scaling up the applications

Minnie – Yes

Mickey – And the infrastructure on which the application was running was physical machines and difficult to maintain or scale up when the application grows

Minnie – Yeah!

Mickey – So now imagine if you have a process to automate deployment, management, and autoscaling of application along with its infrastructure

Minnie – That will be so cool

Mickey – That is exactly what Kubernetes is for

Mickey – Let’s go in history, many many years ago, there were physical servers or machines used to deploy and run applications

Minnie – Okay

Mickey – This was very expensive and not very efficient as the applications grew larger

Then came Virtualization. We could now run multiple os and platforms on a single server and could set up all the environment needed by the application on a server. It made handling infrastructure better and efficient

Minnie – Great

Mickey – Then came containers. Containers are lightweight units that package the application code along with all its dependencies. Multiple containers can run on an OS

So container is like a unit or box containing not just the application but everything required to run the app

This made maintaining infrastructure very efficient

Minnie – Great to know all this

Mickey – Now as we had lots of containers, we needed some way to manage these containers

Minnie – Yes

Mickey – Here comes Kubernetes, released in 2014 by Google, used to manage containers

That is why it is popularly known as Container Orchestration Platform

Minnie – But what does it actually do

Mickey – Remember the train compartments. Suppose they are containers, each of which has an application along with its environment, and our Robot (Kubernetes) manages these containers

Minnie – Yeah, I need more details

Mickey – Okay to understand that let’s know about these terms

Containers – a unit containing application along with its environment

Pods – a collection of containers

Nodes – A virtual or physical machine to run pods. We have master and worker nodes

Master nodes – manage worker nodes and pods

Worker nodes – host the pods

Clusters – set of nodes (machines) that run applications. A cluster has at least one master node and one worker node

Minnie – I am trying to get this

Mickey – So now imagine if you have a process to automate deployment, management, and autoscaling of application along with its infrastructure

Minnie – That will be so cool

Mickey – That is exactly what Kubernetes is for

Minnie – That sounds nice

Mickey – So Kubernetes will manage all containers, if a container dies, it will replace it, handles load-balancing, etc

Minnie – Great

Mickey – Kubernetes is a container orchestration platform (consists of container management tools) that takes care of managing containers for

deploying
scheduling
scaling
load balancing
batch execution
rollbacks
monitoring

Mickey – So this is the very basics of Kubernetes. With this, you can now dive deep

Minnie – How should I start

Mickey – Can start from here – Kubernetes by Raghav Pal

Minnie – Wow, I have something great to learn this weekend

Mickey – Great, do you want to go home now

Minnie – No let’s just sit here for some time

Mickey – Sure

Minnie – You are my best friend

Mickey – I am always here for you 🙂

about the author more stories

References
https://kubernetes.io/
https://www.spectrocloud.com/blog/kubernetes-for-dummies/

86