Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: fixed eliot repo links and fixed directory refrences

Table of Contents
Introduction

The main scope of ELIOT  Operation & Management Features is to provide an ecosystem for the end user to operate and manage the ELIOT Topology which can include like checking the health status of ELIOT Edge Nodes, health status of Services services running on various Edge Nodes, Deploying Application in the ELIOT Cluster (Application deployment in a Kubernetes Cluster) etc.  The features are still evolving and ideas / proposals are always welcome.

The features are to be designed in such a way that mostly it to covers both the blueprints  IoT Gateway and SD-WAN / WAN Edge and uCPE Blueprints.

In Common features are added in ELIOT Release 2.0, currently following features are included :-

  • ELIOT UIPortal
  • ELIOT CLI (Command Line Interface) (Only applicable Applicable for IoT Gateway Blueprint)

In Release 2.0 both the features have given some basic operations ; enhancements are planned for future releases.

ELIOT UI Portal :-

ELIOT UI currently provides a GUI in which we can query the various Kubernetes Nodes, Pods and Services are there in the ELIOT Cluster. There are other options which are under development for future releases.

ELIOT CLI :-

ELIOT CLI (Command Line Interface) provide command line interface to setup the ELIOT Cluster. It In the current release following options are available

  • Setup of ELIOT Cluster; setting up of ELIOT Manager and ELIOT Edge Node
  • Reset of ELIOT Cluster - This will reset the ELIOT Cluster - Kubernetes Node Details, Pods , Services.
  • Cleanup of ELIOT Cluster. (This will reset the ELIOT Cluster and uninstall the software in each nodes of the ELIOT Cluster)
Note

Currently this feature is only applicable for IoT Gateway Blueprint and Ubuntu OS Environment.

How to use this document

The document includes details of prerequisites /pre-installation, installation and uninstalls steps.

The prerequisites and pre-installation software and hardware should be ready before executing the installation steps.For Installation, there are two mode Auto

Deployment

...

Deployment Architecture

For Release 12.0 the Deployment Architecture consists of two nodes  ELIOT Manager and a single ELIOT Edge Node.

ELIOT Manager acts as the Controller Node managing the ELIOT Edge Node(s) and the containerized applications running on the various ELIOT Edge Nodes.

ELIOT CLI has to be installed in the ELIOT Manager Node.

ELIOT Portal has two modules ELIOT UI Front End and ELIOT UI Back End. It is recommended to install the ELIOT UI Front End and Back End in separate Virtual Machines or Bare Metal which are able to ping each other and able to do ssh. ELIOT UI Backend module has to be installed on the ELIOT Manager only.

To deploy the common features one extra node (Bare metal or Virtual Machine) is required for ELIOT UI Front End Module, it is recommended. If one extra node is not available than it can be installed in any cloud Virtual Machine, in which the ELIOT Manager is present.

Pre-Installation Requirements

Hardware Requirements

Number of Hardware requirements depends mainly on the Use Case Scenario. A use case can have one to multiple ELIOT Edge Nodes

Note: For ELIOT Release 1.0 ELIOT Manager is acting a dual role Jump server (to execute the setup script) and as the Kubernetes Master. Also currently the below hardware capability are mentioned for the Virtual Machines
Note

The hardware requirements mentioned here are the extra nodes which are required apart from ELIOT Cluster required for installing the ELIOT Operation and Maintenance Features.

Hardware requirements  ELIOT Cluster nodes  are mentioned in the respective blueprint Installation Documents. ELIOT Release 2 - IoT Gateway Installation Guide

ELIOT Portal (Front End)

The Hardware requirements is same as the number of nodes required for ELIOT Cluster.

ELIOT Manager - One VM - 8 vCPU - 32 GB RAM (can be hosted in any cloud provider) with Ubuntu OS having internet and network connectivity with ELIOT Edge Node.

ELIOT Edge Node - Ubuntu OS 16.04 / 18.04 04  installed with networking capability and internet capability.

Detail of Hardware requirements can be referred

Minimum Hardware Requirements

ELIOT ManagerPortal Front End
HW Hardware AspectRequirements
# of Node(s)A virtualized machine hosted in any Cloud Provider having internet connectivity.
CPUMinimum 1 socket x86_AMD64 or ARM64 with Virtualization support.
RAM

4 GB, it depends on the number of ELIOT Edge nodes which will be managed by ELIOT Manager.

For Deployment in Development environment 8 GB is sufficient.


Disk120 GB ~ 512GB (Depending on the overall ELIOT Topology)
Networks1
ELIOT Edge Node(s)HW AspectRequirements# of Node(s)1 Eliot Edge NodeCPUMinimum 1 socket x86_AMD64 or ARM64.RAM

1 GB, it depends on the number of ELIOT Edge nodes which will be managed by ELIOT Manager.

For Deployment in Development environment 4 GB is sufficient.

Disk20 GB ~ 256 GBNetwork1

