Kubernetes Architecture and Components

Kubernetes Architecture and Components

Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. The architecture of Kubernetes is designed to be highly scalable, fault-tolerant, and extensible.

Components of Kubernetes :

  1. Master Node

The master node is the control plane of Kubernetes. It consists of several components as follows:

  • API Server: Kube API server is the front end of the control plane. It enables users and applications to interact with the cluster.

  • etcd: It is a distributed key-value store that stores the metadata and status of the cluster.

  • Kube-Scheduler: The scheduler assigns workloads to the available nodes in the cluster based on resource requirements and other policies. It handles pod creation and management.

  • Controller Manager: It makes sure that the actual state of the cluster matches the desired state. It includes controllers for replication, endpoints, and services.

  1. Node

Nodes are the worker machines that run containerized applications. They are managed by the master node and can be added or removed dynamically as needed. Each node runs the following components:

  • Kubelet: It is responsible for managing the state of the node and monitoring the status of pods and reports to the Kube API server.

  • Kube-proxy: The kube-proxy is responsible for network routing within the cluster.

  • pods: pods are the smallest deployable units in Kubernetes. They contain one or more containers that share the same network namespace and storage volumes.

Replica sets:

ReplicaSets are used to ensure that a specified number of replicas (i.e., identical copies) of a Pod are running at any given time. ReplicaSets are responsible for maintaining the desired number of replicas even if some of them fail or are terminated.

Deployment:

Deployment provides declarative updates for pods and replica sets. this provides a self-healing mechanism to address machine failure or maintenance.

Services:

A Service is an abstraction that provides a stable IP address and DNS name for a set of Pods. Services enable communication between different parts of your application, both within and outside of the Kubernetes cluster.