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.
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.
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.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.