Kubernetes is one of the hottest technologies in the cloud world today, with organizations big and small talking about the open-source platform. But what exactly is Kubernetes?
In a session at the KubeCon CloudNativeCon North America 2017 event, Brian Grant principal engineer at Google and Lead Architect of Kubernetes, explained his view of what Kubernetes actually is all about. Kubernetes was in many respects born out of another Google project called Borg, which Grant led prior to helping launch Kubernetes.
Kubernetes is commonly thought of as a container orchestration system, which is technology that can help manage the operation and deployment of containers. According to Grant, Kubernetes is much more than that.
"It seems like it's obvious, but there are different features and properties of Kubernetes that are important for different use-cases," Grant said.
10 Different Ways to Describe Kubernetes
In Grant's mind, there are at least 10 different ways to think of Kubernetes that are relevant to how the platform has been architected:
- Container Platform / Container Orchestrator
- Declarative API-centric control plane
- Configuration distribution system
- Container Infrastructure-as-a-Service (CIaaS)
- Platform for automating management
- Services as a Platform (SaaP)
- Portable cloud abstraction
- A family of related projects
- A cloud toolkit
- A cloud ecosystem
"Kubernetes can do a lot, but it was always intended to be a platform that can be built upon and extended," Grant said.
Grant noted that Kubernetes started with just 4 APIs and now has over 50 different APIs to enable different capabilities and extensibility. The project has also grown from a single GitHub repository to a collection of over 90 repositories.
While Kubernetes has many aspects and capabilities, there are things it does not do.
"Kubernetes doesn't and shouldn't do everything that you want it to do," Grant said. "Some needs can be satisfied by building on top of Kubernetes as a platform."
In order to help enable the integration of other tools, there are client libraries, admission hooks and other integration points that aim to make it easier for developers to extend Kubernetes. Grant noted also that Kubernetes is open source and has been designed to be used in parts as well as an entire platform.
"With Kubernetes you're not limited by what the project itself can deliver," Grant said. "You can also take advantage of the ecosystem built around it."
So how does Grant define Kubernetes? The definition isn't a short one.
"I think of Kubernetes as portable, extensible open-source platform, for managing containerized workloads and services, that facilitates both declarative configuration and automation, with a large, rapidly growing ecosystem," Grant said.
Sean Michael Kerner is a senior editor at Serverwatch and InternetNews.com. Follow him on Twitter @TechJournalist.