Tutorial Kubernetes για αρχάριους

⚡ Έξυπνη Σύνοψη

Το Kubernetes είναι ένα σύστημα διαχείρισης κοντέινερ ανοιχτού κώδικα που αναπτύχθηκε από Google που αυτοματοποιεί την ανάπτυξη, την κλιμάκωση και τη λειτουργία εφαρμογών σε κοντέινερ σε clusters φυσικών, εικονικών και cloud servers, προσφέροντας αυτοματοποιημένη ανάπτυξη, εξισορρόπηση φορτίου και συνεπή περιβάλλοντα για αξιόπιστη παράδοση εφαρμογών.

  • ☸️ Ορισμός Kubernetes: Ένα σύστημα διαχείρισης κοντέινερ ανοιχτού κώδικα από Google για εφαρμογές σε ομαδοποίηση.
  • 📦 Γιατί εμπορευματοκιβώτια: Τα κοντέινερ συσκευάζουν όλα όσα χρειάζεται μια εφαρμογή, επιτρέποντας ενημερώσεις και συντήρηση χωρίς διακοπές λειτουργίας.
  • ⚙️ Βασικά χαρακτηριστικά: Αυτοματοποιημένος προγραμματισμός, αυτοεπιδιόρθωση, rollouts/rollouts, οριζόντια κλιμάκωση και εξισορρόπηση φόρτου.
  • 🧱 Βασικά συστατικά: Cluster, κύριος κόμβος (Διακομιστής API, Χρονοδιάγραμμα, κ.λπ.), κόμβοι εργασίας και ομάδες (pods).
  • 🆚 εναντίον Docker Swarm: Το Kubernetes προσφέρει αυτόματη κλιμάκωση και ενσωματωμένη παρακολούθηση. Το Swarm είναι απλούστερο και ταχύτερο στην εγκατάσταση.
  • Πλεονεκτήματα & Μειονεκτήματα: Λειτουργεί σε οποιοδήποτε cloud με μεγάλη κοινότητα, αλλά έχει πολύπλοκο πίνακα ελέγχου και ρύθμιση.

Tutorial Kubernetes για αρχάριους

Πριν ξεκινήσουμε αυτό το σεμινάριο Kubernetes, ας μάθουμε:

Τι είναι ο Kubernetes;

Kubernetes είναι ένα σύστημα διαχείρισης κοντέινερ που αναπτύχθηκε στο Google πλατφόρμα. Το Kubernetes βοηθά στη διαχείριση εφαρμογών σε κοντέινερ σε διάφορους τύπους φυσικών, εικονικών και cloud περιβαλλόντων. Google Το Kubernetes είναι ένα εξαιρετικά ευέλικτο εργαλείο κοντέινερ για την παροχή συνεπών σύνθετων εφαρμογών που εκτελούνται σε ομάδες εκατοντάδων έως χιλιάδων μεμονωμένων διακομιστών.

Γιατί χρειάζεστε δοχεία;

Ο σημερινός χρήστης του Διαδικτύου δεν δέχεται ποτέ διακοπές λειτουργίας. Επομένως, οι προγραμματιστές πρέπει να βρουν μια μέθοδο για να πραγματοποιούν συντήρηση και ενημέρωση χωρίς να διακόπτουν τις υπηρεσίες τους.

Επομένως, ένα δοχείο είναι ένα απομονωμένο περιβάλλον. Περιλαμβάνει όλα όσα χρειάζονται για την εκτέλεση της εφαρμογής. Διευκολύνει έναν προγραμματιστή να επεξεργάζεται και να αναπτύσσει εφαρμογές. Επιπλέον, η αποθήκευση σε εμπορευματοκιβώτια έχει γίνει μια προτιμώμενη μέθοδος για τη συσκευασία, την ανάπτυξη και την ενημέρωση εφαρμογών ιστού.

Τι καθήκον εκτελούν οι Kubernetes;

