Kubicorn at 36,000 Feet: An Interface Driven Way to Manage Kubernetes Infrastructure
Somewhere between Seattle and San Francisco at 36,000 feet some of the latest technology came together when Lachlan Evenson, a program manager at Microsoft got bored on a flight. So he spun up a server, created a Kubernetes cluster, and filmed the process.
“How to build a k8 cluster on @digitalocean using @KubicornK8s at 36,000ft in under 3m with only $10 credit,” he tweeted.
This is cutting edge tech at its highest geek factor. For those of us mortals, let me break it down.
First, DigitalOcean (DO), the New York-based cloud service provider, has been in the news a lot this year as their CTO, Julia Austin, committed to rolling out new functionality on a schedule once every couple of months. So far this year, they’ve added load balancing, security, and new high-CPU capacity, all focused on allowing current customers to scale and drawing in more enterprise companies. But their core audience is developers. They make spinning up a server easy and cost-effective by focusing on what devs want. By devs, for devs, as DO co-founder Mitch Wainer told me in an interview last year. As Evenson demonstrates, it’s fast and easy. Want a server? Boom.
What Is Kubicorn?
The brainchild of Kubernetes Maintainer and Microsoft Senior Developer Advocate Kris Nova, Kubicorn is just under a month old. The framework is designed to empower users and help them manage the Kubernetes cloud infrastructure.
“With Kubicorn, a user can create new clusters, modify and scale them, and take a snapshot of their cluster at any time,” Nova said in the official Kubicorn ReadMe on GitHub.
It is not intended to replace Kops, she said on the Kubicorn sub-Reddit, because there are some fundamental differences in the projects. “I love kops, and this is not designed to replace kops” she said. “Kops is and will always be the official deployment tool. Think of this as my ridiculous side project.”
“Kubicorn is interface driven,” she said, “meaning that the entire framework is designed to be modular so users can bring their own implementation, or modify/tweak others.” She thoughtfully provides a detailed list of the differences:
- We use kubeadm to bootstrap our clusters.
- We strive for developer empathy, and clean and simple code.
- We strive for operational empathy, and clean and simple user experience.
- We start with strict literals for profiles, and then marshal into an object.
- We offer the tooling as a library, more than a command line tool.
- We are atomic, and will un-do any work if there is an error.
- We run on many operating systems.
- We allow users to define their own arbitrary bootstrap logic.
- We have no guarantee that anything works, ever, use at your own risk.
- We have no dependency on DNS.
- We believe in snapshots, and that a user should be able to capture a cluster, and move it.
What It Is
Nova was aiming for simplicity and elegance with Kubicorn. In the user’s cloud of choice, a user defines what they want in their Kubernetes cluster and then apply it. “That simple,” she said.
It’s extraordinarily flexible, allowing the user to adopt any Kubernetes cluster, and enforces the intended state of their Kubernetes infrastructure, allowing simple scalability, Nova explains on the GitHub site for Kubicorn.
One of the interesting aspects of Kubicorn is the ability to take a snapshot of a cluster as a compressed file, and run that image in the cloud at any time. The snapshot captures the intended infrastructure AND the intended application definitions. “Take a snap, save a snap, deploy a snap.”
“Kubicorn is built as a library and a framework,” Nova said. “Thus allowing it to be easily vendored into operator and controller patterns to enforce intended state of infrastructure.”
FYI, Nova warns against thinking of it as production ready, so Evenson was taking a leap of faith by installing it. But then, he works with Nova, so maybe faith wasn’t needed.
Back up in the air, Evenson set up his camera and screen share and started recording. “This is my first look at it [Kubicorn],” he said, scrolling down to the documentation and opening the Walkthrough on how to set it up using DigitalOcean. He started by spinning up a Droplet (a DO server) which took less than a minute.
By the end of the three minutes, he had a server and a Kubernetes cluster master and node, securely bootstrapped, by following the Walkthrough guide. It took another few minutes for the server to move into the “Ready” state because hurling through the air at 36,000 feet took a while to create the containers.
Good news, that’s already being fixed.
“In the end,” tweeted Evenson, “this is a love letter to technology.”
You can watch the whole process here.
Microsoft and DigitalOcean are sponsors of The New Stack.
Feature image via Pixabay.