TR/EN
Blog

What Is Kubernetes? What It Does and How It Works

Published: · 9 min read

What is Kubernetes? In short: an open-source platform that automatically runs, scales and keeps your containers alive across multiple servers. It's often written as K8s, because there are 8 letters between the K and the s. In this post we try to explain what Kubernetes does, its core concepts and whether you actually need it, without drowning you in jargon.

What Is Kubernetes Used For?

Say you've packaged your app as a container with Docker. Running one or two containers on a single server is easy. But as things grow, the questions start: Who restarts a container when it crashes? Who adds more copies when traffic spikes? How do you ship a new version without downtime? What happens to the containers on a server that dies?

That's exactly the work Kubernetes takes over. You tell it "always keep 3 copies of this app running", and it constantly works to make that true. If a copy crashes it starts a new one; if a server goes down it moves the containers to other servers. Everything is managed automatically based on the "desired state" you describe.

A bit of history: Kubernetes was built on Google's experience with Borg, the system it used internally for years. It was open-sourced in 2014 and is now developed under the Cloud Native Computing Foundation (CNCF). The name means "helmsman" in Greek, which is why its logo is a ship's wheel.

Core Kubernetes Concepts

Kubernetes comes with alot of new words at first. Here are the ones you'll run into most:

ConceptWhat it means
ClusterAll the servers Kubernetes manages, together.
NodeA single server in the cluster (physical or virtual).
Control PlaneThe brain of the cluster; decides what runs where and tracks state.
PodThe smallest unit in Kubernetes; runs one or more containers together.
DeploymentDefines how many copies of an app run and how it gets updated.
ServiceGives pods a stable address and spreads traffic between them.
IngressRoutes incoming HTTP/HTTPS traffic to the right service by domain.
NamespaceSplits a cluster into logical sections (e.g. test and prod).
ConfigMap / SecretKeeps settings and sensitive data like passwords separate from the app.
PersistentVolumePersistent disk space that survives pod deletion (for databases).

How Does Kubernetes Work?

Kubernetes is built around "desired state". You write down what you want in YAML files, for example a deployment like this:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: web
          image: nginx:1.27
          ports:
            - containerPort: 80

When you hand this file to the cluster with kubectl apply -f web.yaml, the Control Plane gets to work: it picks suitable nodes, starts 3 pods and then keeps checking. If the actual state drifts from the desired state (a pod crashed, a node went offline), it closes the gap on its own. You don't have to babysit anything.

The Difference Between Docker and Kubernetes

This is one of the most common mix-ups. The two aren't really competitors; they work together:

DockerKubernetes
What it doesBuilds and runs containersManages many containers across multiple servers
ScaleUsually a single serverMultiple servers (a cluster)
Crashed containerLimited to restart policiesRestarts automatically, moves to another node if needed
ScalingManualAutomatic (load-based with HPA)
UpdatesManualZero-downtime rolling updates and rollbacks
Learning curveEasySteeper

So you build your container images with Docker, and run those images in production with Kubernetes.

Kubernetes vs Docker Compose vs Docker Swarm

Docker ComposeDocker SwarmKubernetes
Use caseSingle server, development and small projectsSmall to mid-size clustersAny scale, small to very large
Setup difficultyVery easyEasyMedium to hard (easy with a ready-made setup)
AutoscalingNoLimitedYes
Self-healingLimitedYesYes, advanced
EcosystemSmallSmall, stagnantHuge (Helm, ArgoCD, Prometheus...)
Good forDevelopers, single-server appsSimple distributed setupsMicroservices, growing teams, production

Pros and Cons of Kubernetes

Pros

  • Self-healing: Crashed pods are restarted automatically.
  • Autoscaling: Copies go up when load rises and down when it drops.
  • Zero-downtime updates: New versions roll out gradually and can be rolled back with one command.
  • Portability: The same YAML files run on your own servers or with another provider.
  • Huge ecosystem: With tools like Helm, ArgoCD, Prometheus and cert-manager there's a ready solution for almost everything.

Cons

  • Learning curve: There are many concepts, and the first weeks can be tiring.
  • Setup and maintenance: Building a cluster from scratch and handling certificates and upgrades takes effort.
  • Overkill for small projects: Running Kubernetes for a single website can be like using a sledgehammer to crack a nut.

When Should You Move to Kubernetes?

Kubernetes is probably for you if:

  • Your app is made up of multiple services (microservices),
  • Your traffic fluctuates and you need autoscaling,
  • You release often and want zero-downtime deployments,
  • You want to automate your workflow with CI/CD and GitOps.

For a single WordPress site or a small API, a Docker-ready virtual server running Docker Compose is usually more than enough.

Where Can You Run Kubernetes?

Self-managedManaged Kubernetes at large cloudsSingle node Kubernetes server
SetupOn you (kubeadm, k3s, RKE2...)On the providerDelivered ready
CostServer cost + effortControl plane + workers + traffic feesFixed monthly price
High availabilityDepends on designYesNo (single server)
Good forExperienced teamsLarge, critical workloadsLearning, testing, staging, small–mid prod

If you want to learn Kubernetes or set up a test/staging environment, the fastest way is to start with a ready-made cluster. VECDC Kubernetes Server packages come with Kubernetes pre-installed, start at $6/month, and thanks to automated setup you have your kubeconfig in about 5 minutes. If you need a multi-node, production-ready cluster, our Kubernetes consulting team can design it with you.

First Steps: A Few Basic kubectl Commands

Once you're connected to a cluster, these are the commands you'll use most:

kubectl get nodes                 # list the nodes in the cluster
kubectl get pods -A               # pods in all namespaces
kubectl apply -f web.yaml         # create/update resources from a YAML file
kubectl logs deploy/web           # show the app's logs
kubectl scale deploy/web --replicas=5   # scale to 5 copies
kubectl rollout undo deploy/web   # roll back the last update

Frequently Asked Questions

Is Kubernetes free?

Yes, Kubernetes is open source and free. What you pay for is the servers you run it on and any managed service fees.

Do I need to know Docker to learn Kubernetes?

It isn't required, but it helps a lot. Understanding containers and how to write a Dockerfile makes Kubernetes concepts click much faster.

Can Kubernetes run on a single server?

Yes. In a single node setup the control plane and worker run on the same server. It's a cost-effective option for learning, testing, staging and small-to-mid workloads, but since it's one server it doesn't provide hardware-level high availability.

What does K8s mean?

K8s is short for Kubernetes: the 8 letters between the K and the s are replaced by the number 8.

In Short

Kubernetes is a platform that automatically runs, scales and keeps your containers alive across multiple servers. It takes a while to learn, but on growing projects it seriously cuts down operational work. The nice part is you don't need big infrastructure to start; you can begin learning on a single server. If anything is unclear, drop us a message, were happy to help.

Your Virtual Server, Ready in 5 Minutes

NVMe virtual servers with dedicated resources start at $6/month.

See Packages →