Kubernetes is one of the most important innovations to hit Linux in decades — and one that’s making big changes in how critical services are being deployed. It’s not an operating system, an app, or a container, but a container-specific management environment — and it’s making applications and services remarkably more manageable.
You can think of Kubernetes as a portable cloud platform, as a container platform, or as a microservices platform that takes advantage of both the simplicity of Platform as a Service (PaaS) and the flexibility of Infrastructure as a Service (IaaS). Regardless of how you define it, what you get by investing your time and technology in Kubernetes will be some very impressive options for:
- Process isolation
- Smart load balancing
- Easy replication
- High availability
- Health monitoring
Where did Kubernetes come from?
It’s a long story, but one worth reviewing. First, the Linux concept of isolation was gaining a lot of attention maybe 10 years ago. We saw Google’s Cgroups — adopted into RHEL in 2010 (RHEL 6) — allowing users to allocate resources (CPU time, system memory, and network bandwidth) among user-defined process groups. At the time, containers were providing isolation, but the setup and management was still quite complicated.
Then came PaaS, and load balancing was no longer a problem. Applications were put into containers.
Then in late 2013, dotCloud went out of business, but it left one valuable component behind — Docker. Containers were then able to provide dramatically more flexibility for running cloud-native applications, but organizations ran into problems when trying to manage hundreds of containers. People quickly realized they needed a system to help orchestrate their workloads.
Then, around 2015, Google decided to take a system they’d developed and been using successfully for years to manage their large and essential services and make it open source. The internal system was called Borg. The open-source project became known as Kubernetes. You can learn why Red Hat chose Kubernetes for Openshift here.
The fact that Kubernetes came from Google is certainly one key to its success — not simply because of Google’s prominence and the demands on its services, but because of all the issues that Google needed to address to keep their extensive operations running smoothly. Google required a platform that would be rock-solid and that would scale up to whatever demands the company might place on it. Their production services needed to be both reliable and manageable. Borg and then Kubernetes were the result of Google having to handle huge demands and ensure services were managed properly and consistently.
Today, Kubernetes is the fastest-growing container platform, with more production users committing to it than to any comparable solution. It’s the clear leader in cloud orchestration and management.
Leaders and followers
Along the way, Kubernetes has amassed some very impressive partnerships coupled with a vibrant and growing contributor population. The Kubernetes Community is enthusiastic and was excited earlier this month when awarded the Most Impactful Open Source Project.
Part of the Cloud Native Computing Foundation (CNCF), Kubernetes has over 1,500 contributors and is backed by a number of powerful companies and technologies, including Red Hat, Google, CoreOS, Amazon Web Services (AWS), Oracle, Microsoft, VMware, and Pivotal.
Kubernetes can run on any Linux distribution, though some, such as Red Hat, take extra steps make it even easier to use. Kubernetes also works for containers on Windows.
Who cares about Kubernetes and why?
Companies care — Thousands of large companies already use Kubernetes — from large banks to auto companies that need to enable critical apps in cars.
IT workers care — The demand for the skills required to manage Kubernetes and distributed containers grows every year. In addition, the jobs pay well and the technology is exciting.
Organizations implementing a hybrid cloud approach care — It can be difficult for organizations to figure out how to use the right cloud for the right cloud project, especially as business, industry, and customer needs invariably change. There’s no one way to develop a well-integrated hybrid cloud solution, but there are key tools that organizations can leverage to connect the pieces of the hybrid cloud. Deploying containers and Kubernetes can help organizations abstract the varied benefits of multi-cloud deployments by adding a level of standardization and portability, combined with orchestration and a common management framework.
Is Kubernetes help available?
If your company is getting started with Kubernetes, you will find that many system integrators are available to help you get off the ground. There’s also a growing number of tutorials and some new certifications — the Certified Kubernetes Administrator (CKA) and Certified Kubernetes Application Developer (CKAD) — to help you get up to speed and prepare to play a very rewarding role in the Kubernetes community. My contacts have told me that it could take three to six months to become adept at using and managing Kubernetes in either role.
Helpful resources for getting up to speed on Kubernetes
Here are some very helpful resources that can help you become adept at using and managing Kubernetes: