Distributed architecture with Kubernetes
Karppinen, Santeri (2026)
Karppinen, Santeri
2026
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202605069791
https://urn.fi/URN:NBN:fi:amk-202605069791
Tiivistelmä
Nowadays software development needs scalable and strong applications. Traditional monolithic applications struggle to meet these various needs. This is why containerization and orchestration technologies are necessary tools for developers and organizations.
The purpose of this thesis was to investigate how a traditional full-stack application can be converted into a distributed, containerized architecture that is managed Kubernetes. It was also studied how effectively Kubernetes’ self-healing and automatic scaling work in smaller scale environment.
The implementation was done using two-node Kubernetes cluster that runs on two Raspberry Pi 5 devices. The application contains frontend, backend, database and monitoring components that are deployed as separate containerized services. The testing was done by generating high traffic to start automatic scaling and by deleting pods to demonstrate self-healing.
Both self-healing and automatic scaling were demonstrated successfully. The pods were changed quickly after failure, and the HPA scaled more backend pods when the load was detected. The monitoring gave accurate data in real time throughout the testing.
The findings show that Kubernetes gives various benefits in reliability and scalability even when it is done in a smaller scale. However, its complexity and needed resources are an important factor if there are restrictions in the hardware. The architecture could be further improved by implementing HTTPS, automated database backups, and a CI/CD pipeline.
The purpose of this thesis was to investigate how a traditional full-stack application can be converted into a distributed, containerized architecture that is managed Kubernetes. It was also studied how effectively Kubernetes’ self-healing and automatic scaling work in smaller scale environment.
The implementation was done using two-node Kubernetes cluster that runs on two Raspberry Pi 5 devices. The application contains frontend, backend, database and monitoring components that are deployed as separate containerized services. The testing was done by generating high traffic to start automatic scaling and by deleting pods to demonstrate self-healing.
Both self-healing and automatic scaling were demonstrated successfully. The pods were changed quickly after failure, and the HPA scaled more backend pods when the load was detected. The monitoring gave accurate data in real time throughout the testing.
The findings show that Kubernetes gives various benefits in reliability and scalability even when it is done in a smaller scale. However, its complexity and needed resources are an important factor if there are restrictions in the hardware. The architecture could be further improved by implementing HTTPS, automated database backups, and a CI/CD pipeline.
