Kubernetes(συντομογραφία K8s) είναι ένα σύστημα ανοιχτού κώδικα που χρησιμοποιείται για τη διαχείριση και την ανάπτυξη εφαρμογών με εμπορευματοκιβώτια σε ένα δίκτυο υπολογιστών. Kubernetes έχει γίνει μια δημοφιλής και ισχυρή πλατφόρμα διαχείρισης κοντέινερ, που αναπτύχθηκε αρχικά από την Google και επί του παρόντος διατηρείται από μια μεγάλη κοινότητα προγραμματιστών.
Οι κύριες λειτουργίες του Kubernetes περιλαμβάνουν
-
Διαχείριση κοντέινερ : Kubernetes σας επιτρέπει να πακετάρετε εφαρμογές και τους πόρους τους στο containers. Containers παρέχουν ένα ελαφρύ περιβάλλον και διασφαλίζουν ότι οι εφαρμογές εκτελούνται με συνέπεια σε οποιοδήποτε σύστημα.
-
Αυτοματοποιημένη ανάπτυξη : Kubernetes επιτρέπει την αυτοματοποιημένη ανάπτυξη και την εύκολη επεκτασιμότητα εφαρμογών και υπηρεσιών. Μπορείτε να καθορίσετε τις απαιτήσεις πόρων, τον αριθμό των παρουσιών και Kubernetes θα διατηρήσετε αυτόματα την επιθυμητή κατάσταση.
-
Διαχείριση πόρων : Το K8s διαχειρίζεται τους πόρους του διακομιστή όπως η CPU, η μνήμη και ο αποθηκευτικός χώρος για να διασφαλίσει ότι οι εφαρμογές δεν καταναλώνουν υπερβολικούς πόρους και δεν παρεμβαίνουν μεταξύ τους.
-
Automatic Recovery and Fault Tolerance : Kubernetes βοηθά τις εφαρμογές να ανακτούν αυτόματα από βλάβες. Μπορεί να επιστρέψει αυτόματα σε μια προηγούμενη έκδοση μιας εφαρμογής εάν η νέα έκδοση αντιμετωπίσει προβλήματα.
-
Εξισορρόπηση φόρτου και διανομή κίνησης : Kubernetes παρέχει μηχανισμούς για την ομοιόμορφη κατανομή της κυκλοφορίας μεταξύ των παρουσιών εφαρμογών σε διαφορετικούς διακομιστή nodes. Αυτό βελτιώνει την απόδοση και εξασφαλίζει επεκτασιμότητα.
-
Configuration and Secrets Management : Kubernetes σας επιτρέπει να διαχειρίζεστε με ασφάλεια τη διαμόρφωση και τα μυστικά της εφαρμογής χρησιμοποιώντας λειτουργίες όπως το K8s Secrets και το ConfigMaps.
Οι μηχανισμοί λειτουργίας του Kubernetes περιλαμβάνουν
-
Nodes: Οι διακομιστές ή οι μεμονωμένοι υπολογιστές στο δίκτυο αναφέρονται ως " nodes." Υπάρχουν δύο τύποι nodes in Kubernetes: Κύριος Κόμβος και Κόμβος Εργάτης. Ο Κύριος Κόμβος διαχειρίζεται και ελέγχει ολόκληρο το σύστημα, ενώ ο Κόμβος Εργαζόμενος εκτελεί containers και εφαρμόζει.
-
Pods: Το Pod είναι η μικρότερη μονάδα ανάπτυξης στο Kubernetes. Ένα pod μπορεί να περιέχει ένα ή πολλά containers, αλλά μοιράζονται τον ίδιο χώρο αποθήκευσης δικτύου και τον ίδιο κύκλο ζωής. Αυτό διευκολύνει την επικοινωνία μεταξύ containers ενός pod.
-
Controller: Οι ελεγκτές είναι στοιχεία που διαχειρίζονται και διατηρούν αντίγραφα του pods. Οι τύποι ελεγκτών περιλαμβάνουν ReplicaSet(διασφάλιση του σωστού αριθμού pods και επανεκκίνηση εάν είναι απαραίτητο), Deployment(διαχείριση εκδόσεων και ενημερώσεων εφαρμογών) και StatefulSet(για την ανάπτυξη εφαρμογών κατάστασης).
-
Service: Οι υπηρεσίες είναι ένας μηχανισμός εξισορρόπησης φορτίου και διανομής της κίνησης στο pods. Οι υπηρεσίες διευκολύνουν την πρόσβαση των εφαρμογών pods χωρίς να χρειάζεται να γνωρίζετε τις συγκεκριμένες τοποθεσίες τους.
-
Kubelet και Kube Proxy: Kubelet είναι ένα στοιχείο που εκτελείται σε κάθε κόμβο εργασίας, υπεύθυνο για τη διαχείριση pods σε αυτόν τον κόμβο. Kube Proxy είναι ένας διακομιστής μεσολάβησης δικτύου για σύνδεση στο pods.
Ως αποτέλεσμα, Kubernetes αυτοματοποιεί την ανάπτυξη και τη διαχείριση εφαρμογών με εμπορευματοκιβώτια, μειώνοντας τον χρόνο και την προσπάθεια που απαιτείται για τη συντήρηση πολύπλοκων συστημάτων.