Kubernetes is an API server with a set of controllers attached to it. Every object — a Pod, a Deployment, a Service, a quota, a role binding — is a resource served by that API, stored in etcd, and watched by controllers that compare desired state to observed state and act on the difference. Understanding it as an API rather than as a deployment tool explains most of its behaviour: why an object can exist while nothing has happened yet, why the answer to almost any operational question is in a resource's status field, and why extending the platform means adding resource types and controllers rather than adding scripts.
Every request into that API passes through a pipeline worth knowing in order: authentication, then authorisation via RBAC, then admission — mutating webhooks that can change the object, validating webhooks and policy engines that can reject it — and only then persistence. That pipeline is where a platform team actually enforces standards, because a rule applied at admission cannot be forgotten by a team writing manifests.
Scheduling is the second machine. The scheduler filters nodes that cannot run a Pod and scores the rest, using resource requests, node selectors and affinity, taints and tolerations, topology spread and priority. Requests and limits then determine the quality of service class, which determines what gets evicted when a node comes under memory pressure — the mechanism behind most surprising Pod terminations. Around all this sit the pluggable layers that make a cluster a real platform: a CRI runtime, a CNI plugin implementing pod networking and network policy, CSI drivers providing storage classes and volumes, ingress controllers for external traffic, and custom resource definitions with controllers or operators for everything an organisation wants to make declarative.
Why this skill matters now
Kubernetes has passed the adoption phase and entered the consequences phase. Most organisations that wanted a cluster have one; what they lack is anyone who can make it multi-tenant, affordable, upgradeable and safe. The result is a market that no longer rewards deploying an application to a cluster, and rewards heavily the ability to operate the cluster other people deploy to.
The cost dimension arrived suddenly. Clusters make waste easy to create and hard to see: over-generous requests reserve capacity nobody uses, missing autoscaling leaves nodes idle overnight, and without namespace-level attribution no team believes the bill is theirs. Engineers who can right-size requests from real usage, improve bin packing, configure cluster and pod autoscaling and produce per-team cost reporting are solving a problem with an obvious number attached.
Security and governance closed in at the same time. Pod Security Admission replaced pod security policies, network policy became an expectation rather than an option, supply chain controls on images moved into admission, and RBAC is now audited. And upgrades stopped being optional — a supported Kubernetes version has a short life, so a cluster that cannot be upgraded safely is a liability with a date on it. Between platform engineering, cost and governance, the demand has moved decisively from knowing manifests to operating a shared platform.