Συντάχθηκε 07-04-2026 14:59
Τόπος:
Σύνδεσμος τηλεδιάσκεψης
Έναρξη: 24/04/2026 10:00
Λήξη: 24/04/2026 11:00
ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ
Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Πρόγραμμα Προπτυχιακών Σπουδών
ΠΑΡΟΥΣΙΑΣΗ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ
Θωμά Σαμούτη
με θέμα
Δυναμική τοποθέτηση Μικρουπηρεσιών στο Kubernetes
Dynamic Scheduling of Microservices in Kubernetes
Εξεταστική Επιτροπή
Καθηγητής Ευριπίδης Πετράκης (επιβλέπων)
Καθηγητής Μιχαήλ Λαγουδάκης
Αναπληρωτής Καθηγητής Βασίλειος Σαμολαδάς
Περίληψη
Η βιομηχανία ανάπτυξης λογισμικού εξελίσσεται συνεχώς. Η άνοδος του υπολογιστικού νέφους, η χρήση τεχνολογίας containers και οι αρχιτεκτονικές βασισμένες σε microservices έχουν εισαγάγει νέες προκλήσεις για τη βελτιστοποίηση της απόδοσης εφαρμογών και της μείωσης του λειτουργικού κόστους.
Το Kubernetes έχει καθιερωθεί ως το πρότυπο για τη διαχείριση και ενορχήστρωση εφαρμογών που εκτελούνται σε containers, σε περιβάλλοντα υπολογιστικού νέφους. Ένας Kubernetes cluster επιτρέπει την ανάπτυξη εφαρμογών βασισμένων σε microservices σε πολλούς virtual machines, ενω διαχειρίζεται παράλληλα την επικοινωνία μεταξύ των διαφόρων virtual machines.
Ωστόσο, ο προεπιλεγμένος scheduler του Kubernetes βασίζεται κυρίως σε στατικά κριτήρια. Αυτό μπορεί να οδηγήσει σε μη βέλτιστες τοποθετήσεις υπηρεσιών που δεν λαμβάνουν υπόψη τα μοτίβα επικοινωνίας μεταξύ τους. Επιπλέον, οι πάροχοι υπολογιστικού νέφους χρεώνουν βάσει του όγκου των δεσμευμένων πόρων, ακόμα και αν αυτοί δεν αξιοποιούνται πλήρως. Η αύξηση της εξερχόμενης κίνησης δικτύου μπορεί επίσης να καταστήσει τις μη βέλτιστες τοποθετήσεις ιδιαίτερα δαπανηρές. Επιπροσθέτως, η εφαρμογή στρατηγικών τοποθέτησης υπηρεσιών που λαμβάνουν υπόψη μόνο την αρχική τοποθέτηση της εφαρμογής μπορεί να έχει σημαντικά αποτελέσματα στην απόδοση και το κόστος, εφόσον ο φόρτος εργασίας παραμένει σταθερός. Όμως οι σύγχρονοι φόρτοι εργασίας είναι εξαιρετικά δυναμικοί, με μοτίβα χρήσης που μπορούν να μεταβάλλονται ταχύτατα, καθιστώντας τις στατικές στρατηγικές τοποθέτησης λιγότερο αποτελεσματικές.
Στην παρούσα Διπλωματική Εργασία, εστιάσαμε στην αξιολόγηση δυναμικών στρατηγικών τοποθέτησης οι οποίες προσαρμόζονται στις μεταβολές του φόρτου εργασίας, με στόχο τη βελτιστοποίηση της απόδοσης εφαρμογών και τη μείωση του κόστους σε περιβάλλον Kubernetes. Αναπτύξαμε δύο εφαρμογές αξιολόγησης επιδόσεων (benchmarking) σε έναν Kubernetes cluster που φιλοξενείται στην πλατφόρμα Google Cloud Platform. Υλοποιήσαμε ένα εργαλείο λήψης αποφάσεων που παρακολουθεί συνεχώς τον φόρτο εργασίας για μεταβολές και, μέσω του αλγορίθμου Twin-comparison, προσδιορίζει εάν η επιλεγμένη στρατηγική τοποθέτησης χρειάζεται να επανεφαρμοστεί. Για την αξιολόγηση της απόδοσης των δυναμικών στρατηγικών τοποθέτησης, προσαρμόσαμε τους προεπιλεγμένους φόρτους εργασίας των εφαρμογών αξιολόγησης ώστε να παρουσιάζουν υψηλή μεταβλητότητα.
Αξιολογήσαμε τρεις διαφορετικούς αλγορίθμους τοποθέτησης και συγκρίναμε την απόδοση και την οικονομική τους αποδοτικότητα σε σύγκριση με τον προεπιλεγμένο scheduler του Kubernetes, καθώς και με σενάρια χωρίς επανατοποθέτηση. Τα πειραματικά αποτελέσματα δείχνουν ότι οι δυναμικές στρατηγικές τοποθέτησης μπορούν να βελτιώσουν σημαντικά την απόδοση εφαρμογών και να μειώσουν το κόστος σε περιβάλλον Kubernetes. Επιπλέον, καταδεικνύουμε ότι η αποτελεσματικότητα των δυναμικών στρατηγικών τοποθέτησης εξαρτάται από τα συγκεκριμένα χαρακτηριστικά του φόρτου εργασίας. Σε περίπτωση στατικών φόρτων εργασίας, η εφάπαξ βελτιστοποίηση τοποθέτησης μπορεί να αποδειχθεί επαρκής, ενώ σε εξαιρετικά δυναμικούς φόρτους εργασίας, η απουσία προσαρμογής στις μεταβολές μπορεί να έχει σημαντικές αρνητικές συνέπειες.
Abstract
The software development industry is evolving. The rise of cloud computing, containerization, and microservices-based architectures has introduced new challenges when optimizing application performance and operational costs.
Kubernetes has become the industry standard for orchestrating containerized applications in cloud environments. A Kubernetes cluster allows deploying microservices-based applications across multiple hosts (VMs) while managing communication between the various VMs.
However, the default Kubernetes scheduler relies primarily on static criteria. This can lead to sub-optimal placements that do not take into account the communication patterns between services. Moreover, cloud providers charge based on the amount of used resources even if they are not fully utilized. Also, the increase in outbound network traffic can also make non optimal placements costly. Furthermore, applying service placement strategies that only consider the initial deployment of the application can have significant results on application performance and cost if the workload remains constant. But todays workloads are highly dynamic, with traffic patterns that can change rapidly, making static placement strategies less effective.
In this Thesis, we focused on the evaluation of dynamic placement strategies which adapt to workload changes in order to optimize application performance and cost in a Kubernetes environment. We have deployed two benchmarking applications in a Kubernetes cluster hosted in the Google Cloud Platform. We have implemented a decision making tool that continuously monitors workload for changes and by using the Twin-comparison algorithm determines if the selected placement strategy needs to be reapplied. To evaluate the performance of dynamic placement strategies, we have adapted the default workloads of the benchmarking applications to be highly volatile.
We evaluated three different placement algorithms and compared their performance and cost-effectiveness with the default Kubernetes scheduler, as well as against scenarios without any re-placement. The experimental results show that dynamic placement strategies can significantly improve application performance and reduce costs in a Kubernetes environment. Additionally, we show that the effectiveness of dynamic placement strategies depends on the specific workload characteristics. In case of static workloads, the one-time placement optimization can be sufficient, while in highly dynamic workloads can have significant drawbacks if not adapted to workload changes.