Do you know what is Kubernetes? If not then I will explain you and also inform you about working of Kubernetes and its various features so that you can use it accordingly.

What is Kubernetes?

Kubernetes is an portable, extensible and open-source platform which is used for maintaining and deploying a group of containers. Both declarative configuration and automation are made easier by it.
Kubernetes was introduced as a project at Google and it was a successor of Google Borg, which  has same features as Kubernetes.

What is container?

Container is the running image. Image is a package which contains everything for application to work like code and other resources on which application depends.

Why we need Kubernetes?

It is mainly used for scaling resources of applications to handle the request of all users and giving them required result on time.

Architecture of Kubernetes

Its working is based on nodes. It contains two nodes:
  1. Master Node: It controls  all activities in Kubernetes
  2. Worker Nodes: It completes the task which is given by Master node 

Master node Structure:

  • API Server: It is used for talking with the worker nodes and giving them required information.
  • Controller Manager: It is used for gathering information of nodes and sending that to API Server and also useful for changing the current state of cluster to desired state.
  • Scheduler: It is responsible for dispersing workload in the master node and it also tracks the workload on cluster nodes.
  • etcd : It stores the configuration information required by nodes in the cluster.

Worker node components:

  • kublet : It actually runs the pods and updates node status. Starts and stops pods as directed by the Scheduler.
  • kube-proxy: Exposes services and routes network traffic to the proper resource on the node.
  • Container Runtime:  It is used for running and managing containers lifecycle.

How it is working?

Worker nodes handle multiple pods which are actually bunch of containers which are clustered together as a working unit.
Master node contains the definition of pods and how many pods it has to deploy. If any worker node downs it provides that node new pods to work properly.

Master node sends the request to the worker node where containers which are available in pods run and generates the result and send that back to requester.

In this way Kubernetes help us to manage our application.

Features of Kubernetes:

1. Portable and open-source: It is compatible across several platforms and also provides greater flexibility as it is open-source.
2. Workload Scalability: It automatically changes the number of running containers and scales many containers manually. It is easy to add and remove new servers.
3. High availability: It is highly reliable and can be made available in any physical environment.
4. Service discovery and load balancing: It can expose container by using its IP address. If the traffic load is high it balances that and distributes the network for stable deployment.
5. Storage Orchestration: It automatically mounts system storage like local storages.
6. Self healing: It restarts containers if fails, replaces containers and kills them if they do not respond to timely checks.
7. Automated rollbacks: The actual state of container changes to desired state when required.
8. Automatic bin packing: It specifies how much CPU and RAM each container needs.

After explaining the working and various features like workload scalability, high availability, load balancing and other, I have reached to this conclusion that for managing application state Kubernetes is a very good tool.

If you still have any question related to Kubernetes and its working you can put that in comment section and I will answer that as soon as possible.

Comments