As an “edge” skeptic 2019 was an interesting year, which began to challenge my assumptions. It was notable for the emerging promise of architectures like Cloudflare Workers (serverless Javascript functions that run on Cloudflare’s globally distributed platform). WebAssembly SystemInterface (WASI) shows phenomenal promise – a binary format allowing developers to write code in their programming language of choice, for server-side deployment, on the client, or as an edge network deployment. 5g is finally becoming a reality, which is going to blow up a lot of assumptions about networks and programming tiers, what is local and what is cloud. One way 5g is interesting is that the traffic is more directed than previous network generations – which means more compute power is required, and more sophisticated software to enable beam steering to specific users of these higher frequency signals. Hashicorp has benefited, with notable success working with 5g network providers. The internet of cars is swiftly becoming a reality – driven by Tesla if you’ll excuse the pun. So maybe edge isn’t just a marketing term for failing on prem hardware vendors.
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.
10 Watts isn't so bad for 3 RPis, a k3s cluster and a couple Camel K integrations running 🔌⚡️ #green_cloud pic.twitter.com/OZcYvU96eT
— 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.
No Comments