Το έργο με τίτλο Ασφαλής διαχείριση εικονοκιβωτίων στο σύστημα Kubernetes από τον/τους δημιουργό/ούς Christodoulopoulos Christos διατίθεται με την άδεια Creative Commons Αναφορά Δημιουργού 4.0 Διεθνές
Βιβλιογραφική Αναφορά
Χρήστος Χριστοδουλόπουλος, "Ασφαλής διαχείριση εικονοκιβωτίων στο σύστημα Kubernetes", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2017
https://doi.org/10.26233/heallink.tuc.70712
Το Kubernetes είναι ένα εργαλείο το οποίο διευκολύνει τη διαχείριση πολλαπλών εφαρμογών σε εικονοποιημένα (σε επίπεδο λειτουργικού συστήματος) περιβάλλοντα χρησιμοποιώντας Containers. Είναι ικανό να διαχειριστεί πολλαπλές εφαρμογές και χρήστες ταυτόχρονα, διανέμοντας υπολογιστικούς πόρους στις εφαρμογές μέσω ενός μηχανισμού χρονοδρομολόγησης. Ο μηχανισμός αυτός είναι επίσης υπεύθυνος για την εκ νέου αναδιανομή των υπολογιστικών πόρων ανά εφαρμογή με βάση τις πραγματικές ανάγκες κατά το χρόνο εκτέλεσής τους. Ωστόσο, η κατανομή των πόρων σε ένα τυπικό περιβάλλον Kubernetes είναι στατική (δηλαδή είναι εκ των προτέρων προκαθορισμένο το μέγιστο ποσό των υπολογιστικών πόρων που μπορεί να χρησιμοποιήσει η κάθε εφαρμογή), πράγμα που σημαίνει ότι εάν η εφαρμογή απαιτεί περισσότερους πόρους, τότε το σύστημα δεν είναι σε θέση να το διαχειριστεί. Παρόλο που είναι γνωστό ότι υπάρχουν λύσεις στο πρόβλημα της αυτόματης επέκτασης των υπολογιστικών πόρων σε συστήματα Kubernetes και η αυτόματη κλιμάκωση υποστηρίζεται από παρόχους υπηρεσιών νέφους όπως Amazon και Google, οι λύσεις αυτές είναι πλήρως αποκλειστικές και όχι πάντα γενικές (δηλ. δεν ισχύουν για όλες τις διανομές του Kubernetes και δε μπορούν να εφαρμοστούν σε οποιοδήποτε περιβάλλον νέφους). Αυτό είναι ακριβώς το πρόβλημα που αντιμετωπίζει αυτή η εργασία. Προτείνουμε το σύστημα Commodore, ένα μηχανισμό που είναι ανεξάρτητος από την πλατφόρμα (δηλαδή μπορεί να λειτουργήσει με οποιαδήποτε διανομή Kubernetes, συμπεριλαμβανομένων και αυτών που δεν παρέχονται από υπηρεσίες νέφους). Το Commodore είναι ικανό να κατανείμει (ή να αποδεσμεύει) πόρους σε εφαρμογές με βάση τις πραγματικές απαιτήσεις τους. Το Commodore υλοποιήθηκε χρησιμοποιώντας την υπηρεσία νέφους FIWARE, η οποία βασίζεται στο OpenStack. Στο περιβάλλον αυτό, οι εφαρμογές εκτελούνται σε εικονικές μηχανές, οι οποίες ενεργούν ως κόμβοι του συστήματος. Με τον τρόπο αυτό, η εφαρμογή εκμεταλλεύεται τις δυνατότητες εικονικοποίησης του περιβάλλοντος νέφους (δηλ. επιτρέπει την παραμετροποίηση πόρων, συμπεριλαμβανομένων του δικτύου, της CPU και της μνήμης, που οδηγούν στην καλύτερη αξιοποίηση των φυσικών πόρων των μηχανημάτων, εξασφαλίζοντας παράλληλα ασφάλεια μέσω της απομόνωσης που προσφέρει το εικονικό αυτό περιβάλλον). Εκτελέσαμε διάφορα πειράματα με βάση ένα προσομοιωμένο (αλλά ρεαλιστικό) σενάριο χρήσης. Τα αποτελέσματα απέδειξαν ότι το Commodore ανταποκρίνεται στις αυξανόμενες (ή μειούμενες) απαιτήσεις πόρων της εφαρμογής που οδηγούν σε σημαντικά ταχύτερους χρόνους απόκρισης σε σύγκριση με μια μη κλιμακωτή υλοποίηση όπου όλος ο υπολογιστικός φόρτος αντιμετωπίζεται από τους στατικά προ-δεσμευμένους πόρους.