Skip to content
atlas

Kubernetes

Also known as: K8s

The most widely used open-source system for container orchestration, first built at Google and released in 2014.

Draft - this entry has not been reviewed yet.

Read the full article →

Formal

An open-source system that runs containers across a group of machines; users describe the wanted state in files, a control layer keeps working to make the real state match, and pods are the smallest unit it places and runs.

In plain English

Like a thermostat for software - you set how many copies should be running, and it keeps adding or removing them until reality matches.

In practice

The operations team at a hospital region asks for three copies of the appointment booking service; when one machine dies at night, Kubernetes restarts the lost copy on another machine before anyone on call wakes up.

Why it matters

Many cloud platforms now run on it, and its many settings for access and network are a frequent source of cloud misconfiguration.

Technical deep dive

Kubernetes is built around a single REST API. Every object has apiVersion, kind, metadata (name, namespace, labels, annotations, a resourceVersion used for optimistic concurrency), a spec written by the user and a status written by controllers. The kube-apiserver is the only component that talks to etcd; every other component - scheduler, kube-controller-manager, cloud-controller-manager, kubelet on each node - is a client that uses list-and-watch streams (wrapped in "informers" with local caches) to react to changes. A request passes through authentication (client certificates, bearer tokens, OIDC), authorization (usually RBAC plus the Node authorizer), mutating admission, schema validation and validating admission before it is persisted. Admission is where most policy lives: Pod Security Admission, ValidatingAdmissionPolicy written in CEL, and webhooks such as Kyverno or OPA Gatekeeper.

Scheduling happens in two phases: filtering removes nodes that cannot host the pod (insufficient requested CPU or memory, taints, node affinity, volume topology), and scoring ranks the rest before the scheduler writes a binding. The kubelet then asks the container runtime over CRI to create the pod sandbox and containers, while CNI plugins (Calico, Cilium and others) give each pod a routable IP in a flat network. Services provide stable virtual IPs implemented by kube-proxy with iptables, IPVS or nftables rules, or by eBPF in some CNIs; Ingress and the newer Gateway API handle L7 routing. Custom Resource Definitions let anyone add new kinds, and the operator pattern pairs a CRD with a controller that encodes operational knowledge, for example for databases.

The project ships three minor releases a year, and each minor version receives patches for roughly 14 months, so clusters left unupgraded fall out of support quickly; managed offerings (EKS, AKS, GKE) impose their own support windows. Notable breaking changes include the removal of dockershim in 1.24 and of PodSecurityPolicy in 1.25, replaced by Pod Security Admission with the privileged, baseline and restricted profiles.

Default settings are permissive in ways that surprise newcomers. Secrets are stored base64-encoded, not encrypted, unless an EncryptionConfiguration (ideally with a KMS provider) is set on the API server; any identity allowed to create pods in a namespace can read every Secret there by mounting it; service-account tokens are mounted into pods unless automountServiceAccountToken is disabled; all pods can reach all pods until a NetworkPolicy selects them; and audit logging is off until an audit policy is supplied. The CIS Kubernetes Benchmark, NSA/CISA Kubernetes Hardening Guidance and NIST SP 800-190 are the usual audit baselines. Kubernetes implements container orchestration but deliberately leaves build, image supply chain, CI and application-level concerns to other tools.

What to learn first

Everything this builds on, foundations first.

  1. Kernel
  2. →Operating system
  3. →Process
  4. →Container
  5. →Kubernetes

Relationships

Consists of
Pod
Requires
Container

Sources & further reading

Standards & official texts

  • NIST SP 800-190 - Application Container Security Guide · NIST

Official documentation

Where this data comes from

This entry was drafted by an AI from the sources above and has not yet been checked by a person. Treat it as a starting point, and check anything important against the sources.

See the review queueSuggest a correction on GitHubThis term as JSON

Mentioned in

Check yourself

Loading…

Atlas is in beta.