# Kubernetes Architecture and Components

Kubernetes is a powerful container orchestration platform that automates the deployment, scaling, and management of containerized applications.

### **Kubernetes Architecture**

At its core, Kubernetes follows a client-server architecture, consisting of the following primary components:

**Master Node (Control Plane)**: Manages the cluster's state, including scheduling, scaling, and maintaining the desired state.

**Worker Nodes**: Machines that run containerized applications, managed by the control plane.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1723902273832/7aacb063-28a6-4d0d-9f40-38d1838a1029.png align="center")

### Kubernetes Components

### Master Node

**<mark>API Server</mark>**

The front-end for the Kubernetes control plane, handling all administrative tasks.

**<mark>etcd</mark>**

A distributed key-value store for storing all cluster data, configuration, and state information.

**<mark>Scheduler</mark>**

Assigns pods to available worker nodes based on resource requirements.

**<mark>Controller Manager</mark>**

Runs controllers to ensure the cluster’s desired state matches the current state (e.g., maintaining the correct number of pod replicas).

**<mark>Cloud Controller Manager</mark>**

Integrates Kubernetes with cloud provider APIs for managing cloud resources like load balancers and storage.

### **Worker Nodes**

**<mark>Kubelet</mark>**

An agent on each worker node that ensures containers are running and healthy.

**<mark>Kube Proxy</mark>**

Maintains network rules on each node, enabling communication between pods and services.

**<mark>Pods</mark>**

The smallest deployable units in Kubernetes, consisting of one or more containers sharing the same network namespace and storage.
