SPDX-License-Identifier: Apache-2.0
Copyright (c) 2021 Intel Corporation

Intel® Smart Edge Open Developer Experience Kit

Overview

Intel® Smart Edge Open experience kits provide customized infrastructure deployments for common network and on-premises edge use cases. Combining Intel cloud-native technologies, wireless networking, and high-performance compute, experience kits let you deliver AI, video, and other services optimized for performance at the edge.

The Developer Experience Kit (DEK) lets you easily install and instantiate an Intel® Smart Edge Open edge cluster. Once the cluster has been installed, you can onboard edge applications and run reference implementations – example end-to-end solutions built on Intel® Smart Edge Open – to get familiar with operating a stand-alone edge node or to start creating your own solution.

How It Works

Smart Edge Open Developer Experience Kit Edge Node Component Diagram

Intel® Smart Edge Open Developer Experience Kit building blocks

The Developer Experience Kit uses Edge Software Provisioner, which automates the process of provisioning bare-metal or virtual machines with an operating system and software stack. Intel® Smart Edge Open provides a fork of the Ubuntu OS ESP Profile tailored for its specific needs.

Building Blocks

Building blocks provide specific functionality in the platform you’ll deploy. Each experience kit installs a set of building blocks as part of deployment. You can use additional building blocks to customize your platform, or develop your own custom solution by combining building blocks.

The Developer Experience Kit includes the following building blocks:

Building Block Functionality
Calico CNI Default container network interface
SR-IOV Network Operator Additional container network interface
Multus CNI Support for multiple network interfaces
Harbor Cloud native registry service that stores and distributes container images
Telemetry Remote collection of device data for real-time monitoring
Node Feature Discovery (NFD) Detects and advertises the hardware features available in each node of a Kubernetes* cluster
Topology Manager Coordinates the resources allocated to a workload
Core Pinning Dedicated CPU core for workload
Provisioning Automated system provisioning

Get Started

The instructions below walk you through provisioning the operating system and Developer Experience Kit on a target system. After completing these instructions, you will have created a single edge node cluster capable of hosting edge applications. You can then optionally install reference implementations from the Intel® Edge Software Hub.

Smart Edge Open Developer Experience Kit Edge Node Component Diagram

Requirements

You will need two machines: a provisioning system where you will build a bootable image of the experience kit, and a target system where you will install the experience kit to create an edge cluster.

Provisioning System

  • Memory: At least 4GB RAM
  • Hard drive: At least 20GB
  • USB flash drive
  • Operating system: Ubuntu 20.04.
  • Git
  • Docker and Docker Compose
  • Python 3.6 or later, with the PyYAML module installed
  • Internet access

NOTE: You must add the user account on the provisioning system to /etc/sudoers.

Target System

  • A server with two sockets, each populated with a 3rd Generation Intel® Xeon® Scalable Processor
  • Memory: At least 32GB RAM
  • Hard drives: Two SATA SSDs, one for booting and one for data caching
  • Network adapters: Two NICs, one connected to each socket
  • Connection to the provisioning system

NOTE: The provisioning process will install Ubuntu 20.04 on the target machine. Any existing operating system will be overwritten.

Knowledge

Basic knowledge of operating system, Kubernetes, and server administration.

Install the Developer Experience Kit

The Developer Experience Kit provides a command line utility (dek_provision.py) which uses the Intel® Edge Software Provisioner toolchain to deliver a smooth installation experience.

You must be logged in as root on the provisioning system for the following steps. To become the root user, run the following command:

[Provisioning System] $ sudo su -

NOTE: In order for the provisioning script to have the proper permissions, you must run the sudo command as shown above. Using sudo with the dek_provision.py command will not work.

Clone the Repository

Clone the kit’s repository to the provisioning system:

[Provisioning System] # git clone https://github.com/smart-edge-open/open-developer-experience-kits.git --branch=smart-edge-open-21.09 ~/dek
[Provisioning System] # cd ~/dek

Create the Installation Image

Run the Provisioning Script

The dek_provision.py script builds and runs the provisioning services and prepares the installation media.

Build and Run the Provisioning Services

To build and run the provisioning services in a single step, run the following command from the root directory of the Developer Experience Kit repository:

[Provisioning System] # ./dek_provision.py --run-esp-for-usb-boot

Alternatively, to specify the Docker registry mirror to be used during the Developer Experience Kit deployment use the --registry-mirror option:

[Provisioning System] # ./dek_provision.py --registry-mirror=http://example.local:5000 --run-esp-for-usb-boot

The script will create an installation image in the out subdirectory of the current working directory.

Flash the Installation Image

To flash the installation image onto the flash drive, insert the drive into a USB port on the provisioning system and run the following command:

[Provisioning System] # ./esp/flashusb.sh --image ./out/SEO_DEK-efi.img --bios efi

The command should present an interactive menu allowing the selection of the destination device. You can also use the --dev option to explicitly specify the device.

Install the Image on the Target System

Begin the installation by inserting the flash drive into the target system. Reboot the system, and enter the BIOS to boot from the installation media.

Log Into the System After Reboot

The system will reboot as part of the installation process.

The login screen will display the system’s IP address and the status of the experience kit deployment. To log into the system, use smartedge-open as both the user name and password.

Check the Status of the Installation

When logging in using remote console or SSH, a message will be displayed that informs about status of the deployment, for example: Smart Edge Open Deployment Status: in progress

Three statuses are possible:

  • in progress - Deployment is in progress.
  • deployed - Deployment was successful. The Developer Experience Kit cluster is ready.
  • failed - An error occurred during the deployment.

Check the installation logs by running the following command:

[Provisioned System] $ sudo journalctl -xefu seo

Alternatively, you can inspect the deployment log found in /opt/seo/logs.

Summary and Next Steps

In this guide, you created an Intel® Smart Edge Open edge node cluster capable of hosting edge applications. You can then optionally install reference implementations from the Intel® Edge Software Hub.