Containers / Kubernetes

Kubernetes is NOT Scary, Complex or Even Confusing

18 Nov 2016 7:42am, by

Rob Hirschfeld
Rob Hirschfeld is CEO and co-founder of RackN, which offers orchestration software for the container-centric data center. He has been in the cloud and infrastructure space for nearly 15 years, from working with early ESX betas to serving four terms on the OpenStack Foundation Board. As a co-founder of the Digital Rebar project, Rob creating a new generation of DevOps orchestration tools to leverage the containers and service-oriented ops. He believes that the technology of running data centers and applications on cloud is just part of the bigger story. Trained as an Industrial Engineer, he carries a passion for applying Lean and Agile process to software delivery.

For the last several months, I’ve been working with the Kubernetes Cluster Ops SIG to create an Operators’ Guide. The first deliverables for that guide, the graphics shown above, have been helping us to show that Kubernetes is really a pretty simple architecture.

We’re doing this work to correct a common misconception about the complexity of Kubernetes. The platform is really very elegant with relatively few moving parts. If that is true, what feeds this the fiction of Kubernetes complexity?

Unlike the platform itself, the routine pre-requisite tasks needed to build a Kubernetes cluster are complex and hard.

Those were the tasks that made Kelsey Hightower’s “Kubernetes the Hard Way” setup guide actually hard. It’s developers lack of exposure and patience in common cluster operations tasks like creating a secure communication (TLS), configuring load balancers, running daemon services and other environment prep tasks that lead to this perception. In fact, the rise of Docker is the rebellion against this type of work!

Multi-node operations is hard: that’s why we want platforms like Kubernetes.

There are few short-cuts for multi-node operational tasks like building a public key infrastructure (PKI), load balancer configuration, installing Docker correctly, configuring services in systemd or upstart, and creating a functional software defined network. And that does not even consider sequence sensitive tasks like expanding or upgrading a cluster. Since the Kubernetes will not work without all this heavy lifting, it’s no wonder that a simple three tier platform gets a reputation as complex.

One complicating factor is that Kubernetes, rightly, requires encrypted Transport Layer Security (TLS) communication. Dropping this requirement would simplify prerequisites but compromise default security.

kubernetes-cluster-node-maps

Kubernetes cluster node maps.

Is there a fix? Yes, if we acknowledge that the platform underlay (aka “ready state”) is a different problem than the cluster installation.

The reality is that all multi-node clusters suffer from the same complexity problem. We’ve heard the same thing about OpenStack for years. The reason that a fix remains elusive is that the problems cannot be addressed in the platform alone. The good news is that these underlay challenges are shared by all platforms and can be addressed in best practice ways. In fact, it is much harder to solve them when the overlays attempt clever short-cuts (like roll-your-own-PKI) to bypass basic cluster building needs.

Can the platform make an impact on this problem? With documentation, yes!

Documentation with clear configuration requirements and boundaries helps limit the integration surfaces. It also helps clearly identify underlay needs so that we can build operations automation around them because there are multiple valid ways to do this work.

Platforms need to trust their communities to solve address their underlay needs. We’re already seeing this happen in Kubernetes. Since there are multiple right ways, it may look messy or fragmented. I believe allowing the ecosystem to work independently is the fastest way for us to converge to the right patterns.

Kubernetes is pretty simple — let’s not bring underlay complexity into the project.

Docker is a sponsor of The New Stack.

Feature image: The Kubernetes install map.


A digest of the week’s most important stories & analyses.

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.