What is Kubernetes?
Imagine going to a party that serves wine. You thank the host for the party (only because you liked the wine way too much) .
You come home from the party, but you kept thinking about that wine and how that must have been made. You wife sits beside you and dumbs it down for you.
You are now at a vineyard.
Where a farmer works hard to grow grapes. There are a lot of trees where grapes grow. The farmer provides the trees with water and fertilizer.
Each tree contains multiple clusters of grapes, which use the resources that the farmer is providing to grow. Each single grape piece works and grows to make you party look good.
Often trees get destroyed because of stray animals uprooting them. The farmer then plants more trees to compensate for them. The farmer’s hard work and the vineyard’s resources makes the wine taste delicious.
That was an amazing story, but where does Kubernetes come into picture. Duhh!!
How about we replace the following words in the story :
Time for some formal definition :
Kubernetes is an open-source container orchestration that manages containerized workloads and services.
All this is fine, but what problem are we trying to solve using Kubernetes. But before that, we need to know what a container is. After all, there is no point knowing about the farmer if we don’t even know what he is managing.
All your application stuff, the libraries it depends on, dependencies etc etc. are put inside a container. A container is a means to isolate stuff from the rest so that you have better control of them. With containers, the entire environment can be shipped and deployed.
Containers sound great, but as the size of the application grows, we need to worry about the how to deploy those containers at scale.
Obvious Way to deploy a workload :
SSH into Virtual Machines
Start Docker Containers
Buuuuuuuutttttt……
What if :
Container Crashes and Dies
What if the node crashes and dies?
Or worse, what if the node B has a momentary blip
User has to :
Write a monitoring service to monitor the health of the containers, their resource utilization.
“Catch up” any failed nodes that missed the calls.
Write custom logic to recover the node.
In comes the savior Kubernetes, which provides container orchestration. Using Kubernetes API, we can monitor the health of the containers, the resource utilization(CPU, Memory) and replicate the containers to prevent from single point of failures.
It’s time to head to the basics of Kubernetes now. To learn about the basic components of Kubernetes, head to :
I actually needed to understand Kubernetes for work today, and this came in very handy. Thank-you for dumbing it down for me. Great writing, and perfect timing.