One of the hottest technologies of the last couple of years is Kubernetes, now an industry standard, even if enterprise deployments are still immature. But Kubernetes was not designed with edge deployment in mind, rather it was designed for deployment in hyper scale networks – the engineers that led the project based it on Google’s own Borg infrastructure. Kubernetes is notably complex. So if edge is going to be a thing, what will Kubernetes look like at the edge? Rancher has been doing some useful work to answer that question. Its client Toyota Connected is using Kubernetes as a back-end for its in-car head units.
Rancher CTO Darren Shepherd grumbles about Kubernetes complexity and poor developer experience a fair bit but he also does something about it. Which is where his project K3s comes in. K3s describes itself as “The certified Kubernetes distribution built for IoT & Edge computing”. K3s is a packaging exercise – it’s a single, less than 40MB binary, to make it easier to set up a Kubernetes cluster. K3s replaces etcd with an embedded SQLite database. It includes local storage, load balancer, Helm controller, and the Traefik ingress controller. Dependencies including containerd, Flannel and CoreDNS are included.
From the docs K3s is great for “situations where a PhD in k8s clusterology is infeasible.” That sounds like 98% of enterprises.
Alex Ellis, founder of the OpenFaas project has been kicking K3s’ tyres, to deploy serverless functions on ARM and Raspberry Pi-based clusters. Alex is part of the K8s on edge device community (there is indeed such a thing, partly because Raspberry Pis can be the basis of a really nice demos at a tech conference, but also because well, nerds.) Any successful open source project has third parties building for the platform, and it’s worth mentioning Ellis built K3sup (“pronounced ketchup”), to make it even to easier Bootstrap Kubernetes with k3s. Ellis was aiming for a developer experience akin to Docker Swarm.
— Antonin Stefanutti (@a7tti) January 31, 2020
Stuff people play around with at home does sometimes find its way into production. It’s not so long ago Rust was something folks wrote on the weekend, for example, while now it’s being used in production systems at major cloud companies. K3s is designed with small clusters in mind, but it’s generally easier for technology to go from small to big, rather than the other way around, which partly why I find K3s fascinating. I have been seeing a fair bit of chatter about K3s which is why I wanted to write this post. Seems like I am not alone – for example K3s won 2019 new tool of the year from Stackshare. Ellis also points out the popularity of K3s on the CNCF landscape map.
Another notable project aiming at a lightweight K8s experience is Firekube from Weaveworks. Firekube builds on firecracker from AWS Cloud, one of the few projects I have been tracking that do so. The space is getting interesting.
Shepherd will be presenting on K3s at Kubecon Europe – it should be a fascinating talk.
disclosure statement: Cloudflare, Hashicorp and The Mozilla Foundation (which is behind WASI) and are all RedMonk clients.