Το Kubernetes είναι ο πυρήνας Linux που χρησιμοποιείται για κατανεμημένα συστήματα. Σας βοηθά να είστε πιο αποτελεσματικοί.tracτο υποκείμενο υλικό των κόμβων (διακομιστών) και προσφέρει μια συνεπή διεπαφή για εφαρμογές που καταναλώνουν την κοινόχρηστη ομάδα πόρων.

Γιατί να χρησιμοποιήσετε το Kubernetes;

Το Kubernetes σάς βοηθά να ελέγχετε την κατανομή πόρων και τη διαχείριση της κυκλοφορίας για εφαρμογές cloud και μικροϋπηρεσίες. Βοηθά επίσης στην απλούστευση διαφόρων πτυχών των υποδομών που προσανατολίζονται στις υπηρεσίες. Το Kubernetes σάς επιτρέπει να διασφαλίζετε πού και πότε εκτελούνται οι εφαρμογές με κοντέινερ και σας βοηθά να βρείτε πόρους και εργαλεία με τα οποία θέλετε να εργαστείτε.

Χαρακτηριστικά του Kubernetes

Εδώ είναι τα βασικά χαρακτηριστικά του Kubernetes:

  • Αυτοματοποιημένος Προγραμματισμός
  • Ικανότητες αυτοθεραπείας
  • Αυτοματοποιημένη διάθεση και επαναφορά
  • Οριζόντια Κλίμακα & Εξισορρόπηση Φορτίου
  • Προσφέρει περιβαλλοντική συνέπεια για ανάπτυξη, δοκιμή και παραγωγή
  • Η υποδομή είναι χαλαρά συνδεδεμένη με κάθε στοιχείο μπορεί να λειτουργήσει ως ξεχωριστή μονάδα
  • Παρέχει μεγαλύτερη πυκνότητα χρήσης πόρων
  • Προσφέρει λειτουργίες έτοιμες για επιχειρήσεις
  • Διαχείριση με επίκεντρο την εφαρμογή
  • Υποδομή με δυνατότητα αυτόματης κλιμάκωσης
  • Μπορείτε να δημιουργήσετε προβλέψιμη υποδομή

Βασικά στοιχεία του Kubernetes

Τώρα σε αυτό το σεμινάριο Kubernetes, θα μάθουμε μερικά σημαντικά βασικά του Kubernetes:

Cluster

Είναι μια συλλογή από κεντρικούς υπολογιστές (διακομιστές) που σας βοηθά να συγκεντρώσετε τους διαθέσιμους πόρους τους. Αυτό περιλαμβάνει ram, CPU, ram, δίσκο και τις συσκευές τους σε μια χρησιμοποιήσιμη πισίνα.

Κύριος

Το master είναι μια συλλογή στοιχείων που αποτελούν τον πίνακα ελέγχου του Kubernetes. Αυτά τα στοιχεία χρησιμοποιούνται για όλες τις αποφάσεις συμπλέγματος. Περιλαμβάνει τόσο τον προγραμματισμό όσο και την ανταπόκριση σε συμβάντα συμπλέγματος.

Κόμβος

Είναι ένας ενιαίος κεντρικός υπολογιστής που μπορεί να λειτουργεί σε ένα φυσικό ή εικονική μηχανή. Ένας κόμβος θα πρέπει να εκτελεί και kube-proxy, minikube και kubelet που θεωρούνται ως μέρος του συμπλέγματος.

Ο χώρος ονομάτων

Είναι ένα λογικό σύμπλεγμα ή περιβάλλον. Είναι μια ευρέως χρησιμοποιούμενη μέθοδος που χρησιμοποιείται για scoping πρόσβαση ή διαίρεση ενός συμπλέγματος.

Kubernetes Archiδομή

Παρακάτω είναι ένα λεπτομερές διάγραμμα αρχιτεκτονικής Kubernetes:

Kubernetes Archiδιάγραμμα δομής
Kubernetes Archiδιάγραμμα δομής

Κύριος Κόμβος

