Home / Definitions / Kubernetes

Kubernetes

Sam Ingalls
Last Updated June 17, 2022 8:40 am
Kubernetes logo.

Kubernetes (K8s) is an open-source container management software developed to help organizations in orchestrating machines that power modern cloud applications.

Kubernetes can be used to quickly and efficiently launch, organize, and manage containers, which are the lightweight virtual machines (VMs) advancing modern application development. The orchestration manager automates the deployment, scaling, and managing of containerized applications. Some of its essential containerization management features include service discovery, automatic load balancing, container replication – all powered via a web API.

What is Kubernetes?

Kubernetes is a framework for managing containerized ecosystems and is increasingly the underlying architecture for on-premises or cloud applications. The open-source software facilitates configuration and automation providing application developers more time, scalability, and resilience in a distributed system.

Learn more about the Top Container Software & Orchestration Tools 2021 on IT Business Edge.


Diagram of Kubernetes architecture.
A visual representation of the K8s architecture. Image by Sensu.

What Kubernetes Can’t Do

K8s isn’t an all-in-one application development solution. Instead, it specifically addresses the management of container-based applications. Today’s application developers require container runtimes, packaging, image management, security, and the infrastructure to manage containerized applications.

As an open-source framework, Kubernetes is just that – an additional software program responsible for the orchestration of an existing container infrastructure. K8s functionality is available on all of the top cloud and virtualization platforms, which do offer the necessary resources to run Kubernetes-managed applications.

The Rise of Microservices

While traditional, monolith applications bundled an entire application into a single deployable artifact, microservices – the process of segmenting an application into containerized services – gives developers more flexibility and functionality, and prevent bottlenecks. As more organizations adopted microservices, risks like misconfiguration and downtime for sensitive applications remained.

Monolithic Architecture Microservices Architecture
The application user interface, business logic, and data access layers are interconnected and sourced from a single database. The application user interface relies on distributed services independent of each other and relying on separate databases.
See why 94% of organizations run into Kubernetes challenges on TechRepublic.

Cluster Conductor

To enrich and secure container management, Kubernetes was developed to ease the orchestration of containerized systems. Within OS-virtualized environments, Kubernetes establishes nodes and pods housed within clusters that share control planes for configuration. 

Clusters can work together and ease a developer’s workload by segmenting data and policies for specific applications and services. With orchestration capabilities, K8s implementations reduce manual configuration and facilitate the efficient management of containers and clusters.

Kubernetes Features

  • Automated updates for managing the configuration state of clusters and node pods
  • High availability with cluster federation or hosting multiple master nodes (multi-master)
  • Integration with persistent storage vendors like AWS, GCP, IBM, and more
  • Bin packing that optimizes clusters and tasks based on CPU and memory needs
  • Service discovery enables the search of containers by DNS name using IP addresses
  • Load balancing and distribution of high traffic and workloads between containers
  • Self-healing that actively removes and replaces failed containers
  • Heterogeneous deployment for interoperable provisioning and maitenance
  • Flexibility in storage between on-premises and public and private cloud providers

How Does Kubernetes Work?

The objective of the K8s framework is to ensure proper configuration, orchestration, and ongoing management of containers. To accomplish this, interested users and organizations can deploy Kubernetes on a number of enabled platforms.

Read more about the Top Kubernetes Management Platforms on Datamation.

Kubernetes Management Platforms

Kubernetes management services are available for cloud and hybrid IT environments on the biggest enterprise software vendor platforms. 

  • Amazon Elastic Kubernetes Service (EKS)
  • Azure Kubernetes Service (AKS)
  • Canonical Ubuntu
  • Giant Swarm
  • Google Kubernetes Engine (GKE)
  • IBM Cloud Kubernetes Service (IKS)
  • Mirantis Docker Enterprise
  • Rancher Kubernetes Engine (RKE)
  • Red Hat OpenShift
  • VMware Tanzu

For a complete look at Kubernetes distributions and K8s hosted platforms, this spreadsheet maintained by the Linux Foundation offers an extensive list broken down by vendor, product, active certifications, and more.

Also read: Simplifying the mystery: When to use Docker and Kubernetes | Tech Republic

Kubernetes Controller & Nodes

With a container infrastructure selected, developers need a K8s controller and one or multiple nodes to get started. Nodes serve as the virtual run-time environments where containers live while the K8s controller monitors the state of clusters and manages environment controls. 

Administrators can configure the control plane which in turn executes API calls that control nodes, pods, and services to optimize the cluster state. The control plane is accessible via a web user interface or K8s command-line interface (kubectl).

Who Needs Kubernetes?

Kubernetes is used by application developers and DevOps teams to manage and automate containerized applications. With the rise of virtualization, containerization has given way to a more reliable service-oriented infrastructure. To manage these new containerized segments, K8s offers the tools to do so faster and more efficiently.

Growing client demands for uptime, reliability, and cross-platform access make K8s a valuable investment for teams up to large enterprises that manage multiple software services and deploy massive rollouts of services.

Read more: K8s magic is in enterprise standardization, not app portability | TechRepublic

Where Did Kubernetes Come From?

Roots in Virtualization

Though virtualization is decades old, virtual machines only became hot commodities at the turn of the century. As organizations adopted VMs to optimize hardware, scale applications, and more, operating system or OS-level virtualization gave developers even smaller and more portable virtual nodes to work with dubbed containers.

Containerization Hits the Scene

Linux Containers (LXC) was released in 2008 by Google, IBM, and Virtuozzo, and served as the basis for the upstart platform as a service (PaaS) vendor, Docker, in 2013. Docker quickly became a leading provider of container services and built relationships with the leading global developers and enterprises.

Also read: Top Container Security Solutions for 2021 | eSecurity Planet

Evolution from Google’s Borg

As enterprise organizations and developers adopted containerized workloads, Google’s internal cluster management system, Borg, managed its lightweight virtual deployments. In 2014, Borg served as the basis for a group of Google engineers that developed Kubernetes (Greek for pilot or governor).

By 2022, Gartner estimates more than 75% of global organizations will host containerized applications in production.

Who Manages Kubernetes?

Upon developing the container technology, Google partnered with the Linux Foundation to establish the Cloud Native Computing Foundation (CNCF) in 2015. With found members like Red Hat, Intel, IBM, and VMware, Kubernetes was the seed technology for CNCF which continues to develop popular open-source frameworks like Envoy and Prometheus.

A growing number of platforms support the Kubernetes releases, including AWS, Cisco, HPE, Huawei, Inspur, Microsoft, and HPE.

Kubernetes Terminology

API Server Serves K8s API commands (JSON over HTTP) via control plane
cAdvisor Agent giving users resource usage and performance data
Cluster One of more work nodes hosting containerized apps
Container Lightweight and portable VM
Container Runtime Program running containers and images on nodes and pods
Control Plane Runs across multiple computers to manage nodes and pods
Controller Part of the control plane, monitors and amends cluster states
Controller Manager Daemon managing different controller processes
etcd Highly available key-value storage of all cluster data
Image A copy (instance) of the stored software to run a given container
Kube-proxy Network proxy on each node for communication policies
Kublet Controlling node agent that works in terms of a PodSec
Labels and Selectors Tag and organize (label) or identify a set of objects (selector)
Node A physical or virtual machine running K8s workloads
Object An identified K8s entity representing cluster states
Pods Smallest deployable K8s unit hosted in nodes
ReplicaSet A set of replica pods for redundancy
Scheduler Control plane process assigning pods to nodes
Services A logical set of pods defined by YAML or JSON

Recent coverage