Skip to content

Core Kubernetes Definitions


Node — A Machine

A node is just a machine. Physical server or a VM. It has CPU, RAM, disk. That's it.

Two types:

Node type What runs on it Role
controlplane API server, scheduler, controller-manager, etcd The brain — makes decisions, stores cluster state
worker node Your pods, kubelet, kube-proxy Where actual workloads run

kubectl get nodes
NAME           STATUS   ROLES
controlplane   Ready    control-plane
node01         Ready    <none>

Two machines. That's a cluster.


Cluster — A Group of Nodes Treated as One

A cluster is multiple machines grouped so Kubernetes can manage them as a single pool of resources. Instead of you deciding "run this app on machine 3", Kubernetes looks at all nodes and decides where to place pods based on available CPU/RAM.

What you gain: if node01 dies, Kubernetes reschedules its pods to controlplane (or another worker). The cluster self-heals.

What you don't gain: if the entire cluster goes down, everything goes with it. For real isolation you need multiple clusters.


Namespace — A Logical Boundary Inside a Cluster

A namespace divides one cluster into multiple virtual spaces. Resources in namespace-a are isolated from resources in namespace-b by default.

Think: cluster = hard drive, namespaces = folders. Same hard drive, different folders. If the hard drive dies, all folders go with it — namespaces are not fault isolation.

kubectl get namespaces
NAME                 STATUS
default              Active    ← where things go if you don't specify
kube-system          Active    ← Kubernetes system components
kube-public          Active    ← publicly readable info
kube-node-lease      Active    ← node heartbeats (internal)


Pod — The Smallest Deployable Unit

One or more containers that share a network namespace and storage. Kubernetes schedules pods, not individual containers.

A pod has one IP. Containers inside it talk to each other via localhost.


Deployment — Manages Pods

Declares "I want N replicas of this pod always running." Kubernetes maintains that count — if a pod dies, it creates a new one.

Deployment → ReplicaSet → Pods

Use pods for one-off tasks. Use deployments for anything that should keep running.


Service — Stable Network Endpoint

Pods have ephemeral IPs. A Service provides a stable IP + DNS name that routes to matching pods via label selector. Survives pod restarts, scaling, rescheduling.


Quick Mental Model

Cluster
├── Node: controlplane  (brain)
└── Node: node01        (worker)
      ├── Pod: nginx-abc (ip: 10.244.1.4)
      ├── Pod: nginx-def (ip: 10.244.1.5)
      └── Pod: nginx-ghi (ip: 10.244.1.6)
         Service: nginx-svc (ip: 10.96.45.1, stable)
         Deployment: nginx (desired: 3 replicas)