Blog

Kubernetes Architecture

  • (4.0)
  • | 369 Ratings

To understand the architecture of Kubernetes, it is necessary for you to understand what Kubernetes is and what is the primary use of this tool is all about. 

Well, the article will help you understand the basic details about the Kubernetes Architecture below:

Get ahead in your career by learning Kubernetes through Mindmajix Kubernetes Training.

Let us know understand what Kubernetes is and what is the use of containerization?

  • K8s is another name for the Kubernetes. It is classified under open source system category. Few bullet points about Kubernetes in general:
  • With the use of Kubernetes, the software development and maintenance model is completely decentralized. 
  • The use of this tool emphasizes the use of open collaboration process.
  • Peer production is the primary aspect when it comes to open source software category
  • As per the notion, open source means: the blueprints, source code, documentation are freely available and anyone can utilize and build on top of it. I.e. nothing but customization. 
  • Most of the open source products are loosely tracked and evaluated because the participants are not tightly coordinated. Most of the time, the products created or produced using open source platforms gives out an economic value to the market where the participants who have contributed can leverage and at the same time, it is available for individuals who are non-contributors. 

Let’s discuss on Docker and its importance:

Docker was created as a computer program where it is primarily useful for Linux users. The use of Docker is that virtualization can be done at the operating system level. This phenomenon is called containerization.

Related Page: Docker Architecture

Basically, it uses Linux Kernel’s resource isolation feature like kernel namespace and c groups and OverlayFS so that a single virtual machine can be maintained rather than having to maintain multiple machines. 

So let’s understand how Containerization is helpful:

Containerization, as the name itself, suggests that it creates or helps the user to create a certain entity where he/she can perform an action. So containerization is nothing but a feature within an Operating system where it facilitates and uses the Kernel function where multiple user-space instances or spaces can be created. 

So these user spaces are called or given different names, few of them are:

  • Containers
  • Partitions
  • Virtual engines

The concept of containerization has actually bought a lot of uniqueness in terms of how the deployment is carried out in general. This process has helped a lot of developers in order to manage their current deployment processes and reduce the effort of mitigation unwanted risks. So with this concept, the developers get to use different containers for their code so that they can have it more organized also make it granular. 

Related Page: Kubernetes Deployment Vs Kubernetes Services

Going along with this benefit, there is also a risk element that gets into the consideration. As the number of the containers increases, the difficulty of managing and networking with them also increases. So configuring and also scheduling a deployment would take extra care. The networking aspects of the containers are the key to this situation. 

So to effectively work, every application should answer these topics, below is the list of items that we need to look into:

  • Continuous updates/ rolling of updates
  • Load balancers
  • Logging concept should be used across the available components
  • Discovery service utilization
  • Components should be replicated easily
  • Authentication process
  • Constant Monitoring and random checks
  • Auto scalable

Now let’s understand the core components of Kubernetes and also the important aspects of this tool is evaluated in terms of:

  • The roles and responsibilities
  • The usage pattern
  • What are crucial elements?

The above three questions are answered below which will help you understand and also feel comfortable with the topic.

Pod:

First, let’s understand what is a Pod?

Within the group of containers, the tiniest unit where it can be scheduled for a deployment using the K8’s is called as Pod.

So, going back to the Kubernetes, it is capable of managing elastic application which in turn consists of several other services which are often called as microservices. These microservices are tightly coupled so that they work hand-in-hand within a non-containerized setup. 

Few important aspects that you need to know and understand about Pods:

  • The storage, IP address and Linux namespaces are common for the group of containers. 
  • The Pod has comparatively a low lifespan because they are not designed to live long. 
  • The pods are usually created, stored, and destroyed according to the need and the demand. 

Check Out Kubernetes Tutorials

Service:

As discussed, the lifespan of Pods is comparatively less so the IP address associated to the pod also might be tied up and becomes unavailable, which in returns makes it difficult for the communication channel between the micro-services. Imagine a situation or a scenario where your Front-end of the application is interacting with your backend services, it is the same process between the services and the Pods. 

So to effectively manage the communication channel, the use of Service is brought into existence within Kubernetes. So with the use of these services, the pods are executed on proxy services, so that the communication channel is not cluttered, all of it is done via Virtual IP address. 

With the help of this concept, a lot of pods can be exposed and can be later configured for the load balancing used.

Now we understand the concepts of Pods and Services, let us know go through the main components that are available within Kubernetes:

The main components of Kubernetes:

For a complete setup to function as a whole system we have few mandatory components that definitely need to exists and rest of the components are optional. But in general, all together make the entire setup for Kubernetes which in return helps to execute.

Below is a high-level Kubernetes Architecture structure:

Kubernetes Architecture

Let us know understand the components in detail which makes the kubernetes architecture complete. While description the components, let us also go through what are their responsibilities. 

Master Node:

  • The master node is considered as the start point or point of entry of all the admin tasks. 
  • It is responsible for the kubernetes cluster management
  • It helps in having all the worker nodes in line so that all the services can run without any hassle.

API server:

  • All the REST commands are utilized here where the cluster is controlled. 
  • The API Server is responsible to deal and process all the REST requests. 
  • All the validation and execution happens at this point where the business logic is bound to.

etcd Storage:

Within this stage, the data that is stored by K8’s is nothing but

  • Pod/service details
  • What are the different jobs that rescheduled?
  • All the created, deployed, namespaces information is available at this stage.

In a sense, this stage is nothing but a shared configuration stage and service discovery.

Scheduler:

As the name suggests, it is more sort of a scheduling process where all the available pods and services are configured properly and executed. All of this will result in terms of the deployment of a specific process or a service. 

Related Page: Detailed Study On Kubernetes Dashboard

Controller Manager:

The name implies and covey’s the activity of managing the different controllers that are available. Within the master node, different controllers can be controlled and executed according to the need. 

Different controllers that are available, listed below:

  • Replication controller: The main use of replication controller is to keep a check on the available pods within the system. The Replication factor number is actually defined by the user itself. Based on the number, the controller executes a termination process for all extra pods that are scheduled.  
  • Namespace controller: It is another controller which works hand-in-hand
  • Endpoints controller
  • Service accounts controller

Worker Node:

Worker node is nothing but a communication bridge or a channel where it communicates to the master node time to time and assigns the necessary resources to the designated containers so that they are scheduled all the time. 

Pods are executed or run on the worker nodes itself. 

Kubelet:

In a nutshell, kubelet is nothing but a part of worker service. It constantly communicates with the etcd storage to get the required information about the defined services and takes the information back to the master node. Also, it helps in the creation of newly created jobs. 

Kube Proxy: 

As the name itself suggests, the TCP and UDP packets are managed here. 

Kubectl:

It is a common prompt tool. With the help of this, it communicates to the API service, which in turn sends the commands to the master node.

Conclusion:

To gain expertise in this field, it is necessary to make sure that you have the right foundation and good grip on the basic concepts. This combination will be definitely helpful for you to master the concepts. It is good to go through online or in-person coaching sessions with experienced tutors where they can share their knowledge and also stress on core concepts on Kubernetes.

Get in touch with us to know more about the Kubernetes Architecture course and we would be happy to help you out.