Introduction Of Kubernetes

We are going to discuss things related to Kubernetes in this blog.

Prerequisites

  1. Basic Understanding of Cloud.
  2. Basic Understanding of Docker.

For that you can read my blogs related to docker to understand things easily

Monolithic Architecture

  • In the Monolithic Application, all the components are tightly coupled to each other and run using a single process.
  • It’s very difficult to make some changes in the future when we used monolithic architecture because the components of our application are tightly coupled to each other when trying to modify or introduced new things into the existing component then which may impact all applications.
  • Suppose we have an E-commerce Application and in that, we used multiple components like Login, Posts, and News Feed. In that case when we introduced or change something into one of the components then it will impact the application because our application is tightly coupled and interconnected to each other with single services.
  • If we have deployed this type of application on cloud and in future suppose we need to add somethings into the Posts Component then we require to stop the whole application and it will impact on performance and deliver services efficiently. Also, it’s hard to manage.

Microservice Architecture

  • In the Microservice Architecture, we create our application component that will work independently without being tightly coupled to each other in its own environment.
  • Also, we easily communicate with each other with the help of API Gateways and something like that.
  • So, basically, when we used microservices they will be running their own environment and they will not impact each other when we changed something in one of the services.
  • Also, it’s easy to manage while our application is in a development phase, each developer will work independently on each service, and because of that, it is easy to manage and integrate.

This is all about the types of architecture which are used by companies as per their requirement.

So, suppose if we developed our application after creating an individual microservice and deploying it on the cloud container registry using Docker, then it will be helpful for us and it will improve the efficiency of our web application.

Then Kubernetes come into the picture to handle all the things related to a container that we used to run our application, also it has a good feature to manage all the things related to the application, so we took that one by one.

  • Kubernetes is the Container Management Orchestration Tool which is developed by Google for managing their own microservices across the different clusters.
  • Kubernetes also called K8s, basically is Numeronym Standard which is used since the 1980s. For Example, In the K8s there are 8 words in between K and S like that.
  • Google developed an internal system called Borg and later on, named Omega which they use to Orchestrate the Data Center.
  • In 2014, Google was introduced Kubernetes as an Open Source
  • Kubernetes is a tool that automates container deployment, load balancing, and auto-scaling. It will manage all the containers which are running in different environments.

Before Container Orchestration Platform

  • Containers cannot Communicate with each other in large volumes.
  • Autoscaling and Load Balancing are also not possible. For Example, If we run multiple containers and then we want to increase and decrease the no of containers then for that we need to do some manual tasks using a command-line tool, and it's not efficient in larger scenarios.

Feature of Kubernetes

  • Orchestration Support
    Kubernetes provides a cluster to manage multiple containers which are running in different environments.
     
  • Auto Scale Application
    It will auto-scale the application as per our requirements and network traffic.
     
  • Automate the Deployment
    Using Kubernetes, we Automate our Deployment Process using different cloud provider services.
     
  • Fault Tolerance
    It will manage all the things related to the container, suppose our container is running under different nodes and pods and Kubernetes found one of the pods, and the container stops working then it will manage incoming network traffic.
     
  • Load Balancing
    It will balance the load of our application using different nodes and pods which are in running mode.
     
  • Platform Independent
    It will manage all types of applications that are running under a different environments like virtual, cloud, and physical machines.
     
  • Health Monitoring
    It will manage the health of containers that are running under different types of pods.
     
  • Rollback
    We are also able to roll back the application version using Kubernetes.
     
  • Batch Execution
    We are also able to execute some functionality simultaneously and parallelly.

Cloud Service Provider

There are many cloud service providers which provide Kubernetes services.

  1.  Azure Kubernetes Service (AKS)
  2. Google Kubernetes Service (GKS)
  3.  Amazon Elastic Kubernetes Service (Amazon EKS)

 So, these are the different cloud providers which provide Kubernetes-related Services.

I Hope You Understand the Basics of Kubernetes.

Happy Coding!