Kubernetes(What is Kubernetes) — Part(1)

In this tutorial, we are going to learn about Kubernetes from the beginning. Kubernetes is the Greek word for helmsman or captain of a ship. You can get an idea from the logo also.

Kubernetes is also referred to as K8s, and that is because there are 8 characters between K and S.

In this session, I am planning to go very beginning and step by step. This will be very easy and very interesting. So let’s get started.

In this tutorial, I am going to explain to you about,

  • What is Kubernetes
  • What is a Container Orchestration Engine
  • Why do we need Kubernetes?

Kubernetes is a container management tool or container orchestration tool and it is also referred to as a container Orchestration Engine, and I will tell you what is container Orchestration tool in the next step. It was developed by Google Lab and later it was donated to CNCF(Cloud Native Computing Foundation). It is Open Source and written with Go Programming language.

A Container Orchestration Engine/Tool automates deploying, scaling, and managing a containerized application on a group of servers.

Example of Container Orchestration Tools:

Kubernetes, Docker Swarm, and Apache Mesos Marathon

What are containerized applications?

For that let us understand a container platform like Docker. In containerization, a developer packages the application along with all its dependencies and libraries and the entire environment in a box that we called a container. Then this can be shipped using a container platform like Docker and it can be deployed on different systems or platforms.

If you need to get an idea about the Docker Platform refers to this article.

The issue of application working on one system and not working on another system is taken care of using containerization. So Docker is a tool designed to make it easier to deploy and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package.

Now you know what are containers and the process of containerization.

Let’s now see where does Kubernetes come into the picture.

We have seen multiple advantages of using containerization. However, in the real world, we are not using single containers in Large Organizations. Large Organizations use multiple containers for every application. There are 100s of containers that may be used in every application. This is done to ensure availability. So that the application always available and to take care of load balancing because you know a single server has a lot of loads and the load should be distributed properly. We also need to think about scaling up and scaling down based on User Load and therefore we use multiple containers or a cluster of containers.

In a summary in this scenario, we are having so many containers. We have to take care of a lot of processes like,

  • Deploying applications on multiple containers and multiple servers.
  • Scheduling the deployment and other processors.
  • Scaling up and down based on the user’s need or the load of the servers.
  • Load balancing to distribute the load among the servers.
  • Batch execution processors.
  • Rollbacks
  • Monitoring

Now all these Container Management processors will be complicated if you want to do it manually and it will not also be efficient. So we need an automated system, or we need a tool that can take care of all these processors in an automated way. Therefore we have Container Management Tools/Container Orchestration Engines like Kubernetes.

So now we know Kubernetes is a Container Orchestration Engine that takes care of the management of containerized apps.

So by now, you should have a good knowledge of What is Kubernetes, What is Container Orchestration Engine and Why do we need Kubernetes. The next tutorial will go deeper and understand Kubernetes features, Kubernetes architecture, and do some practicals.

Thank You!

Software Engineer at Pearson Lanka || Former Associate Software Engineer at hSenid Software International