Applicability of Kubernetes to Industrial IoT Edge Computing System
Loading...
URL
Journal Title
Journal ISSN
Volume Title
Sähkötekniikan korkeakoulu |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Authors
Date
2020-10-19
Department
Major/Subject
Control, Robotics and Autonomous Systems
Mcode
ELEC3025
Degree programme
AEE - Master’s Programme in Automation and Electrical Engineering (TS2013)
Language
en
Pages
55+4
Series
Abstract
Internet of Things is not only massive in consumer markets, but the industrial segment is one of the largest ones based on the number of connected devices, which produce an enormous amount of data. The collected data is often stored in cloud-based systems, where the post-processing of the data is executed. However, cloud computing is not suitable for time-critical applications, which require immediate feedback such as autonomous vehicles, due to high latency. In addition, there may be security concerns about the data being stored at the external cloud provider. Therefore edge computing with local processing should be used in these scenarios. In recent years, Kubernetes has also become a common choice for deploying containerized applications to the cloud, and for this reason, most of the cloud providers offer their own managed Kubernetes solution. Kubernetes can also be installed on the edge, but there are challenges with the management of the control plane, hardware upgrades, and maintenance as they all need to be handled in-house. The thesis work investigates the applicability of a lightweight k3s Kubernetes distribution in an industrial IoT edge context by configuring the cluster and performing load tests. The author creates an automated cluster provisioning method to simplify the configuration process of a Kubernetes cluster in a resource-constrained environment. The proposed solution includes cloud-native approaches to simplify application workload installation. This is achieved by using a GitOps operator to store and synchronize the application workload configurations from external version control to Kubernetes. Therefore, this approach maintains a history of changes, but it also allows for simple and secure application installation, upgrades, or removal to be made remotely. Finally, an MQTT broker application is deployed to the cluster as an example workload for the GitOps approach and to act as a communication layer for both industrial IoT devices and system applications. The author uses this to evaluate the cluster performance in a simulated industrial IoT scenario by sending large amounts of MQTT telemetry data through the MQTT broker.Esineiden internetissä ei ole kyse pelkästään kuluttajatuotteista, sillä teollisuus on yksi suurimmista osa-alueista ja siellä laitteet tuottavat valtavia määriä dataa. Kerätty data on usein säilötty pilvipohjaisiin järjestelmiin, jossa jälkiprosessointi tapahtuu. Kuitenkaan pilvilaskenta ei sovellu aikakriittisiin sovelluksiin, joissa tarvitaan välitöntä takaisinkytkentää, eli esimerkiksi itseohjautuviin autoihin, koska latenssi on liian suuri. Lisäksi, dataa ei välttämättä haluta tallentaa kolmannen osapuolen pilvipalveluun turvallisuussyistä. Siksi reunalaskentaa tulisi käyttää tämänlaisiin tilanteisiin. Lähivuosina Kuberneteksesta on tullut yleinen valinta kontitetun applikaation käyttöönottoon pilviympäristöissä, ja tästä syystä moni pilvipalvelu tarjoaa omaa hallittua Kubernetes ratkaisuaan. Kuberneteksen pystyy myös asentamaan lokaalisti reunalaskentaympäristöön, mutta silloin järjestelmän sisäinen ohjaus, raudan päivitys ja ylläpito pitää hoitaa itse. Tämä tutkielma selvittää kevyen k3s Kubernetes jakelun soveltuvuutta teollisen esineiden internetin käyttötarkoituksiin testaamalla pientä klusteria simuloidulla kuormituksella. Tekijä luo myös automaattisen menetelmän klusterin alustukseen helpottaakseen konfigurointia. Ratkaisuehdotus sisältää lisäksi pilvipalveluiden tapaisia toimintamalleja, joilla helpotetaan applikaatioiden asennusta. Tämä toteutetaan GitOps menetelmää käyttäen, jolloin applikaation konfiguraatiot voidaan tallentaa ja synkronoida ulkoisesta versionhallintajärjestelmästä Kubernetekseen. Tämänlaisella toimintamallilla voidaan säilyttää muutoshistoria, mutta sen lisäksi myös se on helppo ja turvallinen tapa asentaa, päivittää tai poistaa applikaatioita etänä. Lopuksi hajautettu MQTT broker applikaatio asennetaan klusteriin käyttäen esiteltyä GitOps menetelmää, jolloin MQTT brokeria käytetään eri laitteiden ja myös applikaatioiden väliseen viestintään. Tämän avulla järjestelmän tehokkuutta testataan lähettämällä suuria määriä simuloitua esineiden internet dataa MQTT protokollaa käyttäen.Description
Supervisor
Hirvisalo, VesaThesis advisor
Makarov, DmitryKeywords
edge computing, industrial IoT, kubernetes, DevOps, GitOps, MQTT