Menu Close

VIM implementation for ACCORDION

Inside the Minicloud layer of ACCORDION, there are components implementing the capabilities and functions requested to abstract and manage the infrastructural resources made available to next-gen applications.

One of these components is the VIM (Virtualized Infrastructure Management). The VIM takes charge of managing a virtual infrastructure, allowing to tune its configuration, monitor and manage the operation of workloads in an environment where resources are heterogeneous across the different nodes, whose typology goes from industry standard servers to lower-powered devices. Hence, the VIM provides monitoring services for the processes running on the cluster nodes, maintains a configuration database and runtime status, and closely interacts with virtualization systems, supporting different CPU architectures.

The VIM may itself be executed on low-powered nodes. Hence, its requirements include the need to have a small footprint in term of resources needed to run (CPU, memory, etc.). In ACCORDION, a careful investigation has been performed to find out the best fitting options among the available baseline tools to implement the VIM. After such investigation, the choice fell on K3S [1], a light weighted Kubernetes [2] distribution.

The choice of K3S was driven by several criteria, including its licensing, the presence of a strong developer community, its security features, the project maturity, its extensibility, and its hardware requirements. K3S has all the core features of K8S (the standard Kubernetes distribution), plus a series of improvements designed for running on clusters made up of low-powered hosts, particularly looking at IoT scenarios.

So, it is distributed with a single small binary file, obtained by eliminating old code such as deprecated API or non-essential API (alpha versions are not enabled by default). Moreover, non-default admission controllers, in-tree cloud providers and storage drivers are cut out (they can be added by users according to their needs).

As Kubernetes distribution, K3S support the execution of Docker containers trough Containerd. Since ACCORDION wants to support different kinds of virtualized workloads, to add virtual machine execution it also uses the KubeVirt framework. KubeVirt is a set of API and processes running in a K8S/K3S cluster, both on master and worker nodes, enabling to manage virtual machines under the same cluster. KubeVirt presents a good project maturity and is supported by a strong developer Community. KubeVirt is a CNCF Sandbox project  [3], and is compatible with Kubernetes (version >=1.10) and derivative.

The integration of the VIM with the other ACCORDION components is now in progress. Stay tuned for more.

[1] https://k3s.io

[2] https://kubernetes.io

[3] https://www.cncf.io/sandbox-projects/

Author: Marco Di Girolamo | HPE