Ο κύριος κόμβος είναι το πρώτο και πιο ζωτικό στοιχείο που είναι υπεύθυνο για τη διαχείριση του συμπλέγματος Kubernetes. Είναι το σημείο εισόδου για κάθε είδους διοικητικές εργασίες. Μπορεί να υπάρχουν περισσότεροι από ένας κύριος κόμβος στο σύμπλεγμα για έλεγχο ανοχής σφαλμάτων.

Ο κύριος κόμβος έχει διάφορα στοιχεία όπως Διακομιστής API, Διαχείριση Ελεγκτή, Προγραμματιστής και ETCD. Ας τους δούμε όλους.

Διακομιστής API: Ο διακομιστής API λειτουργεί ως σημείο εισόδου για όλες τις εντολές REST που χρησιμοποιούνται για τον έλεγχο του συμπλέγματος.

Scheduler

Ο προγραμματιστής προγραμματίζει τις εργασίες στον υποτελή κόμβο. Αποθηκεύει τις πληροφορίες χρήσης πόρων για κάθε υποτελή κόμβο. Είναι υπεύθυνο για την κατανομή του φόρτου εργασίας.

Σας βοηθά επίσης track πώς χρησιμοποιείται το φόρτο εργασίας σε κόμβους συμπλέγματος. Σας βοηθά να τοποθετήσετε το φόρτο εργασίας σε πόρους που είναι διαθέσιμοι και να αποδεχτείτε το φόρτο εργασίας.

κ.λπ

Τα στοιχεία etcd αποθηκεύουν λεπτομέρειες διαμόρφωσης και τιμές wright. Επικοινωνεί με το μεγαλύτερο στοιχείο για να λαμβάνει εντολές και να λειτουργεί. Διαχειρίζεται επίσης τους κανόνες δικτύου και τη δραστηριότητα προώθησης θυρών.

Κόμβοι Worker/Slave

Οι κόμβοι εργασίας είναι ένα άλλο βασικό στοιχείο που περιέχει όλες τις απαιτούμενες υπηρεσίες για τη διαχείριση της δικτύωσης μεταξύ των κοντέινερ, την επικοινωνία με τον κύριο κόμβο, ο οποίος σας επιτρέπει να εκχωρήσετε πόρους στα προγραμματισμένα κοντέινερ.

  • Kubelet: λαμβάνει τη διαμόρφωση ενός Pod από τον διακομιστή API και διασφαλίζει ότι τα περιγραφόμενα κοντέινερ είναι σε λειτουργία και λειτουργούν.
  • Docker Container: Λιμενεργάτης Το κοντέινερ εκτελείται σε καθέναν από τους κόμβους εργαζομένων, ο οποίος εκτελεί τα διαμορφωμένα pods
  • Kube-proxy: Το Kube-proxy λειτουργεί ως εξισορρόπηση φορτίου και διακομιστής μεσολάβησης δικτύου για την εκτέλεση της υπηρεσίας σε έναν κόμβο εργασίας
  • Pods: Ένα pod είναι ένας συνδυασμός μεμονωμένων ή πολλαπλών κοντέινερ που λειτουργούν λογικά μαζί σε κόμβους

Άλλες βασικές ορολογίες

Ελεγκτές αναπαραγωγής

Ένας ελεγκτής αναπαραγωγής είναι ένα αντικείμενο που ορίζει ένα πρότυπο pod. Ελέγχει επίσης παραμέτρους για να κλιμακώσει οριζόντια πανομοιότυπα αντίγραφα του Pod αυξάνοντας ή μειώνοντας τον αριθμό των αντιγράφων που εκτελούνται.

Σύνολα αντιγραφής

Τα σύνολα αναπαραγωγής είναι μια αλληλεπίδραση στο σχεδιασμό του ελεγκτή αναπαραγωγής με ευελιξία στον τρόπο με τον οποίο ο ελεγκτής αναγνωρίζει τα pods που προορίζεται να διαχειριστεί. Αντικαθιστά τους ελεγκτές αναπαραγωγής λόγω της υψηλότερης ικανότητας επιλογής αντιγραφής.

Ανάπτυξη

