We already covered how to use Kubernetes and Raspberry Pi’s as a framework for creating and delivering your IoT solution. So now that that’s done, it’s time to test, monitor, manage, and deploy upgrades to each of those edge devices out there. In this article, we will cover how we manage to do that with a 0 dollar budget.
If you are new to this whole thing you may be comfortable reaching your devices with an ssh tunnel, perhaps even use sshuttle. But you will eventually find out that those methods/tools do not escalate very nicely. Also, these edge devices may need to reach out to each other to share information, upgrade, check availability, and so on and so forth.
These are just two reasons for the devices to be interconnected. And there are several VPN providers that could help you solve this issue. Most of them will even let you try their solution for free for some time, and after that you will have to pay. That may not be ideal when you are in a startup. Apart from that, with a VPN you lose track of where your traffic is going, but we will leave this item for a future article.
Another option is to spawn an open VPN server and have the edge devices connected to this server. This will add another node to manage.
As promised, the solution (or at least our solution): ZeroTier
I could try to explain what it is but lets rather let Adam Ierymenko explain: ZeroTier virtual networks are like chat rooms for machines. Just create virtual networks, join them from your devices and systems, approve authorization for the things you’ve added, and you’re done!
With this approach, all the connected devices will be reachable within the same network. At this point, you can ssh into the device using the ZeroTier IP address or have Kubernetes kubelet service reach the cluster master over the ZeroTier virtual network.
Zerotier is a different approach to VPN, it requires no cost upfront, and it’s free to use. It’s also simple to manage and use, in fact, once its installed, up and running you will forget it’s there. It requires no UI. It supports all relevant architectures. I strongly encourage you to try ZeroTier and start playing with it, we will get back to you with another article in the future showing some advanced features of ZeroTier such as flow rules, multipathing, and more.