This is How You Can Use Kubernetes

Written by

Subscribe

This is How You Can Use Kubernetes

Kubernetes Logo

Introduction

In the beginning, there were single servers, servers on which operating systems ran. They enabled the use of expensive machines by a lot of people using multi-user and multi-task operating systems.

But there were cases in which an application had special needs in terms of libraries or application versions, and therefore it was not possible to run it on the main server. For such occasions, completely new servers needed to be installed, which was expensive, so virtual machines were the solution. Multiple guest operating systems could be run on a host, one where a hypervisor manages physical resources and share them between the guests.

This was a great improvement, but there was still a problem: each virtual machine needed to run its own kernel, drivers and libraries, wasting CPU and memory resources. Many different attempts were made to solve this issue, and during Ycombinator Summer 2010, Docker was presented as a solution to tackle the problem. With Docker, each "virtual machine" was going to share the kernel with the host operating system. This way, you may have less isolation but more efficiency.

But there are still issues to address—one of them is automation. Kubernetes is one of the available tools that can be used to automate the administration of a large number of servers by a small team of system administrators.

What is Kubernetes?

Kubernetes is an orchestrator that takes care of different administrative tasks to manage containerized servers or services. It was released in 2015 and was initially developed by Google. Now, Kubernetes container orchestration is widely known and used by developers.

When to use Kubernetes

From all that has been said till now, it is clear that Kubernetes helps in the following ways:

So, those are some scenarios where Kubernetes needs to be used: when you need to be sure the service will be available no matter the traffic and when you need to stay on a budget while keeping the application up and running. The way Kubernetes manage the resources in a flexible way makes these two targets achievable.

Conditions

To be able to use Kubernetes as discussed in the cases above, you need to create your solution in a way that it can be containerized, with different services running in different containers. The more atomic your application is, the more Kubernetes can help you.

Remember that Kubernetes is all about automation of tasks. It will not solve all your problems. You still need to develop an application that efficiently uses the resources, otherwise, you will end up wasting money. Kubernetes is another tool for you, not the only one.