...
The table below shows the recommended minimum specifications for the hardware in the testing installation. It is possible that lower spec hardware could be used for many of the nodes. The sensor node hardware in particular is specific to the testing installation and could be swapped out with any number of other platforms as long as LoRa connectivity was possible using the hardware.
Master, Deploy | Edge | Sensor | |
---|---|---|---|
Platform | VM running on commercial grade PC | NVidia Jetson Nano | Raspberry Pi 3 |
CPU | x86-64, Intel i5 or similar | ARM 64bit Cortex-A57 | ARM 32bit Cortex A-53 |
Cores | 2 | 4* 2 cores should be possible | 4* 1 core should be possible |
RAM | 4 GB | 2 GB | 1 GB |
Storage | 128 GB Hard Disk space | 32 GB SD Card | 32 GB SD Card |
Network | 1x Ethernet | 1x Ethernet | 1x Ethernet* *for provisioning |
LoRa | N/A | LRA-1 USB dongle | LRA-1 USB dongle |
Sensor | N/A | N/A | DHT-11 GPIO temperature/humidity sensor |
At a minimum one node is required for the master and deploy roles together, and at least one edge node and one sensor node. The testing installation uses two edge and sensor nodes.
...
When the edge node services are started, images will be downloaded from the docker registry on the master node to the edge nodes, so bandwidth may be a consideration if, for example, the edge nodes are accessed over a mobile network.
Software Prerequisites
The list below shows the required software for each node type prior to beginning the installation process.
- Deploy node
- Ubuntu 20.04
- Ansible 2.11.7
- Master node
- Ubuntu 20.04
- Edge node
- Ubuntu 20.04
- Sensor node
- Rasbian 11.1
Note that Ansible 2.9.6 is installed from the regular Ubuntu repository on Ubuntu 20.04, but needs to be upgraded from the Ansible repository to support the kubernetes.core
collection used by this blueprint. The setup_cicd.yml
playbook can be run with Ansible 2.9.6 and will update Ansible to the required version.
Additional Installed Software Packages
Note that the installation process will install several more software packages through Ansible playbooks. These are listed below for reference. Packages included by default in an install of Ubuntu 20.04 server are not included. The version numbers are those that are available/installed at the time of writing by the Ansible playbooks on Ubuntu 20.04.
- Deploy node
- make 4.2.1, build-essential 12.8, python3-pip 20.0.2
- Ansible collections
community.docker
,kubernetes.core
,community.crypto
- Docker (docker.io) 20.10.7
- Master node
- Docker (docker.io) 20.10.7
- python3-pip 20.0.2
- Python packages
cryptography
- mosquitto 2.0.14, mosquitto-clients 2.0.14
- Kubernetes (kubectl, kubelet, kubeadm) 1.22.6
- Flannel 0.16.3, flannel-cni-plugin 1.0.1 (Note: These are containers installed via Kubernetes through a config file)
- Edge node
- Docker (docker.io) 20.10.7
- Kubernetes (kubelet, kubeadm) 1.22.6 (kubectl may be installed for debugging purposes)
Installation
Setting Up the Deploy Node
...