Inzet van beveiligde containers in een lichtgewicht containerorchestratiesysteem voor drone-applicaties

Student:Michiel Van Kenhove
Richting:Master of Science in de industriële wetenschappen: informatica
Abstract:De laatste jaren zijn drones, ook gekend als Unmanned Aerial Vehicles (UAV's) heel populair geworden in verscheidene industrieën. De meeste drones zijn relatief klein, waardoor ze gebruikt kunnen worden op plaatsen waar mensen doorgaans geen makkelijke toegang tot hebben. Door de beperkte grootte van een drone is het moeilijk voor de drone om een krachtige computer te dragen, vooral door koeling- en energiebeperkingen. Computers zijn de laatste jaren steeds kleiner en efficiënter geworden, maar de hoeveelheid computationele resources die gedragen kunnen worden zijn nog steeds beperkt. Sinds de opkomst van het populaire containerorchestratiesysteem, genaamd Kubernetes, worden steeds meer applicaties uitgevoerd in containers en in de cloud. Geïnspireerd door deze overstap naar de cloud door de reguliere software-industrie, presenteert deze thesis een systeem dat gebruikers toelaat om applicaties uit te voeren op een drone en bij gebrek aan resources op de drone is het mogelijk om de applicatie over te zetten naar de cloud. Er wordt onderzoek gedaan naar verschillende containerorchestratiesystemen om te leren welk systeem het meest efficiënt omspringt met de resources en op welk systeem Pods het snelste opstarten. Daarnaast wordt er ook onderzoek gedaan om de impact van Kata Containers op het resourcegebruik en Pod-opstarttijden te kennen. Kubernetes, K3s en k0s worden vergeleken. Evaluaties tonen aan dat een K3s-worker node het meest efficiënt is met een geheugengebruik van 282 MiB, terwijl een k0s-worker 301 MiB gebruikt. De opstarttijd van een Kata Containers Pod is ongeveer 1 s langer met een totaal van 2 s in vergelijking met een runC Pod. Pod opstarttijden blijken het beste te zijn bij k0s. Uiteindelijk wordt er een oplossing aangeboden waarmee applicaties kunnen uitgevoerd worden op drones en in de cloud, waarbij het resourcegebruik geminimaliseerd wordt en er rekening gehouden wordt met beveiligingsrisico's.
Abstract (Eng):Over the last years, drones, also known as Unmanned Aerial Vehicles (UAVs), have become more and more popular by all kinds of industry domains. Most drone types have a small physical footprint, which allow them to be used in places people typically do not have access to. Because of this small footprint, it is hard for the drone to carry a powerful computer system, because of cooling and energy limitations. Computer systems have become much smaller and more efficient over the years, but the amount of resources carried are still limited. Because of these resource limitations, careful considerations need to be made to be able to deploy applications to the computer system carried by the drone. Since the rise of the popular container orchestration system named Kubernetes, it has become common to containerize a lot of applications to deploy them in the cloud. Inspired by the move to the cloud by the regular software industry, this thesis presents a system which allows users to deploy applications to a drone and offload work to the cloud if necessary. An application can be deployed to a drone and the cloud, without the need to change the application's code. Research is done to learn which container orchestration system is the most efficient in terms of resource usage and Pod startup times. Kubernetes, K3s and k0s are compared. Combined with the fact that drones typically perform sensitive tasks and the possible container escaping vulnerabilities, a certain level of security needs to be achieved when offloading applications to the cloud. Research is performed to know the impact of Kata Containers in terms of resource usage and Pod startup times. Evaluations prove that a K3s worker node is the most efficient in terms of memory usage, with a usage of 282 MiB, while a k0s worker node uses 301 MiB. In terms of Pod startup time, a Pod using Kata Containers will on average take about 1 s longer to start, with a total of about 2 s, compared to runC. Pod startup times prove to be the best on k0s. In the end, an all-in-one solution is provided to enable anyone to deploy applications to drones and the cloud, all while minimizing the resource usage and maintaining a certain level of security.