Jack Wallen offers up advice to those who are considering diving into deep waters of Kubernetes.
. It. Is. All. The. Rage. So are single word sentences, but that doesn't mean they're right for you. Where was I? Oh yeah, Kubernetes.
Business technology evolves faster than most admins can keep up. You wake up one day and Tech X is where it's at. The next day, Tech X has morphed into Tech Y, but it's a completely different thing that promises the holy grail of simplicity, scalability, and reliability. It is the thing you should be using and the testimonials across the board prove it so.
But then you dig into Tech Y, only to find it to be a wholly different beast.
Such is the case with many who finally dive into the waters known as Kubernetes.
SEE: 10 things companies are keeping in their own data centers (TechRepublic download)
What is Kubernetes?
First, let's get the definition out of the way. Kubernetes is an open source container orchestration system used for automating computer application deployment, scaling, and management. In other words, you use Kubernetes to make serious magic with containers.
It's really easy to start taking baby steps with Kubernetes. Of course, those baby steps should probably begin with understanding containers. To that end, you might want to dive into Docker. Thing is, after spending a bit of time with Docker and Docker Swarm, you're going to assume that Kubernetes will be on the same level.
Not even close.
In fact, there are some things you should know about Kubernetes, things they don't bother to tell you before you launch yourself down that particular rabbit hole. Let me fill you in.
Where I'm coming from
Before I give you a fresh scoop of reality from my own personal dog and pony show, let me tell you where I'm coming from. You see, I write about technology, but I'm not just a tech journalist--I'm more of a tech documentation specialist. I work with the technology I write about, with the idea of taking difficult concepts and making them simple to understand. That's been my shtick for over 20 years.
When I started writing about Kubernetes some time ago, I began working my way up that particular food chain slowly. I've hit plenty of obstacles along the way, but at this point I have a somewhat solid understanding of what this technology is.
Kubernetes is not easy
Let me be as straight up with you as I can be: Kubernetes is not easy. Anyone that tells you otherwise is pulling quite a bit of wool over your unjaded eyes. This is in stark comparison to Docker, which is actually quite easy to use. The thing about Kubernetes is, it's not Docker. It's not a container engine, it's much more.
Let me toss an analogy at the wall and see if it sticks.
Imagine you've been given a massive box of LEGOs. The box doesn't have a picture to indicate what that particular LEGOs kit builds, but you know it builds something specific. So you have all of these brightly colored bricks and you have to somehow put them together in just the right way to build that particular something. You know when you get that something built, it will be glorious. But getting to that particular finish line is incredibly challenging. Do the white bricks go with the blue bricks? Do the red bricks fit with the green bricks? And what are those oddly shaped purple bricks for?
Kubernetes is somewhat like that. You have a ton of "moving parts" that come together, in myriad ways, to create services and applications that can help power and drive your company in an ever-evolving world. Getting those pieces together, in just the right way, to do what you need, can take some work.
And the available help?
Don't even get me started.
On second thought...do.
Kubernetes documentation is terrible
Kubernetes itself is always evolving. Unfortunately, that does not trickle down to the documentation. I cannot tell you how many times I've been working on something, only to find the official documentation is wrong--a command is broken, a link to a necessary piece of software is out of date, or a crucial step is left out or incorrectly described.
We're talking about Kubernetes, one of the most exciting technologies to come along for the enterprise in some time and the official documentation is terrible. Whenever anyone asks me where to find help with Kubernetes, my first response is, "Not the official documentation."
I get why this is the case. As I said, Kubernetes is always changing, so keeping up with those changes on the documentation front can be hard and not always a priority. But, those responsible for the documentation really need to keep up with those changes. How are users supposed to get things up and running when what should be the definitive documentation can't help them? This really needs to change--enterprise businesses are counting on it.
Kubernetes is geared toward developers, not admins
This one might be a hard pill to swallow for admins anxious to get Kubernetes up and running. To really get the most out of Kubernetes, you need to be a developer. Or, at least you need to be able to think like a developer.
Kubernetes is all about building applications and services. Although you might be able to spin up a Kubernetes cluster with ease, once you get past that point, things get exponentially more challenging for the non-developer.
If you are truly intent on using Kubernetes, you might want to either find a developer who can help you through the process, or at least get up to speed in the basic concepts of application development. Otherwise you're going to get lost fast.
It will take you longer than you think to get up to speed with Kubernetes
Finally, you need to understand that it's going to take you a lot longer than you might think to get up to speed with Kubernetes. As I mentioned, your first steps will be easy, but that simple start is misleading, because when the challenges hit, they hit hard and fast. Just wait until you've deployed that first Pod and you can't reach it from your LAN. Now what?
Yeah, they don't tell you how hard it is to do something that is incredibly easy with Docker or Docker swarm. You'll spend hours just trying to figure out how to expose that application outside of the cluster and make it actually work.
When you finally decide to dive down the Kubernetes rabbit hole, make sure you understand that it's going to take you a good amount of time to fully understand how the technology works. Maybe by the time you're up to speed, it might have drastically changed, at which point you'll find yourself having to relearn what you just learned.
Don't get me wrong, I think Kubernetes is a fantastic collection of remarkable technology that can do wonders for enterprise businesses, but you must know what you're getting into before you take those first steps. The journey won't be easy, but it will be rewarding.
More Kubernetes how-to resources
- Getting a Kubernetes cluster up and running isn't as difficult as you might think (TechRepublic)
- How to deploy NGINX on a Kubernetes cluster (TechRepublic)
- How to quickly install Kubernetes on Ubuntu (TechRepublic)
- How to install the necessary components for a Kubernetes cluster on Ubuntu Linux (TechRepublic)
- Kubernetes: The smart person's guide (TechRepublic)