Η ανάπτυξη είναι ένας κοινός φόρτος εργασίας που μπορεί να δημιουργηθεί και να διαχειριστεί άμεσα. Το σύνολο αντιγραφής χρήσης ανάπτυξης ως δομικό στοιχείο που προσθέτει τη δυνατότητα διαχείρισης του κύκλου ζωής.

Stateful σύνολα

Είναι ένα εξειδικευμένο pod control που προσφέρει παραγγελία και μοναδικότητα. Χρησιμοποιείται κυρίως για να έχετε λεπτομερή έλεγχο, τον οποίο έχετε ιδιαίτερη ανάγκη όσον αφορά τη σειρά ανάπτυξης, τη σταθερή δικτύωση και τα μόνιμα δεδομένα.

Σύνολα Daemon

Τα σύνολα Daemon είναι μια άλλη εξειδικευμένη μορφή ελεγκτή pod που εκτελεί ένα αντίγραφο ενός pod σε κάθε κόμβο του συμπλέγματος. Αυτός ο τύπος ελεγκτή pod είναι μια αποτελεσματική μέθοδος για την ανάπτυξη pods που σας επιτρέπει να πραγματοποιείτε συντήρηση και προσφέρει υπηρεσίες για τους ίδιους τους κόμβους.

Kubernetes εναντίον Docker Swarm

Εδώ είναι σημαντικές διαφορές μεταξύ Kubernetes vs Docker.

Παράμετρος Σμήνος Docker Kubernetes
Απολέπιση Χωρίς αυτόματη κλιμάκωση Αυτόματη κλιμάκωση
Εξισορρόπηση φορτίου Κάνει αυτόματη εξισορρόπηση φορτίου Διαμορφώστε μη αυτόματα τις ρυθμίσεις εξισορρόπησης φορτίου
Κοινή χρήση όγκου αποθήκευσης Μοιράζεται τους όγκους αποθήκευσης με οποιοδήποτε άλλο κοντέινερ Μοιράζεται τους όγκους αποθήκευσης μεταξύ πολλών κοντέινερ μέσα στο ίδιο Pod
Χρήση εργαλείου σύνδεσης και παρακολούθησης Χρησιμοποιήστε το 3rd κομματικό εργαλείο όπως τα ΕΛΚ Παρέχετε ένα ενσωματωμένο εργαλείο για καταγραφή και παρακολούθηση.
Εγκατάσταση Εύκολα & γρήγορα Πολύπλοκο και χρονοβόρο
GUI Το GUI δεν είναι διαθέσιμο Το GUI είναι διαθέσιμο
Απεριόριστες δυνατότητες Η κλιμάκωση είναι ταχύτερη από το K8S, αλλά η αντοχή του συμπλέγματος δεν είναι τόσο στιβαρή Η κλιμάκωση είναι αργή σε σύγκριση με το Swarm, αλλά εγγυάται ισχυρότερη κατάσταση συμπλέγματος Η εξισορρόπηση φορτίου απαιτεί χειροκίνητη διαμόρφωση σέρβις
Εξισορρόπηση φορτίου Παρέχει μια ενσωματωμένη τεχνική εξισορρόπησης φορτίου Προγραμματισμός διαδικασίας για τη διατήρηση των υπηρεσιών κατά την ενημέρωση
Ενημερώσεις και επαναλήψεις Καταγραφή και παρακολούθηση όγκων δεδομένων Προοδευτικές ενημερώσεις και παρακολούθηση της υγείας των υπηρεσιών. Κοινή χρήση μόνο με κοντέινερ στα ίδια εργαλεία καταγραφής και παρακολούθησης του Pod Inbuilt.

