Cloud Native 12 min read

Kubernetes Architecture Overview and Detailed Components

This article explains the goals, design principles, and detailed components of Kubernetes architecture, covering its control plane, API server, etcd store, scheduler, kubelet, container runtime, and kube-proxy, and summarizes how these parts work together to provide a scalable, portable, and automated container orchestration platform.

Architecture Digest
Architecture Digest
Architecture Digest
Kubernetes Architecture Overview and Detailed Components

Kubernetes Architecture Goals

Kubernetes is a production‑grade infrastructure for deploying, scaling, managing, and composing containerized applications across hosts. Beyond simple container orchestration, it aims to eliminate the burden of coordinating compute, network, and storage resources, enabling developers to work with containers as the primary unit of operation.

The platform strives to be extensible, plug‑in based, and API‑driven, allowing both end‑users and tool developers to extend its functionality without modifying core source code.

Key Architectural Objectives

Run Anywhere : Consistent functionality on public clouds, private clouds, bare metal, or laptops.

General‑Purpose : Supports stateful, stateless, microservice, monolithic, batch, and edge workloads.

No Full Migration Required : Enables gradual adoption, supporting both cloud‑native and legacy applications.

Scalable : Extensible via well‑defined interfaces.

Automation : Reduces manual effort through declarative APIs and supports advanced orchestration.

Forward‑Looking : Encourages participation of applications in managing the platform itself.

Detailed Architecture

Kubernetes consists of node agents (kubelet) and a cluster control plane (often called the master) whose state is persisted in etcd.

Cluster Control Plane

The control plane is composed of several components that can run on a single master node or be replicated for high availability, and can even be self‑hosted within Kubernetes.

It provides a RESTful API for CRUD operations on persistent resources such as Pods, Services, and Ingresses, and defines higher‑level workload primitives like ReplicaSet, Deployment, Job, CronJob, DaemonSet, and StatefulSet.

Clients and asynchronous controllers interact with the same API resources, which serve as the coordination point and shared state.

API Server

The API server exposes the Kubernetes API, handling REST requests, validation, and persisting objects to etcd. It also acts as the gateway for external clients, performing authentication and serving as a proxy for node and pod communication.

Cluster State Store

All persistent cluster state is stored in an etcd instance, providing reliable configuration storage with watch support for change notifications.

Controller‑Manager

The controller manager runs core controllers that maintain desired state for resources (e.g., namespaces, garbage collection, node lifecycle) and implements higher‑level API logic such as pod scaling.

Scheduler

The scheduler watches unscheduled Pods and assigns them to suitable nodes based on resource availability, quality‑of‑service requirements, affinity/anti‑affinity rules, and other constraints, using the /binding subresource.

Kubernetes Nodes

Each node runs the services required to host application containers and to be managed by the control plane.

Kubelet

Kubelet is the primary node‑side agent that implements the Pod and Node APIs, ensuring containers run as specified and acting as the final arbiter for pod placement.

Container Runtime

Nodes run a container runtime (e.g., Docker, containerd, CRI‑O) responsible for pulling images and running containers, accessed via a standardized Container Runtime Interface to keep the runtime pluggable.

Kube‑Proxy

Kube‑proxy runs on each node, programming iptables (or IPVS) rules to expose Services via virtual IPs and load‑balance traffic to the appropriate backend Pods, with service discovery primarily handled through DNS.

Summary of Core Components

etcd – stores cluster state.

kube‑apiserver – API entry point, authentication, authorization, discovery.

kube‑controller‑manager – maintains cluster state and implements control loops.

kube‑scheduler – assigns Pods to nodes.

kubelet – manages container lifecycle, volumes, and networking on each node.

container runtime – actual execution of containers (CRI).

kube‑proxy – provides in‑cluster service discovery and load balancing.

cloud nativearchitectureKubernetesETCDkubeletContainer OrchestrationControl Plane
Architecture Digest
Written by

Architecture Digest

Focusing on Java backend development, covering application architecture from top-tier internet companies (high availability, high performance, high stability), big data, machine learning, Java architecture, and other popular fields.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.