Overview
uMEC (aka MicroMEC, or Micro-MEC) is a project under the Akraino Edge umbrella. SUSE joined in 2019 and together with partners we managed to create the 1st prototype infrastructure.
The concept has been successfully used on a few hackathons last year:
2020 Plans
A few weeks ago we sat down with Nokia and discussed how could we reshape the existing code and documentation. We agreed to relocate the code to github and properly document the architecture and the installation. This work will already highlight the architecture changes we are planning to accommodate different edge computing units (like Nvidia Jetson Nano) and more sensors in general. The uMEC APIs will also be redesigned and the results of the work will hopefully be presented on a couple of conferences and hackathons this year.
Hackweek Work
I would like to focus on the installation and architecture documentation. The setup we have been using throughout 2019 included quite a few pieces:
The prototype edge units were based on Raspberry Pi 3B+ and 4 computers. The RPis ran openSUSE TW (64 bit) and Raspbian.
The uMEC APIs were deployed in containers and orchestrated by k3s. Along the uMEC APIs we also had a hosted Tensorflow service where we deployed models for simple object detection.
On the "server side" we had k8s and OpenFaaS Cloud; OFC. With OFC we offered an easy to use development environment for quick prototyping using the uMEC APIs.
This year we will setup a proper CI / CD pipeline using github. The deployment will take place on hardware that is hosted at Metropolia University where the students are also working on uMEC use cases.
Our goal is to enable the setup and creation of uMEC environments by anybody. As the hardware and software is all available, we just need to document these properly. I hope that by the end of the hack week uMEC will be in a much better shape.
Please join, if you are interested in 5G Edge computing and would like to learn more about industrial use cases in the area.
Looking for hackers with the skills:
This project is part of:
Hack Week 19
Activity
Comments
Be the first to comment!
Similar Projects
Edge Image Builder and mkosi for Uyuni by oholecek
Description
One part of Uyuni system management tool is ability to build custom images. Currently Uyuni supports only Kiwi image builder.
Kiwi however is not the only image building system out there and with the goal to also become familiar with other systems, this projects aim to add support for Edge Image builder and systemd's mkosi systems.
Goals
Uyuni is able to
- provision EIB and mkosi build hosts
- build EIB and mkosi images and store them
Resources
- Uyuni - https://github.com/uyuni-project/uyuni
- Edge Image builder - https://github.com/suse-edge/edge-image-builder
- mkosi - https://github.com/systemd/mkosi
Build Edge Image Builder ISO with SUSE Manager by mweiss2
Description
With SUSE Manager, we can build OS Images using KIWI and container images. As we have Edge Image Builder, we want to see if it is possible to use SUSE Manager to build/customize OS Images by integrating Edge Image Builder as well.
Goals
To make the process easier for customers, a single-build pipeline that automatically adds the combustion and artifact files from the EIB process is desirable.
- Kiwi and EIB need to come from a Git Repository.
- Kiwi and EIB need to be running as containers.
- Configuration options for the images used for Kiwi and EIB build.
- X86 and ARM64 Support.
- SUSE Manager 4.3 and 5.X Support.
- SLES 15 SP6 / SL Micro 6.0 and SL Micro 6.1 Support.
Outcome
- Change the Kiwi build process to use Podman with the Kiwi image registry.suse.com/bci/kiwi:10.1.10
- Change the Edge Image Builder to produce a combustion-only ISO
- Extract the contents and write them to a dedicated /OEM partition integrated via Kiwi into the ISO Kiwi creates.
Sources and PRs
- https://github.com/Martin-Weiss/kiwi-image-micro-gpu-60
- https://github.com/suse-edge/edge-image-builder/pull/618
- https://github.com/uyuni-project/uyuni/pull/9507
Small healthcheck tool for Longhorn by mbrookhuis
Project Description
We have often problems (e.g. pods not starting) that are related to PVCs not running, cluster (nodes) not all up or deployments not running or completely running. This all prevents administration activities. Having something that can regular be run to validate the status of the cluster would be helpful, and not as of today do a lot of manual tasks.
As addition (read enough time), we could add changing reservation, adding new disks, etc. --> This didn't made it. But the scripts can easily be adopted.
This tool would decrease troubleshooting time, giving admins rights to the rancher GUI and could be used in automation.
Goal for this Hackweek
At the end we should have a small python tool that is doing a (very) basic health check on nodes, deployments and PVCs. First attempt was to make it in golang, but that was taking to much time.
Overview
This tool will run a simple healthcheck on a kubernetes cluster. It will perform the following actions:
node check: This will check all nodes, and display the status and the k3s version. If the status of the nodes is not "Ready" (this should be only reported), the cluster will be reported as having problems
deployment check: This check will list all deployments, and display the number of expected replicas and the used replica. If there are unused replicas this will be displayed. The cluster will be reported as having problems.
pvc check: This check will list of all pvc's, and display the status and the robustness. If the robustness is not "Healthy", the cluster will be reported as having problems.
If there is a problem registered in the checks, there will be a warning that the cluster is not healthy and the program will exit with 1.
The script has 1 mandatory parameter and that is the kubeconf of the cluster or of a node off the cluster.
The code is writen for Python 3.11, but will also work on 3.6 (the default with SLES15.x). There is a venv present that will contain all needed packages. Also, the script can be run on the cluster itself or any other linux server.
Installation
To install this project, perform the following steps:
- Create the directory /opt/k8s-check
mkdir /opt/k8s-check
- Copy all the file to this directory and make the following changes:
chmod +x k8s-check.py