Tech Insights

Kubernetes Fundamentals

Kubernetes is not magic and it is not optional folklore. It is one good idea, applied relentlessly, and once you see it the whole platform falls into place.

Kubernetes cluster orchestrating containers

TL;DR

Kubernetes looks like a wall of YAML and jargon, but it rests on one idea: declarative reconciliation. You declare the state you want, and controllers continuously work to make reality match. Pods, Deployments and Services all express that idea, which buys self-healing, scaling and safe rollouts.

On this page

The one idea behind all the YAML

Newcomers to Kubernetes usually meet it as a wall of YAML and a glossary of intimidating nouns: Pods, ReplicaSets, Deployments, Services, Ingresses, ConfigMaps, PersistentVolumeClaims. It feels like a lot, and the standard reaction is to memorize incantations and hope. That is the wrong way in. Underneath the vocabulary, Kubernetes is built on a single idea repeated everywhere, and if you grasp that idea first, the nouns stop being a list to memorize and become obvious consequences.

The idea is declarative reconciliation. You do not tell Kubernetes to do things. You tell it what you want to be true, and the system continuously works to make reality match. You say “three replicas of this image”; you do not say “start a container, and if it dies start another, and if a node fails move it.” The wanting is your job. The doing is the platform’s job, forever, in a loop.

Why imperative does not scale

Plain Docker is imperative. docker run starts a container. docker stop stops it. This is perfectly fine until the day reality intrudes: the process crashes overnight, traffic spikes and you need five copies, a machine dies, you want to ship a new version without downtime. Every one of those events demands a human, or a brittle pile of shell scripts, to issue the next command at the right moment.

Imperative systems break because they assume the operator is present and the world is static. Production is neither. The world drifts constantly, processes die, nodes fail, demand changes, and someone has to keep dragging the system back to where it should be. Reconciliation automates that someone. The control loop never sleeps, never forgets, and treats “a Pod died” not as an incident requiring a page but as a routine gap to close.

How the parts express the same idea

Once you accept reconciliation, the architecture explains itself. Somewhere you need to store what you want: that is etcd, the cluster’s source of truth. You need a single door through which all desires and observations flow: that is the API server. You need workers that report actual state and carry out instructions: those are the kubelets on each node. And you need a swarm of controllers, each watching one kind of object, each comparing desired to actual and acting to close the gap. The scheduler is just the controller that answers “which node should this Pod run on.” Nothing in the control plane is exotic; every component is there to support one loop.

The workload objects are the same idea at different altitudes. A ReplicaSet reconciles a count: keep N Pods alive. A Deployment reconciles a version: move from the old ReplicaSet to the new one at a controlled pace, and keep the old one so you can reverse instantly. A Service reconciles reachability: maintain a stable address that always points at the current, healthy set of Pods, even as individual Pods come and go. A PersistentVolumeClaim reconciles storage: I asked for five gigabytes, bind me to something that provides it. You are never managing the moving parts directly. You are stating an intent and letting a controller chase it.

What this buys you

This is why Kubernetes can offer self-healing, zero-downtime rollouts, instant rollbacks, and autoscaling without any of them being a special feature. They are all the same mechanism. Self-healing is reconciling a replica count after a failure. A rolling update is reconciling toward a new template gradually. A rollback is just declaring the old state desired again. Autoscaling is a controller that adjusts the desired count based on load. Once the loop exists, capabilities are cheap; you mostly add new controllers that want new things.

It also explains the platform’s failure modes. When a Pod is stuck Pending, no controller is lying to you, the scheduler simply cannot find a node that satisfies what you asked for. When a rollout hangs, a readiness probe is reporting that the new Pods are not actually ready, so reconciliation correctly refuses to proceed. The system is almost always doing exactly what you told it; debugging is usually discovering that what you told it was not what you meant. That is why the seasoned reflex is kubectl describe and reading the Events: you are asking the loop to show its work.

How to learn it

So resist the urge to memorize YAML keys first. Internalize the loop. Every time you meet a new object, ask three questions: what state does this object describe, which controller watches it, and what does that controller do to reconcile? Pods, Services, Ingresses, ConfigMaps, autoscalers, the entire growing ecosystem of custom resources, all answer the same template. The YAML is just the form you fill in to register a desire.

Kubernetes earned its reputation for complexity honestly; there is a lot of surface area. But the core is small and humane: describe what you want, and trust a tireless loop to make it so. Learn that, build the muscle on a local cluster, and the rest is detail. The platform stops feeling like magic and starts feeling like what it is, a very stubborn machine that refuses to let reality stay broken.

Key takeaways 5

  1. Kubernetes is built on declarative reconciliation.
  2. You describe desired state; controllers make reality match it.
  3. Imperative scripts don't scale to many services and failures.
  4. Pods, Deployments and Services all apply the same idea.
  5. The payoff is self-healing, scaling and controlled rollouts.

Watch & learn

What is Kubernetes | Kubernetes explained in 15 minsTechWorld with Nana · YouTube

Frequently asked questions

What is Kubernetes?

Kubernetes is an open-source platform that orchestrates containers across a cluster of machines, handling deployment, scaling, networking and self-healing of applications.

What is the difference between a Pod and a Deployment?

A Pod is the smallest unit, one or more containers running together. A Deployment manages a set of identical Pods, keeping the desired number running and handling rolling updates.

Do I need Kubernetes?

Not always. Kubernetes shines for many services that need scaling and resilience. Small apps are often simpler on a single server, a PaaS or managed container services.

Tech InsightsProjects & Practice#kubernetes#orchestration#containers#devops#cloud-native

Comments

No comments yet. Start the conversation.

Comments are reviewed before they appear. Be kind; one link max.

Go deeper with the free masterclass

Workshop, PDF handbook and curated resources for “Kubernetes Fundamentals”.

Open AL Academy ↗
Keep reading

Related articles