Ιδρυματικό Αποθετήριο
Πολυτεχνείο Κρήτης
EN  |  EL

Αναζήτηση

Πλοήγηση

Ο Χώρος μου

Δυναμική τοποθέτηση μικρο-υπηρεσιών στο Kubernetes στο υπολογιστικό νέφος

Iliadis Panagiotis

Απλή Εγγραφή


URIhttp://purl.tuc.gr/dl/dias/0A9D9843-836C-4BBF-837C-C9CC2E2FEC0E-
Αναγνωριστικόhttps://doi.org/10.26233/heallink.tuc.94893-
Γλώσσαen-
Μέγεθος1.6 megabytesen
Μέγεθος69 pagesen
ΤίτλοςDynamic microservice placement in Kubernetes in the cloud en
ΤίτλοςΔυναμική τοποθέτηση μικρο-υπηρεσιών στο Kubernetes στο υπολογιστικό νέφοςel
ΔημιουργόςIliadis Panagiotisen
ΔημιουργόςΗλιαδης Παναγιωτηςel
Συντελεστής [Επιβλέπων Καθηγητής]Petrakis Evripidisen
Συντελεστής [Επιβλέπων Καθηγητής]Πετρακης Ευριπιδηςel
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Lagoudakis Michailen
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Λαγουδακης Μιχαηλel
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Samoladas Vasilisen
Συντελεστής [Μέλος Εξεταστικής Επιτροπής]Σαμολαδας Βασιληςel
ΕκδότηςΠολυτεχνείο Κρήτηςel
ΕκδότηςTechnical University of Creteen
Ακαδημαϊκή ΜονάδαTechnical University of Crete::School of Electrical and Computer Engineeringen
Ακαδημαϊκή ΜονάδαΠολυτεχνείο Κρήτης::Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστώνel
ΠερίληψηMicroservices-based architectures become a very popular method to design cloud-based containerized applications. Kubernetes is a container orchestration system for automating software deployment, scaling, and management. The Kubernetes cluster consists of nodes (VMs) and the microservices are placed in pods into the nodes.The default Kubernetes scheduler selects an optimal node to run newly created or unscheduled pods but it does not adapt to workload changes so the default placement is static.Microservices (Pods) should be placed in nodes so that they are minimizing the infrastructure cost by minimizing the egress traffic (traffic between nodes), the number of nodes and also the response time. In modern applications due to high workloads, services need to run in multiple instances to keep up with high traffic. In Kubernetes a Horizontal Pod Autoscaler (HPA) automatically updates a workload (Service), with the aim of automatically scaling the workload to match demand, but if starting from sub-optimal placement (using the default Kubernetes Scheduler) this solution can be sub-optimal overall. In this work we aim to improve the initial placement of application services in Pods. The problem is is handled as a graph clustering one, to minimize the applications cost and the latency.Graph clustering needs to be fuzzy so it will allow pods to belong in more than one node.In this thesis two microservice-based applications were deployed in the Kubernetes of the GCP (Google Cloud Platform) to test the service placement solution, iXen an IoT application and Google’s OnlineBoutique an e-shop application. The experimental results reveal that the fuzzy placement solution can reduce the total response time of the application and the total monetary cost compared to default kubernetes scheduler and with or without the use of Kubernetes horizontal pod autoscaler.en
ΠερίληψηΟι αρχιτεκτονικές που βασίζονται σε μικροϋπηρεσίες γίνονται μια πολύ δημοφιλής μέθοδος σχεδιασμού που βασίζεται σε containerized εφαρμογές στο υπολογιστικό νέφος. Το Kubernetes είναι ένα σύστημα ενορχήστρωσης κοντέινερ για αυτοματοποίηση ανάπτυξη, κλιμάκωση και διαχείριση λογισμικού. Το Kubernetes cluster αποτελείται από Nodes (εικονικές Μηχανές) και οι μικροϋπηρεσίες τοποθετούνται σε Pods στα Nodes. O default kubernetes scheduler επιλέγει έναν βέλτιστο κόμβο για να τρέξει πρόσφατα δημιουργημένα pods, αλλά δεν προσαρμόζεται στις αλλαγές του φόρτου εργασίας, ώστε η προεπιλεγμένη τοποθέτηση να είναι στατική. Οι μικροϋπηρεσίες (Pods) θα πρέπει να τοποθετούνται σε κόμβους έτσι ώστε να ελαχιστοποιούν το κόστος της υποδομής ελαχιστοποιώντας egress traffic (traffic μεταξύ κόμβων), τον αριθμό των κόμβων και επίσης τον χρόνο απόκρισης. Στις σύγχρονες εφαρμογές λόγω υψηλού workload, οι υπηρεσίες πρέπει να εκτελούνται σε πολλά αντίγραφα για να μπορούν να διαχειριστούν το μεγάλο traffic. Στο Kubernetes, ο Horizontal Pod Autoscaler (HPA) ενημερώνει αυτόματα το workload (Service) με στόχο την αυτόματη κλιμάκωση του workload ώστε να συμβαδίζει με τη ζήτηση, αλλά αν ξεκινάμε από μια μη βέλτιστη τοποθέτηση (χρησιμοποιώντας τον default Kubernetes scheduler ) αυτή η λύση μπορεί να είναι συνολικά υποβέλτιστη. Σε αυτή την εργασία στοχεύουμε να βελτιώσουμε την αρχική τοποθέτηση των υπηρεσιών εφαρμογών στα Pods. Το πρόβλημα αντιμετωπίζεται ως graph clustering, με σκοπό την ελαχιστοποίηση του κόστους των εφαρμογών και του latency. Το graph clustering πρέπει να είναι fuzzy ούτος ώστε να επιτρέψει στα pods να ανήκουν σε περισσότερους από έναν κόμβους. Σε αυτή την εργασία δύο εφαρμογές μικροϋπηρεσιών αναπτύχθηκαν στο Kubernetes του GCP (Google Cloud Platform) για να ελέγξουμε τη λύση τοποθέτησης υπηρεσιών, το iXen μια εφαρμογή IoT, και το OnlineBoutique της Google μία εφαρμογή ηλεκτρονικού καταστήματος. Τα πειραματικά αποτελέσματα αποκαλύπτουν ότι η λύση της ασαφούς τοποθέτησης μπορεί να μείωση το συνολικό χρόνο απόκρισης της εφαρμογής και το συνολικό της κόστος σε σύγκριση με το default kubernetes scheduler με ή χωρίς τη χρήση του Kubernetes Horizontal pod Autoscaler.el
ΤύποςΔιπλωματική Εργασίαel
ΤύποςDiploma Worken
Άδεια Χρήσηςhttp://creativecommons.org/licenses/by/4.0/en
Ημερομηνία2023-02-20-
Ημερομηνία Δημοσίευσης2023-
Θεματική ΚατηγορίαKubernetesen
Θεματική ΚατηγορίαSoftwareen
Θεματική ΚατηγορίαClouden
Βιβλιογραφική ΑναφοράPanagiotis Iliadis, "Dynamic microservice placement in Kubernetes in the cloud", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2023en
Βιβλιογραφική ΑναφοράΠαναγιώτης Ηλιάδης, "Δυναμική τοποθέτηση μικρο-υπηρεσιών στο Kubernetes στο υπολογιστικό νέφος", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2023el

Διαθέσιμα αρχεία

Υπηρεσίες

Στατιστικά