Skip to main content

Core Concepts & Cluster Architecture

Kubernetes is a powerful container orchestration platform that automates deployment, scaling, and management of containerized applications. Understanding its core concepts and architecture is essential for effective use and administration.

Cluster

A Kubernetes cluster is the foundation of Kubernetes. It consists of a set of machines (physical or virtual) that work together to run containerized applications. The cluster is made up of at least one control plane (master) and multiple worker nodes.

Node

A Node is a single machine (VM or physical server) in the cluster. Each node runs the necessary services to host application pods. There are two types of nodes:

  • Control Plane Node (Master): Manages the cluster.
  • Worker Node: Runs the application workloads.

Master/Control Plane

The Control Plane (sometimes called the Master) is responsible for managing the cluster. It makes global decisions about the cluster (e.g., scheduling), detects and responds to cluster events, and exposes the Kubernetes API. Key components include:

  • API Server: The front-end for the Kubernetes control plane. All communication (kubectl, other components) goes through the API server.
  • Scheduler: Assigns newly created pods to nodes based on resource requirements and policies.
  • Controller Manager: Runs controllers that regulate the state of the cluster (e.g., node controller, replication controller).
  • etcd: A distributed key-value store that stores all cluster data and configuration.

Worker Node

A Worker Node is responsible for running application workloads (pods). Each worker node contains the following components:

  • Kubelet: An agent that ensures containers are running in a pod.
  • Kube Proxy: Maintains network rules for pod communication and service exposure.
  • Container Runtime: Software responsible for running containers (e.g., Docker, containerd).

etcd

etcd is a consistent and highly-available key-value store used as Kubernetes' backing store for all cluster data. It stores configuration data, state, and metadata, and is critical for cluster operation.

Kubelet

The Kubelet is an agent that runs on every node in the cluster. It communicates with the control plane and ensures that the containers described in PodSpecs are running and healthy.

kubectl

kubectl is the command-line tool for interacting with the Kubernetes API server. It allows users to deploy applications, inspect and manage cluster resources, and view logs.

Namespace

A Namespace is a way to divide cluster resources between multiple users or teams. Namespaces provide a scope for names and are intended for use in environments with many users spread across multiple teams, or projects.


Visual Overview

+-------------------+         +-------------------+
| Control Plane | | Worker Node(s) |
|-------------------| |-------------------|
| - API Server | | - Kubelet |
| - Scheduler | | - Kube Proxy |
| - Controller Mgr | | - ContainerRuntime|
| - etcd | | - Pods |
+-------------------+ +-------------------+

Further Reading