What is Kubernetes?

Kubernetes statue

Kubernetes is an open source system for managing applications in a container technology environment. Kubernetes automates the manual processes to deploy and scale containerized applications. It can also manage clusters of containerized applications, which can span public, private and hybrid clouds. 

The name, Kubernetes, is inspired by the container ship analogy, and builds on that to indicate the Greek word that translates to “helmsman,” as in the one who needs to pilot the container ship. Kubernetes also gets called “kube” and “k8s” which is a numeronym, using the first letter, the last letter, and the number of letters in between those letters. 

History of Kubernetes

Word etiologies aside, Kubernetes was originally created by Google, as it grew out of an internal project Borg, with containers powering Google Cloud technology. In fact, Google claims to have experience with containers across fifteen years, and claims to “run billions of containers a week,” which gave them plenty of experience that went into this software program. Kubernetes was then donated to the Linux Foundation as a seed technology, to form the the Cloud Native Computing Foundation (CNCF) in 2015.

While Kubernetes is an open source project, it is officially supported by both Microsoft Azure, and Google Cloud. Kubernetes gained initial acceptance among early adopters, which translated to steady growth, and now occupies a prominent position in the container management software space. 

These days, using multiple containers for a real production app has become commonplace, with the containers located across multiple servers. Kubernetes software enables deployment of these containers, and to scale them across multiple servers to match the workload, including scheduling of the containers across a cluster. It also can help to manage the health of these multiple containers. 

Shipping containers

(Image credit: Pixabay)

Kubernetes deployment

Kubernetes gets deployed for a group of containers, which gets termed a cluster. One of the containers of the cluster is designated as the cluster master, that runs the Kubernetes control plane processes. The other containers of the cluster get assigned as nodes, which are the worker machines, that fall under the control of the cluster master, which functions as a unified endpoint.

The cluster master has total control of its nodes, designating their lifecycle, including assessing their health, as well as controlling upgrades and repairs to each node. In the cluster, there can be special containers, that get designated as per-node agents with specific functions, for example, log collection, or intra-cluster network connectivity.

The default for a node is for it to have one virtual CPU, and 3.75GB of RAM, which is the standard Compute Engine machine type. For more compute intensive tasks, a higher baseline minimum CPU platform can be chosen. Realize that not all of the node’s resources can be brought to bear on the application that it is designed to run. Rather, some of these resources are needed to run the Kubernetes Engine. The allocatable resources of the node, which can be used to run the application, is the difference between the total resources, and the amount reserved for the Kubernetes Engine.

By way of example, if the node has 4GB of RAM available, 25% of it gets reserved for the Kubernetes engine, and the remaining 75% can be used to run the application, and requires only 20% of the next 4GB of RAM if the node has a total of 8GB of RAM. The Kubernetes Engine is less hungry of CPU resources, reserving only 6% of the processing power of the first core of the node, and only 1% of a second core designated to the node. 

The cluster master runs Kubernetes API Server, which handles requests, which originate from Kubernetes API calls from the Kubernetes software. The Kubernetes API Server functions as the ‘communication hub’ for the entire container cluster.

Kubernetes features

Contributing to Kubernetes popularity is its robust feature set. These include: 

  • Automatic binpacking: This automates where containers get placed based on the most efficient use of resources.
  • Horizontal scaling: Applications can be scaled up or down via a simple command, or automated to match CPU usage.
  • Automated rollouts and rollbacks: Kubernetes rolls out updates to updates to the applications in stages, rather than all at once, and monitors for health issues, and if found, will automatically rollback to a more stable version to preserve uptime.
  • Storage orchestration: It works with a variety of storage solutions for additional flexibility, from local to public cloud.
  • Self-healing: The ability to kill containers that freeze, and restart containers that freeze or fail their health check.
  • Service discovery and load balancing: Kubernetes is able to assign each container its own IP address, with one DNS name, and the ability to distribute the load between them.
  • Secret and configuration management: Applications can be updated without an image rebuild.
  • Batch execution: Management for batch and continuous integration workloads.

Real world applications of Kubernetes

Kubernetes gets used by top corporations, including Comcast, eBay, Goldman Sachs, The New York Times, and Pokemon Go, among many others. An example of Kubernetes use is video provider Sling TV, which after their launch in 2015 experienced issues as new subscribers were outstripping their existing resources as they attempted to distribute live TV through the internet. In order to improve their customer’s experience, and with a desire for increased flexibility - for now and going forward - the decision was made to shift to a hybrid cloud strategy. This used both an on-premise VMWare multi data center, integrated with multiple public clouds, and controlled through the Kubernetes Engine.

According to Brad Linder, their Sling TV’s Cloud Native & Big Data Evangelist, “We are getting to the place of where we can one-click deploy an entire data center - the compute network, logging and monitoring all the apps.” He goes on to point out that previously deploying a new app would take days, which can now be accomplished in about an hour via the Kubernetes Engine. 

While Kubernetes has humble origins as an internal project at Google, it has evolved to become a dominant player for container management software, no doubt fostered by its open source approach. The power and flexibility of the Kubernetes Engine explains why it get used across so many diverse industries.  

TOPICS

Jonas P. DeMuro is a freelance reviewer covering wireless networking hardware.

Latest in Pro
Finger Presses Orange Button Domain Name Registration on Black Keyboard Background. Closeup View
I visited the world’s first registered .com domain – and you won’t believe what it’s offering today
Racks of servers inside a data center.
Modernizing data centers: an efficient path forward
Dr. Peter Zhou, President of Huawei Data Storage Product Line
Why AI commonization is so important for business intelligent transformation and what Huawei’s data storage has to offer
Wix automation
The world's leading website builder aims to save businesses time with new tool
Data Breach
Thousands of healthcare records exposed online, including private patient information
China
Juniper patches security flaws which could have let hackers take over your router
Latest in News
A super close up image of the Google Gemini app in the Play Store
It's official: Google Assistant will be retired for phones this year, with Gemini taking over
Quordle on a smartphone held in a hand
Quordle hints and answers for Sunday, March 16 (game #1147)
NYT Strands homescreen on a mobile phone screen, on a light blue background
NYT Strands hints and answers for Sunday, March 16 (game #378)
NYT Connections homescreen on a phone, on a purple background
NYT Connections hints and answers for Sunday, March 16 (game #644)
Three iPhone 16 handsets on show
Apple could launch an iPhone 17 Ultra this year – but we've heard these rumors before
Super Mario Odyssey
ChatGPT is the ultimate gaming tool - here's 4 ways you can use AI to help with your next playthrough