What is Kubernetes?
Kubernetes also known as K8S is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. Kubernetes provides you with a framework to run distributed systems resiliently. It takes care of scaling and failover for your application, provides deployment patterns, and more.
Why Kubernetes?
One of the primary reasons why K8s became so popular is the ever-growing demand for businesses to support their micro service-driven architectural needs.
Microservice architecture helps companies in :
Independently develop and deploy their complex applications by breaking them into small scalable modules.
Help them work in multiple small teams supporting individual application modules, to be developed and deployed with the required speed and agility.
Architecture
Kubernetes has a cluster which contains master and worker nodes. Master node is responsible for taking the task from user and deploy it on worker nodes.
Master Node
The master node is used to manage the states of a cluster. It is actually an entry point for different types of administrative tasks.
Following are the four different components that exist in the Master node:
API Server: This component is responsible for all communication that is from user to master node, master to worker node and vice-versa.
Scheduler: The scheduler in a master node schedules the tasks to the worker nodes. And, for every worker node, it is used to store the resource usage information.
Controller Manager: The Controller manager is also known as a controller. It is a daemon that executes in the non-terminating control loops. The controllers in a master node perform a task and manage the state of the cluster.
ETCD: It is an open source, distributed key-value database. It is a part of a master node that is written in a GO programming language.
Worker Node
The Worker node in a Kubernetes is also known as minions. A worker node is a physical machine that executes the applications using pods.
Following are the three main components that exist in the Worker Node:
Kubelet: kubelet is a primary node-agent of the worker node, which interacts with both node and the container in the given worker node. It communicates to API-Server then master node can talk to worker node.
Kube-proxy: It is a core networking component on each node responsible for maintaining network configuration and rules. It exposes services/pods to the outside world. The main aim of this component is request forwarding.
3. Container Runtime: It is a software that is responsible for running containers. Example → Docker, CRIO, Kubernetes CRI, etc.
Conclusion
In this article, We have only learnt what is Kubernetes, why to use it and it's architecture.
If you enjoyed this article then please share it with your buddies and if you have suggestions or thoughts to share with me then please write in the comment box.
The above blog is submitted under 'Devtron Hacktoberfest 2022' conducted by Devtron. Check out their Github repo and give it a star ⭐️ if you like it. Follow Devtron on LinkedIn, Twitter
Top comments (0)