What is Kubernetes and why does it matter so much

7.99K views

Anyone who works in IT, in any capacity connected to software will have heard Kubernetes more than once.

While the answer is obvious to anyone in the prog/dev space and many people outside, for others it’s really unclear. People keep trying to explain it to me but it sounds like gibberish. please ?

In: 483

25 Answers

Anonymous 0 Comments

As computers became bigger and more powerful – RAM and CPUs, the cost of a single machine for a dedicated app became disproportionate. Both Windows and Linux machines can be shared — you can run multiple apps at the same time. But, if one app misbehaves, it can take down the whole computer.

Virtualisation provides a way to run a machine inside the machine – so you could carve up the machine into 4 quarters, or 2 halves, and run the same apps, but isolated from each other. If one crashes, it wont affect the other.

Virtualisation comes with a cost – and if you run lots of VMs on a machine, then you can waste a lot of resources. Also the resources are dedicated – you cant move the RAM or CPU around to whoever needs it.

Containers is like virtualisation, but the applications run under the same operating system. The apps are isolated, and each container can specify how much memory it wants, how much CPU, disk etc. One can avoid kubernetes and with a bit of scripting, make it easy to launch an application in a container.

As machines get bigger, the DIY approach doesnt work too well. If you have a very big machine, say 100 containers in it, then you could spend too much time managing resources. A good comparison is an 8-bedroom house. You could have 8 occupants, or merge a couple of rooms to make them bigger and reduce the number of people the house can hold.

A runaway app in a container wont crash the machine.

The complexity to run potentially hundreds or thousands of applications, across hundreds, thousands or more machines leads to kubernetes. A standardized way to describe apps – what they need (CPU, Memory, networking, disk) and deny any app from pigging out and threatening the large machine, housing lots of apps.

Add to this, enhanced monitoring, metrics gathering – and you have something that large corporations want. Without VMs or containers, in a large organisation, teams order new hardware, and by the time it arrives, it gets forgotten about. A large organisation can easily lose or waste 30-50+% of the available capacity, yet, new projects are denied budget to acquire new machines.

So, kubernetes is a standardised way – from open-source, to paid contracts/licenses with vendors, to allow fine-gained subdivision of a large arsenal of machines.

(You can run kubernetes at home, on a single machine if you want, but its a lot of overkill unless you are in training, or just want to experiment).

Google for ‘cgroups’ for Linux – and you can use the underlying mechanisms to create your own containers (without kubernetes).

You are viewing 1 out of 25 answers, click here to view all answers.