Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Introduction

This guide covers both ELIOT IOT Gateway and ELIOT SD-WAN Use cases.

This guide provides the information for setting up the ELIOT Environment which includes ELIOT Manager and ELIOT Edge Node(s) with details of software and hardware specifications.

...

ELIOT Edge Node(s)
HW Aspect

#of Node(s)

1 Eliot Edge Node
CPUMinimum 1 socket x86_AMD64 or ARM64 with Virtualization support.
RAM

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


Disk20 GB ~ 256GB (Depending on the overall ELIOT Topology)
Networks2 Network Interfaces .

Software Prerequisites

  • Virtual Machines preinstalled with Ubuntu 16.04
  • root user created in the ELIOT Manager and ELIOT Edge Node
  • SSH Server running in both the Nodes.
  • sshpass installed in ELIOT Manager
  • scp installed in ELIOT Manager and ELIOT Edge Node
  • GO Lang installed in ELIOT Manager 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.

Database Prerequisites

Schema scripts

...

Jump Host Requirements

N/A

Network Requirements

  • Internet Connectivity in both ELIOT Manager and ELIOT Edge Node
  • ELIOT Manager and ELIOT Node should be able to ping each other. Same network

Bare Metal Node Requirements

...

Creating the Settings Files

N/A

Running

N/A

Virtual Deployment Guide

For Virtual Deployment two Ubuntu VM's are required one for ELIOT Manager and ELIOT Edge Node both the node should have internet connectivity , network interface and network connectivity between the two VM's.

...

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

After editing the nodelist file , execute the setup.sh script.  The setup.sh script internally installs Docker and Kubernetes with Calico CNI plugin and RBAC for authorization.

No Format
root@akraino-slave-001:~/eliot/scripts#./setup.sh

ELIOT Deployment using KubeEdge

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

Edit the config_kubeedge file with ELIOT Manager and ELIOT Edge Node

The format of config_kubeedge file is as follows :

edgenodeusr=""

edgenodeip=""

edgenodepassword=""

masternodeusr=""

masternodeip=""

masternodepassword=""


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 config_kubeedge
root@akraino-slave-001:~/eliot/scripts#./kubeedge_setup.sh


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:

Using Kubernetes:

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

Using KubeEdge:

         https://docs.google.com/document/d/1kmSJtX3jZRLJEcHlBSSiwNGDdQ9XVB3xIfEUaeHnWGo/edit?usp=sharing

Special Requirements for Virtual Deployments

...

Including Upstream Patches with Deployment

N/A

Running

N/A

Interacting with Containerized Overcloud

N/A

Verifying the Setup

Verifying ELIOT Kubernetes Deployment

The setup.sh script will install the ELIOT Manager and one ELIOT Edge Node. After script execution is completed the kubernetes cluster setup can be checked by executing kubectl get nodes. It will show both the ELIOT Manager and the ELIOT Edge Node as ready.

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

For Installation via Kubernetes:

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

  1. kubernetes_reset.sh:
    Purpose: There were certain issues occurring when the setup.sh file was executed again on the same setup. it threw error saying ‘the file/port in already in use’ when setup.sh file was executed again.
    Solution: A list was prepared for errors occurring on re-execution of setup.sh file. To fix them, some commands were executed manually to reset the changes. Once the list was finalized, these were consolidated in a .sh file. The file is in eliot/scripts/ folder.
    What it does:
    -- Resets kubeadm changes on both Manager and Edge Node machine.
    -- Installs iptables, ipvsadm required to restart kubectl service on both Manager and Edge Node machine.
    -- Restarts kubelet service on both Manager and Edge Node machine.
    -- Releases the port 10250 on both Manager and Edge Node machine.
    -- Deletes kubernetes file on Edge Node machine.

  2. kubernetes_cleanup.sh
    Purpose: There was no file to rollback the changes done by setup.sh.
    Solution: A list of changes done by setup.sh file was prepared and then commands were written to rollback those installations and changes. The file is in eliot/scripts/ folder.
    What it does:
    -- Uninstalls Docker, Kubernetes, Kubectl, Kubeadm, Kubelet on both Manager and Edge Node machine.
    -- Resets kubeadm changes on both Manager and Edge Node machine.
    -- Installs iptables, ipvsadm required to restart kubectl service on both Manager and Edge Node machine.
    -- Restarts kubelet service on both Manager and Edge Node machine.
    -- Releases the port 10250 on both Manager and Edge Node machine.

For Installation via KubeEdge:

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

  1. kubeedge_reset.sh:
    Purpose: There were certain issues occurring when the setup.sh file was executed again on the same setup. it threw error saying ‘the file/port in already in use’ when setup.sh file was executed again.
    Solution: A list was prepared for errors occurring on re-execution of setup.sh file. To fix them, some commands were executed manually to reset the changes. Once the list was finalized, these were consolidated in a .sh file. The file is in eliot/scripts/ folder.
    What it does:
    -- Resets kubeadm changes on both Manager and Edge Node machine.
    -- Installs iptables, ipvsadm required to restart kubectl service on both Manager and Edge Node machine.
    -- Restarts kubelet service on both Manager and Edge Node machine.
    -- Releases the port 10250 on both Manager and Edge Node machine.
    -- 

  2. kubeedge_cleanup.sh
    Purpose: There was no file to rollback the changes done by setup.sh.
    Solution: A list of changes done by setup.sh file was prepared and then commands were written to rollback those installations and changes. The file is in eliot/scripts/ folder.
    What it does:
    -- Uninstalls Docker on both Manager and Edge Node machine.
    -- Resets kubeadm changes on both Manager and Edge Node machine.
    -- Installs iptables, ipvsadm required to restart kubectl service on both Manager and Edge Node machine.
    -- Restarts kubelet service on both Manager and Edge Node machine.
    -- Releases the port 10250 on both Manager and Edge Node machine.

Troubleshooting

N/A

Error Message Guide

...

Blueprint Deployment Maintenance

N/A

Frequently Asked Questions

N/A

License

ELIOT source Code Any software developed by the "Akraino ELIOT" Project is licensed under the
Apache License, Version 2.0 (the "License");
you may not use the content of this software bundle except in compliance with the License.
You may obtain a copy of the License . ELIOT Blueprint Documentation is licensed under the Creative Commons Attribution 4.0 International at <https://www.apache.org/licenses/LICENSE-2.0>

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

References


Definitions, acronyms and abbreviations