Kubernetes for Beginners (basic part). Why need of Docker / K8's.....
Tags: kubernetes, beginners, devops, docker
Published: 2020-11-22 16:13:59

# Basic Intro that you should Know….

Before begin with Kubernetes, must to know about Docker. As Docker is container whereas Kubernetes is container orchestration or container management. To know about Docker refer to this link. This course is mainly for **beginners**. Course is divided into 3 parts. This part is a basic intro & next 3 part will be about Kubernetes only. I know you all are highly excited and curious to learn about Kubernetes but I will recommend all readers not to finish in one go. Take a time to complete this topic. It's not a programming language or something that you have studied before which can help you to relate. It's a completely new topic for you all. You will come across many new terms in this course, I  tried my best to make you familiar with new terms but then also if you don't understand just Google it. I have written this course keeping in my mind especially for beginners only in a simple and easy language with relatable examples, it will definitely help you to understand. Now let's start the **Basic Intro part** course…….

#What is Docker & Why we need Docker?
Have you ever face this problem that your friends application isn't running on your pc though it's working fine on your friend pc. I think your answer would be 'Yes'. It was one of the major problem in DevOps(Developer engineer + operation engineer) fields. And it leads to wrong perception between them. But why application doesn't run on your pc ?  It's because the application needs all dependencies required to run the application. Now how to sort out with this problem ??  So, here you have two option to run application, one is you have to install all dependencies on your pc that are required to run the application. And this is very frustrating as well as time taking part. Second is to run the application without installing all dependencies on your laptop and run it. Now, here comes the role of Docker. I know you all prefer to go with second part i.e. Docker. Let's see the definition of Docker. It is a tool which run your application with all dependencies required to run your applications in a isolated environment. You simply needs to make Dockerfile(file consist of all dependencies required to run your application) and you simply need to run this Dockerfile. And docker will automatically install all dependencies as per written in Dockerfile.  

#Why we need Kubernetes ?
Assume that your application became popular in a way that everyone visits your application daily, then you can't handle traffic with 1...100 containers. Now you have to handle more containers at a time. Required number of containers totally depends on traffic. And you can't handle these containers manually. And to handle many containers at a time you need Kubernetes.

Let's take an example to understand it in more details. You all know CBSE website . During normal days hardly anyone visit to CBSE website, therefore traffic is less. So, it's a easy job to run only few containers(less than 100 containers) at a time and handle them manually. But assume that Class 12th result is declared then everyone start visiting to that website, due to which traffic increases (everyone visits to website) exponentially. Now if you want that your website work properly with increasing traffic then you need to increase containers ( more than 100 or thousand, depends on traffic). And if you don't increase containers, server will remain down till the traffic becomes normal or traffic goes down. And one more thing you should know that 
maintainer, who is maintaining website can not handle more than 50 container(it's maximum) at a time. There must be question in your mind that "Is there any solution for the same". Yes, and it's a Kubernetes.

#What is Kubernetes ?
Kubernetes is automation tool which manages your container, deploys your container, scale your container(increases containers with increase in traffic and decrease containers with decrease in traffic) and many more thing it does. In above CBSE example if there is a Kubernetes, then it will automatically increases containers as much as you want within a second and also shifts the traffic. It will not let your website goes down. Websites work smoothly with independent of traffic increases in the presence of Kubernetes. It increases as well as decreases containers depending on traffic in the website. It will take care of all the things. Now, let's see in detail about it. Kubernetes consist of cluster of nodes. It consist of Master Node as well as Worker Nodes. Cluster refers to group of one or more worker nodes or nodes.

##Some Facts you should know:-

A single Node (Node refers to a single Laptop or PC or a machine) that can run up to 1024 containers in it. Not more than that. For running more container we need another Node. Now let's suppose we need to run 3000 containers, then we need 4 nodes ( 3 Node or 3 worker Node + 1 master Node). And there must be one Node assigned as Master Node which will manage these nodes.

So, Finally we can conclude that  "Docker creates Container and Kubernetes manages container ".
This is basic intro part. It consist of three parts. From next part Kubernetes will starts.