Everyone loves Kubernetes, the open-source container orchestration platform. At least, they love it today.
But will Kubernetes, also known as K8s, still be such a huge deal five or 10 years from now? There are more than a few reasons to imagine that Kubernetes' future isn't bright. Kubernetes may not disappear entirely, but it could lose its luster in the way that, for example, OpenStack has ceased to be the game-changing platform it once was, or that products like Google Buzz turned out to be much less disruptive than they once seemed.
To prove the point, here are three reasons why Kubernetes' popularity may fade over the next several years.
1. Kubernetes Is Hard
Arguably the greatest challenge that Kubernetes faces in becoming a platform that gains widespread, long-standing adoption is that it's just hard. Kubernetes is so complex and so different from virtually every other type of platform out there that truly learning how to use it takes months, if not years. The fact that the Kubernetes developers tend to roll out new features (and, sometimes, deprecate existing ones) on a not-infrequent basis makes it even more difficult to master the platform.
Admittedly, most platforms worth using are hard to learn. It's not as if you could master OpenStack in a day, either. But maybe that's why not a lot of people are using OpenStack.
I'd also argue that Kubernetes lacks the usability tooling that has helped other complex platforms take off. For example, running a Windows or Linux server is pretty complicated, too, but people use Windows and Linux for servers because there are tons of tools that make the process easy.
In contrast, Kubernetes currently lacks what I'd consider real usability tooling. The various K8s dashboards out there support only a subset of all Kubernetes functionality. Tools like Helm simplify application deployment a bit, but they remain pretty rough around the edges, especially when things go wrong.
I could go on, but you get the point: Kubernetes just lacks the user-friendliness that it may need to succeed over the long term.
2. There Are Too Many Kubernetes Add-ons
Comparatively speaking, the native functionality of Kubernetes itself is pretty limited. Kubernetes basically just orchestrates applications. If you want scalable monitoring, storage management, complex networking configurations, the ability to run virtual machines, and so on, you need plug-ins or add-ons.
Now, I suspect that this modular nature is by design. The Kubernetes developers probably don't want to try to build all of these features into the core platform. So they let other people implement them in the form of add-ons.
The problem, though, is that we're at the point where you essentially can't use Kubernetes in production without a whole bunch of add-ons. Even if you use a Kubernetes distribution that is designed to be feature-complete out-of-the-box, you may still end up plugging third-party tools into it.
This makes Kubernetes different, I think, from platforms like Linux, which bakes most of the functionality that users could want into the core product. When I install Ubuntu, I don't need to rely on a host of tools that I downloaded from far-flung GitHub repos in order to make my system do anything useful. I can't say the same for Kubernetes, and that's a problem if people are going to use K8s for decades.
3. Not All Workloads Can Run on Kubernetes
It would be easy to imagine Kubernetes being with us for the long haul if it could host every workload under the sun. But it can't. Natively, it can only run containers. (You could run things like VMs and serverless functions with add-ons, but that brings us back to my point above about how Kubernetes requires too many add-ons.)
Compare that with other hosting platforms that have stood the test of time, and Kubernetes appears to be an outlier. You can deploy virtually anything you want in a public cloud, for example — legacy apps and cloud-native apps alike.
The fact that Kubernetes remains Linux-centric is also a complicating factor. Sure, you can run Windows nodes if you want to host Windows apps, but the overwhelming focus of the Kubernetes ecosystem — not to mention the Kubernetes developers themselves — is on Linux nodes and Linux containers.
All of the above means that Kubernetes may not prove to be the best long-term choice for businesses that have legacy workloads, Windows-based workloads, or both.
Kubernetes' Future Up in the Air
Again, I don't think that Kubernetes will disappear entirely. But there's a chance it won't live up to all of the hype that it has enjoyed over the past several years. It may turn out to be too hard to deploy and manage, too dependent on third-party add-ons, and too narrowly focused on cloud-native apps to become the type of platform that is still central to businesses around the world decades from now.
About the authorChristopher Tozzi is a technology analyst with subject matter expertise in cloud computing, application development, open source software, virtualization, containers and more. He also lectures at a major university in the Albany, New York, area. His book, “For Fun and Profit: A History of the Free and Open Source Software Revolution,” was published by MIT Press.