Skip to main content

What is Kubernetes?

Glossary image
K8s

Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerised applications across clusters of machines. Originally developed by Google and released in 2014, it has since become the industry standard for running containerised workloads in production environments.

To understand Kubernetes, it helps to first understand containerisation. A container packages an application together with all its dependencies into a single, portable unit. Tools like Docker made it straightforward to build and run individual containers, but as applications grew more complex, teams found themselves managing dozens or even hundreds of containers at once. Kubernetes, also informally called K8s (a numeronym derived from the eight letters between "K" and "s"), was designed to solve exactly this problem.

At its core, Kubernetes handles orchestration, meaning it coordinates how and where containers run across a group of servers, referred to as a cluster. The cluster consists of a control plane, which makes decisions about the system, and worker nodes, which are the machines that actually run the containerised workloads. Kubernetes continuously monitors the state of the cluster and takes corrective action when something deviates from the desired configuration, restarting failed containers or redistributing workloads across healthy nodes.

One of Kubernetes' most valued capabilities is its approach to scaling. When traffic to an application increases, Kubernetes can automatically spin up additional container instances to handle the load, then scale back down when demand subsides. This elasticity makes it particularly well-suited for web applications and APIs that experience variable traffic patterns.

Kubernetes also manages how containers communicate with each other and with the outside world. It provides built-in mechanisms for service discovery, load balancing, and rolling updates, allowing teams to deploy new versions of an application without downtime. Configuration and sensitive data, such as API keys or database credentials, can be managed separately from the application code using Kubernetes constructs called ConfigMaps and Secrets.

For development and operations teams, Kubernetes introduces a declarative model of infrastructure management. Rather than issuing step-by-step commands to deploy software, engineers describe the desired state of their system in configuration files, and Kubernetes works continuously to maintain that state. This approach improves consistency and reduces the risk of configuration drift across environments.

Kubernetes is available as a managed service through all major cloud providers, including Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS), and Azure Kubernetes Service (AKS), lowering the operational burden of running clusters. Its broad adoption and extensive ecosystem of tooling have made it a foundational technology in modern cloud-native application development.

Have a question?

Get in touch if you'd like to learn more about this topic.

Contact Us