Tutorial Kubernetes για αρχάριους: Βασικά στοιχεία, χαρακτηριστικά, Archiδομή

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

Τι είναι ο Kubernetes;

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Cluster

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

  • Κύριος

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

  • Κόμβος

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

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

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

Kubernetes Archiδομή

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

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

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

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

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

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

Scheduler

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

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

κ.λπ

Τα στοιχεία 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 παρέχει μια αφαίρεση, π.χ. εξισορρόπηση φορτίου και αποθήκευση.
  • Η μεταφορά εμπορευματοκιβωτίων με χρήση kubernetes επιτρέπει στο λογισμικό πακέτων να εξυπηρετεί αυτούς τους στόχους. Θα επιτρέψει τις εφαρμογές που πρέπει να κυκλοφορήσουν και να ενημερωθούν χωρίς κανένα χρόνο διακοπής λειτουργίας.
  • Το Kubernetes σάς επιτρέπει να διασφαλίζετε ότι αυτές οι εφαρμογές με κοντέινερ εκτελούνται όπου και όποτε θέλετε και σας βοηθά να βρείτε πόρους και εργαλεία που θέλετε να εργαστείτε.

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

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

Σύνοψη

  • Το Container βοηθά έναν οργανισμό να πραγματοποιεί συντήρηση και ενημέρωση χωρίς να διακόπτει τις υπηρεσίες
  • Το Kubernetes είναι ένα παράδειγμα συστήματος διαχείρισης κοντέινερ που αναπτύχθηκε στην πλατφόρμα Google.
  • Το μεγαλύτερο πλεονέκτημα της χρήσης του Kubernetes είναι ότι μπορεί να τρέξει το OpenStack εντός των εγκαταστάσεων, τα δημόσια σύννεφα Google, Azure, AWS, κ.λπ.
  • Η Kubernetes προσφέρει αυτοματοποιημένες δυνατότητες προγραμματισμού και αυτοθεραπείας.
  • Cluster, master, node και namespace είναι σημαντικά βασικά των kubernetes
  • Ο κύριος κόμβος και ο κόμβος εργασίας είναι σημαντικά στοιχεία της αρχιτεκτονικής Kubernetes.
  • Οι ελεγκτές αναπαραγωγής, τα σύνολα αναπαραγωγής, οι αναπτύξεις, τα σύνολα κατάστασης, τα σύνολα δαιμόνων είναι άλλοι σημαντικοί όροι που χρησιμοποιούνται στο Kubernetes.
  • Το σμήνος Docker δεν επιτρέπει την αυτόματη κλιμάκωση ενώ το Kubernetes επιτρέπει την αυτόματη κλιμάκωση.
  • Το μεγαλύτερο μειονέκτημα του Kubenetes είναι ότι το ταμπλό του δεν είναι πολύ χρήσιμο και αποτελεσματικό