LTB Operator

Untersander, Jan and Nebai Kidane, Tsigereda (2023) LTB Operator. Other thesis, OST Ostschweizer Fachhochschule.

[thumbnail of FS 2023-BA-EP-Untersander-Nebai Kidane-Test Result Viewer.pdf] Text
FS 2023-BA-EP-Untersander-Nebai Kidane-Test Result Viewer.pdf - Supplemental Material

Download (1MB)

Abstract

Lab Topology Builder (LTB) is an application developed by the Institute for Network and Security for research and teaching purposes. It allows the creation of emulated network topologies, comprised of interconnected nodes, such as servers, switches, routers, etc. LTB serves as a vital tool in various courses at the OST, enabling students to gain hands-on experience and understanding of cloud computing, networking, and security concepts. Currently, LTB relies on a ReactJS frontend and a Django Python backend, utilizing KVM/Docker for lab deployment. However, due to accumulated technical debt and the lack of documentation, maintaining the application has become increasingly challenging.

The primary goal of this project is to create an LTB-inspired Kubernetes operator - short LTB Operator, which simplifies the deployment and management of LTB labs. Furthermore, the labs should run completely inside a Kubernetes cluster, which enables effortless scaling, orchestration and monitoring. This is possible by leveraging the capabilities of Kubernetes including automation, dynamic resource allocation, and seamless integration with a wide range of tools.

The LTB Operator is implemented using the Go-based Operator-SDK framework, that provides a set of tools and libraries for building Kubernetes operators. This allows for a streamlined development process and integration with the Kubernetes API.
The deployment of VMs in Kubernetes is provided by the KubeVirt project, which extends Kubernetes with virtualization capabilities. KubeVirt allows the deployment and management of KVM based VMs as Kubernetes resources, accessible via the Kubernetes API.

The LTB Operator has the ability to deploy labs consisting of pods (containers) and KubeVirt VMs defined using a YAML file. Lab templates, lab instances, and node types are utilized as custom resources (CRs) to define the lab topology, configuration, and available node options. A simple Layer 3 network between the nodes is implemented using Multus-CNI. In addition to that, out-of-band management access to the lab nodes is provided using a web-based terminal and a freely configurable port. The lab's status and remote access details can be obtained via a command-line interface (kubectl). Even though access control is not implemented in this project, the current implementation lays the groundwork for future development, such as defining basic RBAC policies, by deploying labs within their own namespace.

In conclusion, the LTB Operator offers users a streamlined approach to deploy and effectively manage network emulation labs within a Kubernetes cluster. This integration bridges the gap between network emulation and container orchestration, enhancing the flexibility and scalability of lab environments for research and teaching purposes.

Item Type: Thesis (Other)
Subjects: Topics > Software > Testing and Simulation
Area of Application > Web based
Area of Application > Academic and Education
Technologies > Virtualization
Technologies > Network
Technologies > Programming Languages > Go
Metatags > INS (Institute for Networked Solutions)
Divisions: Bachelor of Science FHO in Informatik > Bachelor Thesis
Depositing User: OST Deposit User
Contributors:
Contribution
Name
Email
Thesis advisor
Baumann, Urs
UNSPECIFIED
Date Deposited: 21 Oct 2023 12:07
Last Modified: 21 Oct 2023 12:07
URI: https://eprints.ost.ch/id/eprint/1144

Actions (login required)

View Item
View Item