Το έργο με τίτλο Δυναμική τοποθέτηση μικρο-υπηρεσιών στο Kubernetes στο υπολογιστικό νέφος από τον/τους δημιουργό/ούς Iliadis Panagiotis διατίθεται με την άδεια Creative Commons Αναφορά Δημιουργού 4.0 Διεθνές
Βιβλιογραφική Αναφορά
Παναγιώτης Ηλιάδης, "Δυναμική τοποθέτηση μικρο-υπηρεσιών στο Kubernetes στο υπολογιστικό νέφος", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2023
https://doi.org/10.26233/heallink.tuc.94893
Οι αρχιτεκτονικές που βασίζονται σε μικροϋπηρεσίες γίνονται μια πολύ δημοφιλής μέθοδος σχεδιασμού που βασίζεται σε 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.