Azure IoT Edge is built on open container technologies which allows it to integrate seamlessly with other amazing projects in the ecosystem. Today, we’d like to share an experimental project which lets you leverage your Kubernetes expertise and use the same vocabulary to manage IoT Edge deployments right from within your Kubernetes environment.
We leverage the Virtual Kubelet project which allows Kubernetes nodes to be backed by other services and make direct use of Kubernetes primitives. We implemented an IoT Edge provider, depicted by blue boxes in the below diagram, that transforms Kubernetes manifests to IoT Edge deployment manifests. A IoT Edge manifest can use tags to target on-prem edge devices whose configuration can be updated with a single kubectl command!
While this is an experimental project at this point, it does enable few interesting use cases that would be more difficult to achieve otherwise.
- Consistency between cloud and edge software configuration: Imagine synchronizing roll out of a new version of a compression algorithm that is used in your cloud as well as edge deployments. This tool lets you manage the cloud and edge release from a single pane of glass allowing you to deliver latest innovations to your customers easily and consistently.
- Applying identical deployments across multiple IoT hubs: Let’s say you have multiple edge devices that are connected to IoT hubs in different regions for performance or resiliency reasons, but the software configuration on these devices is identical. By creating a virtual Kubernetes node for each IoT hub, you can apply a deployment manifest to devices in different IoT hubs at the same time with a single command.
We have open sourced the IoT Edge Virtual Kubelet provider on Github. The repo has instructions on how to set this up on a Kubernetes cluster, connect it to IoT Hub and author IoT Edge deployments as Kubernetes manifests. While not all of the integration is complete, we want to share this early work to get feedback to guide further investments. So kick the tires and let us know what you think!