Πλεονεκτήματα του Kubernetes

  • Εύκολη οργάνωση του σέρβις με pods
  • Αναπτύσσεται από Google, οι οποίοι προσφέρουν χρόνια πολύτιμης εμπειρίας στον κλάδο
  • Η μεγαλύτερη κοινότητα μεταξύ εργαλείων ενορχήστρωσης κοντέινερ
  • Προσφέρει μια ποικιλία επιλογών αποθήκευσης, συμπεριλαμβανομένων εσωτερικών χώρων, SAN και δημόσιας cloud
  • Τηρεί τις αρχές της αμετάβλητης υποδομής
  • Το Kubernetes μπορεί να τρέξει γυμνό metal, OpenStack, δημόσια σύννεφα εντός των εγκαταστάσεων Google, Azure, AWSΚ.λπ.
  • Σας βοηθά να αποφύγετε προβλήματα κλειδώματος προμηθευτή, καθώς μπορεί να χρησιμοποιήσει οποιαδήποτε API ή υπηρεσίες ειδικά για προμηθευτές, εκτός από τις περιπτώσεις όπου το Kubernetes παρέχει ένα abs.tracση, π.χ., εξισορροπητής φορτίου και αποθήκευση.
  • Η μεταφορά εμπορευματοκιβωτίων με χρήση kubernetes επιτρέπει στο λογισμικό πακέτων να εξυπηρετεί αυτούς τους στόχους. Θα επιτρέψει τις εφαρμογές που πρέπει να κυκλοφορήσουν και να ενημερωθούν χωρίς κανένα χρόνο διακοπής λειτουργίας.
  • Το Kubernetes σάς επιτρέπει να διασφαλίζετε ότι αυτές οι εφαρμογές με κοντέινερ εκτελούνται όπου και όποτε θέλετε και σας βοηθά να βρείτε πόρους και εργαλεία που θέλετε να εργαστείτε.

Μειονεκτήματα του Kubernetes

  • Ο πίνακας ελέγχου Kubenetes δεν είναι τόσο χρήσιμος όσο θα έπρεπε
  • Το Kubernetes είναι λίγο περίπλοκο και περιττό σε περιβάλλοντα όπου όλη η ανάπτυξη γίνεται τοπικά.
  • Η ασφάλεια δεν είναι πολύ αποτελεσματική.

Συχνές Ερωτήσεις

Ένα pod είναι η μικρότερη αναπτυσσόμενη μονάδα στο Kubernetes. Ομαδοποιεί ένα ή περισσότερα κοντέινερ που μοιράζονται χώρο αποθήκευσης, δίκτυο και μια προδιαγραφή για τον τρόπο εκτέλεσης και προγραμματίζονται μαζί σε έναν κόμβο.

Το Docker είναι ένα περιβάλλον εκτέλεσης κοντέινερ που δημιουργεί και εκτελεί κοντέινερ, ενώ το Kubernetes είναι ένα σύστημα ενορχήστρωσης που διαχειρίζεται, κλιμακώνει και προγραμματίζει κοντέινερ σε clusters. Συχνά χρησιμοποιούνται μαζί.

Ναι. Το Kubernetes είναι ανοιχτού κώδικα και δωρεάν με την άδεια Apache 2.0. Ωστόσο, η εκτέλεσή του σε διαχειριζόμενες υπηρεσίες cloud όπως GKE, EKS ή AKS ενδέχεται να συνεπάγεται κόστος υποδομής και υπηρεσιών.

Η Τεχνητή Νοημοσύνη βοηθά το Kubernetes προβλέποντας τις ανάγκες σε πόρους, προσαρμόζοντας αυτόματα τα φόρτα εργασίας, εντοπίζοντας ανωμαλίες και βελτιστοποιώντας τον προγραμματισμό. Τα εργαλεία AIOps αναλύουν μετρήσεις και αρχεία καταγραφής συμπλέγματος για να βελτιώσουν την αξιοπιστία και να μειώσουν τις χειροκίνητες λειτουργίες.

Ναι. Οι βοηθοί τεχνητής νοημοσύνης μπορούν να δημιουργήσουν μανιφέστα YAML, να αντιμετωπίσουν προβλήματα σε προβληματικές ομάδες, να προτείνουν σωστό μέγεθος και να εξηγήσουν συμβάντα συμπλέγματος, βοηθώνταςping Οι ομάδες χειρίζονται τα Kubernetes πιο αποτελεσματικά με λιγότερη χειροκίνητη προσπάθεια.

Συνοψίστε αυτήν την ανάρτηση με: