IN-DEPTH It’s great when you’re k8s
IT’S GREAT WHEN YOU’RE K8S
Still scarred from his experiences trying to install Kubernetes at home, Jonni Bidwell turns to cloud native Alex Jones for support…
T
he internet of the 90s was largely run by powerful servers nurtured by small teams, each holding arcane knowledge about their machines’ configuration and quirks. Typically, a server would only have one role, so that if it glitched out the failure would have much less of an impact on other services. Updates might take days, and if they went awry then there would be yet more downtime while things were slowly restored from backup tapes.
The mid-2000s saw widespread adoption of virtual machines, which (if deployed properly) made much better use of server capacity. Services could be isolated from one another on the same machine. In the event of hardware failure, virtual machines could easily be restored from backup on new hardware, without the need for reconfiguration. In the event of software failure, VMs could be effortlessly restored to a known-good snapshot.
However, there was still room for improvement. By the 2010s enterprises were operating at a much larger scale, thinking much more in terms of data centres than individual servers, whether actual or virtual. Pouring through the logs of individual machines to diagnose faults is not an operation that scales well. And neither is having to install a whole operating system for each VM. So the next evolution was containers. These were, in a sense, characterised by Docker in 2013, but ultimately owe their existence to the coming of age of a whole bunch of technologies (cgroups and namespaces in the kernel, LXC in userspace), together with some (quite old) ideas about virtual servers and resource sharing.
Then things got much more complicated. Fortunately, Alex Jones, director of Kubernetes Engineering at Canonical, was good enough to answer our questions on the wherefore and the why of Kubernetes and the cloud-native future.
The next challenge was how to orchestrate multitudes of, potentially, interdependent containerised workloads. In 2014 Google open sourced Kubernetes (K8S). If virtual machines abstracted the concept of a machine, and containers abstracted the idea of an operating system, then K8s pushes this analogy to its limits by abstracting entire data centres. There are other, older projects that have much in common with K8s, namely Mesos and Mesosphere, but K8s has really taken the world (and the clouds above it) by storm.