SPDX-License-Identifier: Apache-2.0
Copyright (c) 2022 Intel Corporation
Intel® Smart Edge Open Developer Experience Kit – Default Installation Instructions
Overview
Intel® Smart Edge Open experience kits let you quickly deploy an Intel® Smart Edge Open edge cluster. The cluster serves as a platform for building solutions that combine cloud native technologies, wireless networking, and high-performance compute to deliver AI, video, and other services optimized for performance at the edge.
Experience kits are made up of building blocks, stand-alone blocks of code that provide specific functionality in the overall architecture, such as telemetry or support for accelerators. When you deploy an experience kit, the kit deploys its building blocks to your system. The Developer Experience Kit provides a set of building blocks designed to support a variety of edge computing use cases.
How It Works
The Developer Experience Kit contains building blocks for containerized networking, resource management, and telemetry.
Intel® Smart Edge Open Developer Experience Kit building blocks
The Developer Experience Kit uses Intel’s Edge Software Provisioner (ESP) to streamline deployment of the edge node cluster. ESP automates provisioning the operating system and software stack of the hardware that hosts the cluster.
Building Blocks Installed
Installing the Developer Experience Kit will install Kubernetes and the following building blocks to your target system:
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 |
CPU Manager | Allows workloads to be assigned to a designated CPU core. |
See the Developer Experience Kit release notes for building block version information.
Supported Hardware
The Developer Experience Kit has been validated to work on a Dell PowerEdge R750 server with these specifications. We cannot guarantee support for issues that occur in deployments using other hardware.
Get Started
The instructions below walk you through installing the Developer Experience Kit onto a target system. This is the default installation, without security features enabled. To install the Developer Experience Kit with security features enabled, see the advanced installation instructions
After completing these instructions, you will have created an edge node cluster capable of hosting edge applications. You can then install reference implementations or onboard edge applications to the cluster.
Requirements
You will need two machines: a provisioning system and a target system.
The provisioning system is where you run the Edge Software Provisioner to build a bootable image of the experience kit.
The target system is where you install the bootable image to create an edge cluster.
Note that the provisioning system’s user account must be added to /etc/sudoers for installation to succeed.
Provisioning System
- At least 4 GB RAM
- At least 20 GB hard drive
- USB flash drive
- Ubuntu 20.04 LTS
- Internet access
Target System
Below are the minimum requirements for running the Developer Experience Kit. See the full specs for the supported hardware.
- A server with two 3rd Generation Intel® Xeon® Scalable Processors
- At least 32 GB RAM
- Two SATA SSDs
- Two NICs
- Connection to the provisioning system
NOTE: The provisioning process will install Ubuntu 20.04 LTS on the target machine. Any existing operating system will be overwritten.
Prepare the Provisioning System
The following steps will walk you through installing software to the provisioning system, including Git, Docker and Docker Compose, and Python.
You must be logged in as root on the provisioning system for the following steps. To become the root user, run the following command on the provisioning system:
$ sudo su -
Install Git
Install Git to the target system using the following command:
# apt-get install git
Install Docker and Docker Compose
In the next steps you will install Docker, configure it to use a proxy server, and install Docker Compose.
Install Docker from the Docker Repository
Follow the installation instructions at the Docker repository. Installation by package manager is not supported and will result in errors.
Configure Docker to Use a Proxy Server
Create or edit the Docker configuration file
#mkdir ~/.docker
#vi ~/.docker//config.json
{
"proxies":
{
"default":
{
"httpProxy":"http://proxy.example.com:80"
"httpsProxy": "http://proxy.example.com:80",
"noProxy": "127.0.0.0/8"
}
}
}
Set your environment variables. Replace myproxy.hostname
in the example with the information for your own proxy.
# mkdir -p /etc/systemd/system/docker.service.d
# vi /etc/systemd/system/docker.service.d/proxy.conf
[Service]
Environment="HTTP_PROXY=http://myproxy.hostname:8080"
Environment="HTTPS_PROXY=https://myproxy.hostname:8080/"
Environment="NO_PROXY="localhost,127.0.0.1,::1"
Reload the file and restart the Docker service
# systemctl daemon-reload
# systemctl restart docker.service
Install Docker Compose
#apt install docker-compose
Install Python3 and Related Libraries
Run the following commands to install Python3 and related libraries:
# apt update
# apt install python3
# apt install python3-pip
# pip3 install PyYAML
# pip3 install fqdn
Clone the Developer Experience Kit Repository
Clone the Developer Experience Kit repo to the provisioning system:
# git clone https://github.com/smart-edge-open/open-developer-experience-kits.git ~/dek
# cd ~/dek
Generate the Configuration File
Run the following command to generate the custom.yml
file. It is recommended you generate a new congfiguraion file instead of using the default default_config.yml
file provided.
[Provisioning System] # sudo ./dek_provision.py --init-config > custom.yml
Create the Installation Image
Disable Security Features for Default Installation
To install the edge node without security features enabled, edit the following parameters in the group_vars:
section of the custom.yml
file:
# vi custom.yml
[group_vars:]
[groups:]
[all:]
sgx_enabled: false
platform_attestation_node: false
To deploy the Developer Experience Kit with security features enabled, see the advanced installation instructions.
Configure the SR-IOV Network Operator
If you are installing the Developer Experience Kit to a target system that uses a different network adapter than the validated NIC, you’ll need to update the custom.yml
file with the exact names of the target node’s NIC interfaces. To do this, create a [cvl_sriov_nics]
section with a [Debian]
dictionary.
# vi custom.yml
[group_vars:]
[groups:]
[all:]
[cvl_sriov_nics]
[Debian]
c0p0: "<>"
c0p1: "<>"
c1p0: "<>"
c1p1: "<>"
Disable secure boot
Turn off the flags for secure boot and trusted platform module in the custom.yml
file:
#Secure boot and trusted media platform options.
bios:
secure_boot: false
tpm: false
Build and Run the Provisioning Services
The dek_provision.py
script invokes the Edge Software Provisioner to build and run the provisioning services and prepare the installation media.
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 on the provisioning system:
# sudo ./dek_provision.py --run-esp-for-usb-boot --config=custom.yml
Alternatively, to specify the Docker registry mirror to be used during the Developer Experience Kit deployment use the --registry-mirror
option from the provisioning system:
# sudo ./dek_provision.py --registry-mirror=http://example.local:5000 --run-esp-for-usb-boot --config=custom.yml
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:
# ./esp/flashusb.sh --image ./out/SEO_DEK-efi.img --bios efi
The command will 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 with the status of the deployment. For example:
Smart Edge Open Deployment Status: in progress
One of three statuses will be displayed:
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 on the target system:
$ sudo journalctl -xefu seo
You can find more details in the deployment log found in /opt/seo/logs
.
Provisioning guide and troubleshooting
Find detailed information on provisioning process and on resolving common installation problems in the provisioning guide.
Summary and Next Steps
In this guide, you created an Intel® Smart Edge Open edge node cluster capable of hosting edge applications. You can now install sample applications, or reference implementations downloaded from from the Intel® Developer Catalog
- Learn how to onboard a sample application to your cluster.
- Download and run reference implementations from the Intel® Developer Catalog