November 18 2020 by netanel

Docker Desktop, Microk8s and the Battle for the K8s Laptop

If you’ve been following me you know that I’m a huge believer in kubernetes and the cloudnative ecosystem and that we tend to preach our k8s sermons in meetups, in the office kitchen and just generally in a 1 km diameter where ever I go.
After running kubernetes in production for the past year for our clients and our own workloads it’s hard to imagine life without it…

The inevitability of it all is amazing. Kubernetes is like the next step beyond Linux which will power the next waves of innovation.

In a cloud driven edge computing world what does it matter where you’re process are running? Instead of using ps to list your local processes you run kubectl get pods and those process can run anywhere.

Image for post

I’ve been following Linux and the open source (re)evolution for the past 20 years and I remember early slashdot pieces trying to estimate — is this is the year of desktop linux?
Linux distributions like the early redhat (before RHEL) ,caldera, mandrake and ubuntu all tried to claim in their turn that they have built the perfect “windows XP killer” and that organizations will soon migrate their workloads to the Linux….

That never happened.

Fast forward … Desktop computing became a commodity, the browser won the desktop wars and all UI has become web UI so it didn’t really matter what “shell” was used to consume it on, 10 years have past and the “desktop linux” question isn’t that interesting anymore.

That was the case up to now but kubernetes is stirring a lot of innovation and while this tidal wave of change is changing and dominating the cloud I see the early signs of how it will alter the desktop and radically change the development experience.

Dockers 2nd pivot

One of the companies most affected by the surge and dominance of kubernetes is Docker. After communicating to the world that kubernetes won when they adopted it within Docker Datacenter — Docker needed to shift their business model from monetizing the orchestration layer to something else and it appears that they are focusing on their strength ( developer experience and tooling) — the first hint I had for this was when I installed docker for mac on my laptop and saw a new checkbox labeled “Enable kubernetes”, Enabling it built a local kubernetes cluster in about a minute and what used to be a more timely process with minikube involving additional virtualization engines and process has become frictionless.

Image for post

So docker is basically performing their second pivot after the first one was widely covered and resulted in the explosive growth which basically popularized container based computing.
I assume this was part of the reason Solomon Hykes — docker’s founder left about 9 monthes ago…
After dealing with container orchestration challenges — repackaging and making kubernetes accessible to developers locally might be less interesting.

Canonical and microk8s

All Linux distributions have some kind of CAAS (container as a service offering) basically using the upstream kubernetes and building enterprise wrappers providing either opinionated PaaS solutions (like openshift ) or their own kubernetes distributions and services like canonical’s kubernetes distribution.
One of the more intelligent projects in this space by canonical is microk8s, k8s installed as a daemon with 2 cmds on 42 flavors of Linux (anything that has snap support) all you need to do is run…
sudo snap install microk8s — classic …
and poof — a minimalistic single node k8s cluster is installed on your laptop.
Canonical, like Docker, is doubling down upon its strength — developer outreach — and I think that building the developers mindset and tooling will help them monetize when the developer will deploy and help his enterprise choose commercial k8s support.

Controlling the default k8s provider

By educating the developers on the use of kubernetes locally I think that cannonical and docker wish to affect these emerging usage patterns and be able to monetize in several ways when these clients pick a hosted k8s solution or even get some kind of affiliation on onboarding to remote clouds ( like rancher or Gitlab do when they set the default k8s solution on GCE).
This is a fascinating play by both companies which will continue fueling the growth of k8s use by developers.