Σύστημα ανάπτυξης και διαχείρισης εικονοποίησης βασισμένης σε περιέκτες (Docker Containers) με βάση το λογισμικό Kubernetes
Creators: name: Μανωλόπουλος, Δημήτριος Ευαγγέλου
Publisher: name: Aristotle University of Thessaloniki
Year: 2019
Subjects: Μηχανισμοί Ενορχήστρωσης
Κυβερνήτης
Περιέκτες
Εικονοποίηση
Ντόκερ
Συστοιχία Υπολογιστών
Εφαρμογή Ιστού
Μικροϋπηρεσίες
Επιβλέπον
Orchestration Mechanisms
Kubernetes
Containers
Virtualization
Docker
Cluster
Web App
Microservices
Hypervisor

description: Τα τελευταία χρόνια η ανάπτυξη εφαρμογών με τη χρήση Containers, έχει αυξηθεί ραγδαία. Πολλές εταιρείες και κυβερνητικοί ή μη οργανισμοί, έχουν υιοθετήσει τη χρήση τους προκειμένου να αναπτύξουν εφαρμογές βασισμένες σε “Μικροϋπηρεσίες” (Microservices). Η χρήση των Containers και των Microservices δίνουν στους προγραμματιστές συγκριτικά πλεονεκτήματα στην ανάπτυξη εφαρμογών μέσω της χρήσης των τεχνικών της συνεχούς ενσωμάτωσης (Continuous Integration – CI) και της συνεχούς παράδοσης (Continuous Delivery – CD). Με τη χρήση Container Orchestration Mechanisms, αντικείμενο που θα μελετηθεί στη παρούσα εργασία μπορεί να ενισχυθεί και να απλοποιηθεί η χρήση των τεχνικών CI/CD. Σκοπός της παρούσας εργασίας είναι να περιγράψει έναν από του ποιο δημοφιλής μηχανισμούς διαχείρισης και ενορχήστρωσης Containers, τον Κυβερνήτη (Kubernetes). Η απουσία έρευνας στον τρόπο λειτουργίας του Kubernetes στην Ελληνική γλώσσα, λόγω της πρόσφατης ανάπτυξης και διάθεσής του ως λογισμικό ανοικτού κώδικα, θα καταστήσει τη παρούσα σημείο αναφοράς για όσους θελήσουν να κατανοήσουν τον ρόλο, τον τρόπο λειτουργίας και τις δυνατότητες του Kubernetes. Επιπρόσθετα, οι αναγνώστες θα έχουν την ευκαιρία να κατανοήσουν τη χρήση των Containers καθώς και των μηχανισμών διαχείρισή τους. Η περιγραφή της λειτουργίας του Kubernetes θα υλοποιηθεί αρχικά μέσω της προσομοίωσης εγκατάστασής του σε εικονικό περιβάλλον. Το εικονικό περιβάλλον θα αποτελείται από ένα εικονικό cluster, στο οποίο θα εγκατασταθεί το Kubernetes και από ένα εικονικό εργαστήριο Η/Υ με δύο τερματικά. Η υλοποίηση όλων των παραπάνω θα γίνει με τη βοήθεια του λογισμικού Virtualbox. Έπειτα η όλη υλοποίηση θα επαληθευτεί μέσω της εγκατάστασης του σε πραγματική υποδομή, στο εργαστήριο Η/Υ και στους αντίστοιχους Servers, του τμήματος «Εφαρμοσμένης Πληροφορικής» του Πανεπιστημίου Μακεδονίας. Μέσω αυτής της διαδικασίας οι αναγνώστες θα έχουν τη δυνατότητα να κατανοήσουν τον τρόπο λειτουργίας του Kubernetes, τις δυνατότητές του και τον ρόλο του στη διαχείριση των Containers
description: In recent years, the use of Containers in application development has increased rapidly. Many companies, governmental and non-governmental organizations have adopted their use in order to develop their applications with "Microservices". The use of “containers” and “microservices” provides to developers with comparative advantages in application development enabling them to use techniques such as Continuous Integration (CI) and Continuous Delivery (CD). Additionally, the use of these techniques can be enhanced and simplified using Containers Orchestration Mechanisms, which is the main topic of this master thesis. The purpose of this master thesis is to describe one of the most popular mechanisms for managing and orchestrating containers, the “Kubernetes”. The absence of a Kubernetes survey in the Greek language due to its recent development and availability will make this, point of reference for those who want to understand the role, the mode of operation and the potentials of Kubernetes. Furthermore, readers will be able to understand the use of “containers” and the “orchestration mechanisms” in general. The description of Kubernetes will be implemented firstly in a virtual environment. This environment will be consisting of a virtual cluster, where Kubernetes will be installed and a computer lab with 2 terminal pc. All these will be implemented with the help of VirtualBox software. Afterward, this structure will be applied in a real infrastructure on the computer lab of the University of Macedonia Applied Computer Science department. Through this process, the reader will have the opportunity to understand how Kubernetes works, its role in managing container web applications and its potentials