What Kubernetes is: container orchestration made clear

Kubernetes (K8s for short) is now the backbone of running modern applications at scale. It sounds like a mysterious technology, but the principle is clear. Let us explain what Kubernetes does, how it works and who it actually makes sense for.
What Kubernetes is
Kubernetes is an open source system for container orchestration. It automatically manages the deployment, scaling and operation of containerized applications across a whole group of servers. It was originally developed by Google and is now run by the independent CNCF foundation (Cloud Native Computing Foundation).
Put simply: Kubernetes is the conductor that makes sure containers run where they should, in the right numbers and without downtime.
Why it came to exist
Containers (for example via Docker) pack an application with everything it needs to run. The principle is explained in the article what Docker and containers are.
When you have a handful of containers, you can manage them by hand. When you have hundreds of them, spread across many servers, manual management stops working. You need something to run it for you. That is exactly what Kubernetes is.
Key terms made simple
- Pod is the smallest unit in Kubernetes. It is one or more containers that run together.
- Node is a single server (physical or virtual) in the cluster. What a server is is covered in what a server is, and virtual servers in what a hypervisor is.
- Cluster is a group of nodes that Kubernetes manages together as one whole.
- Deployment is the spec that says how many copies of an application should run and in which version.
- Service is a stable access point to the application that also spreads the load (load balancing) across individual copies.
What Kubernetes provides
- Automatic scaling. Based on load it adds or removes copies of the application, to handle a surge and to save resources.
- Self-healing. When a container crashes, Kubernetes notices it and starts a new one in its place.
- Rolling updates. It rolls out a new version gradually, without downtime, while old copies are still running.
- Load balancing. It splits requests across multiple copies so none of them gets overloaded.
- High availability. When one server fails, the application keeps running on the others.
Who it makes sense for
Kubernetes starts to make sense for large and demanding deployments:
- Large applications with many containers and high traffic.
- Microservices, where the application is split into dozens of separate services.
- Cloud and teams with many services and high availability requirements.
For small deployments Kubernetes is needlessly complex. There a single server or a tool like Docker Compose is often enough. The extra complexity only pays off when you actually use it.
What to keep in mind
Kubernetes is a powerful tool, but it is not free, neither in time nor in skill. It requires understanding, proper setup and maintenance. For smaller projects a simpler solution tends to be more reliable and cheaper to run.
Conclusion
Kubernetes is the standard for running containers at scale. It solves scaling, availability and automation that simply could not be handled by hand across hundreds of containers. For large and demanding applications it is an exceptionally strong tool, for small deployments usually needlessly complex.
If you are interested in modern IT topics and the technology behind websites and applications, follow our blog.
This article is part of our Software and system overview.
Need help with IT?
We will take care of your computers, networks and security - for businesses and households in the Liptov region.
Contact us