Last week, the CloudNativeCon + Kubecon Europe conference in Berlin was a whirlwind for me. Not only was I guzzling in all the culture, as it was my first time to Europe, but the exposure to the cloud, containers, Kubernetes and all the other related technologies was massive for me, as well.
I attended teenager Lucas Käldström’s presentation titled “Autoscaling a Multi-Platform Kubernetes Cluster Built with kubeadm.” He’s known for porting the Kubernetes container orchestrator to ARM devices and now maintains the kubeadm project. He was a good speaker and kept the 150 or so audience members engaged during the deep-dive into his topic. His demo ran on a little cluster of several ARM and Intel devices positioned on the podium:
My takeaway from Käldström’s talk was that containers and Kubernetes definitely can run on nano-Linux devices like the Raspberry Pi.
That might be a pretty big deal for Off-The-Shelf Hackers who are deploying new products, automating processes and providing Internet of Things with untold numbers of nano-computing gadgets.
Beyond Bleeding Edge
Linux and microcontrollers are cutting edge, right?
I hitched my future to Linux years ago, knowing that it would eventually eat the information technology world. And, it has. Just look around. Linux runs on servers everywhere, manages the web and provides a reliable infrastructure for millions of applications and companies.
Oh sure, the Linux desktop never materialized and now that we have the cloud, ultra-sophisticated web applications and super-phones. The relevance of Linux on the desktop seems to be fading. But, geezers like me still pound out tech articles on our aging Linux desktop-capable notebooks.
There’s no doubt Linux has a huge footprint on the latest credit card-sized microcontroller devices, too.
The cloud, containers and container management platforms like Kubernetes are shaping up to be the next big thing, particularly with the Internet of Things. We’re not quite there yet. But the industry is just now beginning to apply “massive scale” thinking to edge devices and sensor nodes. On a positive note, the tools to manage collections of dissimilar hardware and compartmentalized software are maturing rapidly.
As services are scaled up and rolled out, the ability to package new features and software updates and to move new nodes into production will be critical for efficiently functioning operations. That’s the job of the cloud, containers and Kubernetes.
Justin Dean, a Senior Vice President of Platform and Technical Operations at Ticketmaster had a good talk about that company’s cloud and Kubernetes strategy from the 2016 CoreOS Tectonic Summit. In the talk, Dean stresses that automating and abstracting the development and deployment process upward will make life much easier for the whole dev/ops/production team. Put everything in containers and manage the containers with software, such as Kubernetes.
Containers at the Edge
I’ve been trying to come up with my own use case for the cloud, containers and Kubernetes for the devices that I build.
One example could be to use containers with my conference badges. I use a Raspberry Pi to play an .mp4 video on the little color LCD screen, using MPlayer. The “ozone tube” is nothing more than a tri-color LED cobbled into a re-purposed range-hood bulb. A Python program cycles the LED up and down in intensity, using pulse width modulation (PWM), giving it a cool visual effect.
Now imagine a collection of these badges, for a room full of attendees. Microcontroller badges are all the rage for conferences these days. The DEF CON badges get more sophisticated every year.
Wouldn’t it make sense to put each badge’s software in a container and update their programs over-the-air, via WiFi? Maybe you’d want each badge to play a different .mp4 video. Or, have a different color/pattern on the tri-color LED. Tying all the badges together using containers and possibly Kubernetes seems like it would make rolling out changes or even new badges, a snap. How else would you possibly manage 3,000 microcontroller powered badges? I’ll have to explore the possibilities.
I’m just at the beginning of learning about how containers might be applied to some of my projects. Containers are a highly abstract topic, compared to the hands-on, touch-the-hardware aspect of programming and rolling out a traditional Raspberry Pi-powered device.
Microcontrollers have matured past the “Hello, World light up an LED” stage. Powerful Linux-based boards, like the Raspberry Pi, Beagle Bone and others offer the capability of easily automating development, operations and new product roll out.
Where might you use containers in your projects?