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/