Recommended Hardware Requirements

2 GB ~ 16 GB it depends on the number of ELIOT Edge nodes which will be managed by ELIOT Manager.

For Deployment in Development environment 4 GB is sufficient

ELIOT ManagerPortal Front End
HW AspectRequirementscc
No. of NodesA virtualized machine hosted in any Cloud Provider having internet connectivity.
CPUMinimum 1 socket x86_AMD64 or ARM64 with Virtualization support.
RAM

8 GB ~ 64 GB it depends on the number of ELIOT Edge nodes which will be managed by ELIOT Manager.32 GB

For Deployment in Development environment 4 GB is sufficient.


Disk120 GB ~ 512GB (Depending on the overall ELIOT Topology)
Networks2 to 4 Network Interfaces with public IP.ELIOT Edge Node(s)HW Aspect

#of Node(s)

1 Eliot Edge Node
CPUMinimum 1 socket x86_AMD64 or ARM64 with Virtualization support.
RAM
Disk20 GB ~ 256GB (Depending on the overall ELIOT Topology)
Networks2 Network Interfaces .

Software Prerequisites

Software Prerequisites

Note

The software prerequisites mentioned here are the once which are required for the ELIOT Operation & Maintenance features to work successfully.

ELIOT CLI

  • Virtual Machines (ELIOT Manager + ELIOT Edge Node) Virtual Machines preinstalled with Ubuntu 16.04.
  • SSH Server running on both the Nodes (root user created in the ELIOT Manager and ELIOT Edge NodeSSH Server running in both the Nodes.)
  • sshpass installed in ELIOT Manager
  • scp SCP installed in ELIOT Manager and ELIOT Edge Node
  • GO Lang Version greater 1.12 installed in ELIOT Manager. [https://tecadmin.net/install-go-on-ubuntu/]
  • Git and ELIOT Edge Node (Note : This is required when we are setting up the ELIOT using KubeEdge.)git should be installed in ELIOT Manager and ELIOT Edge Node.

ELIOT UI

  • Virtual Machine installed with Ubuntu 16.04.

Database Prerequisites

Schema scripts

...

  • Internet Connectivity in both ELIOT Manager and ELIOT Edge Node
  • ELIOT Manager and ELIOT Node should be able to ping each other. Same network
  • ELIOT Portal Front End Virtual Machine or Bare Metal should be able to ping to the ELIOT Manager Node where ELIOT Portal Back End is Installed.

Bare Metal Node Requirements

...

Installation High-Level Overview

In ELIOT Release 1.0 for deployment 2 Ubuntu 16.04 Virtual Machines are used.

The steps includes to setup the following two environments : 

...

The installation guide provide steps to install ELIOT CLI and ELIOT Portal Feature.

ELIOT CLI Package is installed on the ELIOT Manager Node

ELIOT Portal has two modules ELIOT Portal Front-End and ELIOT Portal Back-End. ELIOT Portal Front End is recommended to be installed on a separate Virtual Machine and ELIOT Portal Back End has to be installed on ELIOT Manager Node. Currently this document

...

Bare Metal Deployment Guide

...

Standard Deployment Overview

ELIOT CLI Installation:

Setup the ELIOT CLI and build the ELIOT CLI binary.

No Format
root@akraino-slave-001:# git clone "https://gerrit.akraino.org/r/eliot"
root@akraino-slave-001:# cd eliot/blueprints/eliot/common/elcli/
root@akraino-slave-001:# cp -r elcli $GO_HOME/src
root@akraino-slave-001:# go install [this command will build the elcli binary package]

ELIOT CLI Pre-Configuration

Edit the nodelist file with ELIOT Edge Node details. Replace the below contents with the actual value with '|' separated.

<eliotedgenodeusername>|<eliotedgenodeip>|<eliotedgenodepassword>

eliotedgenodeusername :- ELIOT Edge Node User Name. Example : akraino-slave-002
eliotedgenodeip :-  ELIOT Edge Node IP. Example : 159.123.1.50
eliotedgenodepassword :- ELIOT Edge Node Password used in setup.sh script to login to ELIOT Edge node from ELIOT Manager to execute scripts in ELIOT Edge node.

The ELIOT Edge Node should be reachable from ELIOT Manager and ssh should work from ELIOT Manager to ELIOT Edge node as a prerequisite.

Code Block
root@akraino-slave-001:#cd eliot/blueprints/iotgateway/scripts
root@akraino-slave-001:~/eliot/blueprints/iotgateway/scripts#vim nodelist

Once the above configurations are done, we can execute the ELIOT CLI Commands for installing , reset and clean up of ELIOT Cluster.

ELIOT CLI Commands Details:

Setup ELIOT Cluster

Code Block
root@akraino-slave-001:#cd go/src/elcli
root@akraino-slave-001:#elcli init

Reset ELIOT Cluster

Code Block
root@akraino-slave-001:#cd go/src/elcli
root@akraino-slave-001:#elcli reset

Cleanup ELIOT Cluster

Code Block
root@akraino-slave-001:#cd go/src/elcli
root@akraino-slave-001:#elcli cleanup

ELIOT Portal Setup:

ELIOT Cluster should be setup first before Installing ELIOT Portal Setup

ELIOT Portal Front-End:

Pre-requisites - Open source softwares required:Packages To Be Installed :-

  • Node Packet Manager ( npm )     

...

  • -     6.10.2 / any latest version

  • Node.js                                                       -     12.9.0 / any latest version

  • Angular8                                               

...

  •    -     8.2.2 / any latest version

Install nvm - Node Version Manager

Node Version Manager helps to manage the version of node and also used to switch between the versions with ease.

...

Note

Please check the installation of nvm using nvm  then proceed

Command : nvm --version command should output the version of node version manager

Install nodejs server

Nodejs will play the role of server to run our ELIOT Portal UI

...

Note

$ nvm install node

If the above command is issued instead of the mentioned command, it will install the latest versions of npm and node server

Please check the installation of node and npm using 

root@akraino-slave-001:# npm --version
root@akraino-slave-001:# node --version

npm --version command should display the version of npm

node --verison should display version of node

Install Angular 8:

Angular 8 is a open source framework used to create responsive dynamic single page web applications.  It internally uses typescript.  

...

No Format
root@akraino-slave-001:# npm install -g @angular/cli@latest

Setup ELIOT Portal by downloading the node modules as dependencies:

ELIOT portal UI code of angular8 requires some dependency packages of node modules. By executing the following commands, dependency node modules will get downloaded automatically

No Format
root@akraino-slave-001:# git clone "https://gerrit/.akraino.org/r/eliot"
root@akraino-slave-001:# cd eliot/common/eliot-ui/frontend-src
root@akraino-slave-001:# npm install
root@akraino-slave-001:# npm start

...

Note

Default, it will start the UI on 4200 port

https://localhost:4200

ELIOT Portal Backend Setup:

The ELIOT Portal Back-End module has to be executed on the ELIOT Manager Node. The backend server will receive REST API requests from ELIOT Frontend and response back the results of the ELIOT Cluster.

...

Code Block
languagebash
titleStart ELIOT Backend
root@akraino-slave-001:# git clone "https://gerrit/.akraino.org/r/eliot" [If this step is already executed can be ignored]
root@akraino-slave-001:# cd eliot/releases/v1.1.0/eliotuiblueprint/common/eliot-ui/be/src/eliotk8sclient/
root@akraino-slave-001:# tarmvn -xvzf eliotui-be-$version-$OS-$ARCH.tar.gzclean install
root@akraino-slave-001:# cd target
root@akraino-slave-001:# jar -jar eliotk8sclient-0.0.1.jar. [The command will start the ELIOT Portal Backend which is a Spring Boot Application.]

ELIOT Deployment using Kubernetes

Clone the ELIOT git repo in ELIOT Manager node. It will create eliot folder, for executing the script go to $HOME/eliot/scripts folder.

Edit the nodelist file with ELIOT Edge Node details.  Replace the below contents with the actual value with '|' separated. 

...

<eliotedgenodeusername>|<eliotedgenodeip>|<eliotedgenodepassword>

  • eliotedgenodeusername – ELIOT Edge Node User Name.
  • eliotedgenodeip – ELIOT Edge Node IP
  • eliotedgenodepassword - ELIOT Edge Node Password used in setup.sh script to login to ELIOT Edge node from ELIOT Manager to execute scripts in ELIOT Edge node.

The ELIOT Edge Node should be reachable from ELIOT Manager and ssh should work from ELIOT Manager to ELIOT Edge node as a prerequisite.

No Format
root@akraino-slave-001:#git clone "https://gerrit.akraino.org/r/eliot"
root@akraino-slave-001:#cd eliot/scripts
root@akraino-slave-001:~/eliot/scripts#vim nodelist

Snapshot Deployment Overview

There are two images created for Manager and Node machines. These are .qcow2 files. After deploying the VMs using these images, your setup for ELIOT is ready in minutes. Following is the link to the document to use these images:

Snapshot Deployment Overview

N/A         https://docs.google.com/document/d/1TwtDRvxJ_0IFzc5KvO7aaOh3If-jhpCSrccjttQA4LE/edit?usp=sharing

Special Requirements for Virtual Deployments

...

Interacting with Containerized Overcloud

N/A

Verifying the Setup

Verifying ELIOT Kubernetes Deployment

...

The setup script also deploys NGINX server on the ELIOT Edge Node and verifies whether its deployed successful or not.

Developer  Guide and Troubleshooting

Uninstall Guide

Following two files can be used to revert the changes made by ELIOT deployment through kubernetes.

...

Troubleshooting

N/A

Error Message Guide

...