Kubernetes Architecture Explained

Vipul Kumar
3 min readNov 26, 2024

--

πŸ”§ Control Plane β€” The control plane manages the overall state of the Kubernetes cluster. It includes components like kube-apiserver, etcd, kube-scheduler, and kube-controller-manager, which handle tasks such as API management, data storage, scheduling, and running controller processes.

πŸ–₯️ Worker Nodes β€” These nodes run the application workloads. Each node hosts components like kubelet, which ensures containers are running, and kube-proxy, which manages network rules for service communication.

πŸ“¦ Container Runtime β€” This is the software responsible for running containers on each node. Kubernetes supports various container runtimes such as containerd and CRI-O.

🌐 Networking β€” Kubernetes uses kube-proxy to maintain network rules and enable communication between services and pods. Some network plugins can replace kube-proxy with their own implementations.

πŸ”„ Addons β€” Kubernetes can be extended with addons like DNS for service discovery, a web UI for management, and monitoring tools for resource usage and logging.

Control Plane Components

πŸ–₯️ kube-apiserver β€” Acts as the front end for the Kubernetes control plane, handling all REST requests for modifications to the cluster.

πŸ”‘ etcd β€” A consistent and highly-available key-value store used to store all cluster data, ensuring data consistency and availability.

πŸ“… kube-scheduler β€” Responsible for assigning newly created pods to nodes based on resource requirements and constraints.

πŸ”„ kube-controller-manager β€” Runs various controllers that regulate the state of the cluster, such as node and job controllers.

☁️ cloud-controller-manager β€” Manages cloud-specific control logic, integrating Kubernetes with cloud provider APIs for tasks like load balancing.

Node Components

πŸ”§ kubelet β€” An agent that ensures containers are running in a pod, maintaining the desired state of the application.

πŸ”— kube-proxy β€” Implements part of the Kubernetes Service concept by maintaining network rules for communication between pods.

πŸ› οΈ Container Runtime β€” Manages the execution and lifecycle of containers, supporting various implementations like containerd and CRI-O.

πŸ“‘ Networking β€” Each node requires a network proxy to ensure service API behaviors are available, with some plugins offering their own solutions.

πŸ” Monitoring β€” Nodes can be equipped with monitoring tools to track resource usage and ensure efficient operation.

Kubernetes Addons

πŸ” DNS β€” Provides cluster-wide DNS resolution, essential for service discovery within the cluster.

πŸ–₯️ Web UI (Dashboard) β€” A web-based interface for managing and troubleshooting applications and the cluster itself.

πŸ“Š Container Resource Monitoring β€” Collects and stores metrics about container performance, offering insights into resource usage.

πŸ“ Cluster-level Logging β€” Captures and stores logs from containers, aiding in debugging and monitoring.

πŸ”§ Flexibility β€” Kubernetes allows for the deployment of various addons to extend functionality, adapting to different use cases.

Read On LinkedIn or WhatsApp

Follow me on: LinkedIn | WhatsApp | Medium | Dev.to | Github

Originally published at https://dev.to on November 26, 2024.

--

--

Vipul Kumar
Vipul Kumar

Written by Vipul Kumar

A passionate software developer working on java, spring-boot and related technologies for more than 4 years.

No responses yet