Kubernetes Tutorial - Ένας περιεκτικός οδηγός για το Kubernetes



Αυτό το ιστολόγιο στο Kubernetes Tutorial, θα σας καθοδηγήσει σε όλες τις έννοιες του συστήματος ενορχήστρωσης εμπορευματοκιβωτίων με ένα Hands-on.

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

Τα ακόλουθα θέματα θα καλυφθούν σε αυτό το σεμινάριο:





Τώρα, προτού προχωρήσω σε αυτό το ιστολόγιο, επιτρέψτε μου να σας ενημερώσω γρήγορα σχετικά με την εμπορευματοκιβώτια.

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



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

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



Εκμάθηση Kubernetes: Προκλήσεις χωρίς ενορχήστρωση εμπορευματοκιβωτίων

Προκλήσεις χωρίς ενορχήστρωση εμπορευματοκιβωτίων - Kubernetes Tutorial - Edureka

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

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

Αυτός ο κινητήρας, μας επιτρέπει να οργανώνουμε πολλά δοχεία, με τρόπο ώστε να ξεκινούν όλα τα υποκείμενα μηχανήματα, τα εμπορευματοκιβώτια να είναι υγιή και να διανέμονται σε περιβάλλον συμπλέγματος. Στον σημερινό κόσμο, υπάρχουν κυρίως δύο τέτοιοι κινητήρες: Διοικητές & Σμήνος Docker .

Εκμάθηση Kubernetes: Kubernetes εναντίον Docker Swarm

Διοικητές και Σμήνος Docker είναι κορυφαία εργαλεία ενορχήστρωσης κοντέινερ στη σημερινή αγορά. Έτσι, πριν τα χρησιμοποιήσετε στο prod, θα πρέπει να γνωρίζετε τι ακριβώς είναι και πώς λειτουργούν.

Επιπλέον, στο ιστολόγιο, πρόκειται να βουτήξω βαθιά στο Kubernetes, αλλά για να μάθετε για το Docker μπορείτε να κάνετε κλικ .

Όπως μπορείτε να αναφέρετε στην παραπάνω εικόνα, το Kubernetes, σε σύγκριση με το Docker Swarm κατέχει μια μεγάλη ενεργό κοινότητα και ενισχύει την αυτόματη κλιμάκωση σε πολλούς οργανισμούς. Ομοίως, το Docker Swarm έχει ένα εύχρηστο σύμπλεγμα σε σύγκριση με το Kubernetes, αλλά περιορίζεται στις δυνατότητες του Docker API.

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

Ενδιαφέρεστε να μάθετε περισσότερα για το Kubernetes;

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

Αλλά, αν νομίζετε λογικά, το Docker Swarm θα έκανε μια καλύτερη επιλογή, καθώς τρέχει πάνω από το Docker, σωστά; Αν ήμουν εσύ, σίγουρα θα μπερδευόμουν με ποιο εργαλείο θα χρησιμοποιήσω. Αλλά hei, ο Kubernetes είναι ένας αδιαμφισβήτητος ηγέτης στην αγορά και επίσης τρέχει πάνω από δοχεία Docker με καλύτερες λειτουργίες.

Τώρα, που έχετε καταλάβει την ανάγκη για Kubernetes, είναι καλή στιγμή που σας λέω Τι είναι το Kubernetes;

διαφορά μεταξύ c c # και c ++

Εκμάθηση Kubernetes: Τι είναι το Kubernetes;

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

Εκμάθηση Kubernetes: Χαρακτηριστικά Kubernetes

Τα χαρακτηριστικά του Kubernetes είναι τα εξής:

  • Αυτοματοποιημένος προγραμματισμός: Το Kubernetes παρέχει προηγμένο χρονοδιάγραμμα για την εκκίνηση κοντέινερ σε κόμβους συμπλέγματος βάσει των απαιτήσεων πόρων και άλλων περιορισμών, χωρίς να θυσιάζει τη διαθεσιμότητα.
  • Ικανότητες αυτοθεραπείας: Το Kubernetes επιτρέπει την αντικατάσταση και τον επαναπρογραμματισμό δοχείων όταν πεθαίνουν οι κόμβοι. Επίσης σκοτώνει κοντέινερ που δεν ανταποκρίνονται σε έλεγχο υγείας που καθορίζεται από τους χρήστες και δεν τα διαφημίζει σε πελάτες έως ότου είναι έτοιμα για προβολή.
  • Αυτοματοποιημένη διάθεση και επαναφορά: Το Kubernetes παρουσιάζει αλλαγές στην εφαρμογή ή στη διαμόρφωσή της, ενώ παρακολουθεί την υγεία της εφαρμογής, για να διασφαλίσει ότι δεν θα σκοτώνει όλες τις παρουσίες σας ταυτόχρονα. Εάν κάτι πάει στραβά, με το Kubernetes μπορείτε να επαναφέρετε την αλλαγή.
  • Οριζόντια κλιμάκωση & εξισορρόπηση φορτίου: Τα Kubernetes μπορούν να κλιμακώσουν και να μειώσουν την εφαρμογή σύμφωνα με τις απαιτήσεις με μια απλή εντολή, χρησιμοποιώντας ένα περιβάλλον εργασίας χρήστη ή αυτόματα βάσει της χρήσης της CPU.

Εκμάθηση Kubernetes: Αρχιτεκτονική Kubernetes

Το Kubernetes Architecture έχει τα ακόλουθα κύρια συστατικά:

  • Κύριοι κόμβοι
  • Κόμβοι εργαζομένων / σκλάβων

Θα συζητήσω καθένα από αυτά ένα προς ένα. Λοιπόν, αρχικά ας ξεκινήσουμε με την κατανόηση του Κύριος κόμβος .

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

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

Όπως μπορείτε να δείτε στο παραπάνω διάγραμμα, ο κύριος κόμβος έχει διάφορα στοιχεία, όπως API Server, Controller Manager, Scheduler και ETCD.

  • Διακομιστής API: Ο διακομιστής API είναι το σημείο εισόδου για όλες τις εντολές REST που χρησιμοποιούνται για τον έλεγχο του συμπλέγματος.
  • Διαχειριστής ελεγκτή: Είναι ένας δαίμονας που ρυθμίζει το σύμπλεγμα Kubernetes και διαχειρίζεται διαφορετικούς βρόχους ελέγχου που δεν τερματίζουν.
  • Χρονοδιάγραμμα: Ο προγραμματιστής προγραμματίζει τις εργασίες σε δευτερεύοντες κόμβους. Αποθηκεύει τις πληροφορίες χρήσης πόρων για κάθε κόμβο σκλάβων.
  • ETCD: Το ETCD είναι ένα απλό, κατανεμημένο, συνεπές κατάστημα κλειδιών-τιμών. Χρησιμοποιείται κυρίως για κοινή διαμόρφωση και ανακάλυψη υπηρεσίας.

Κόμβοι εργαζομένων / σκλάβων

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

Όπως μπορείτε να δείτε στο παραπάνω διάγραμμα, ο κόμβος εργαζομένων έχει διάφορα στοιχεία όπως το Docker Container, Kubelet, Kube-proxy και Pods.

  • Δοχείο Docker: Το Docker εκτελείται σε κάθε έναν από τους κόμβους εργαζομένων και εκτελεί τις διαμορφωμένες ομάδες
  • Kubelet: Το Kubelet λαμβάνει τη διαμόρφωση ενός Pod από το διακομιστή API και διασφαλίζει ότι τα περιγραφόμενα κοντέινερ είναι σε λειτουργία.
  • Αντιπρόσωπος της Κούβας: Ο διακομιστής μεσολάβησης Kube ενεργεί ως διακομιστής μεσολάβησης δικτύου και εξισορρόπησης φορτίου για μια υπηρεσία σε έναν κόμβο εργαζομένου
  • Λοβοί: Το pod είναι ένα ή περισσότερα κοντέινερ που λειτουργούν λογικά μαζί σε κόμβους.

Εάν θέλετε μια λεπτομερή εξήγηση για όλα τα στοιχεία του Kubernetes Architecture, τότε μπορείτε να ανατρέξετε στο blog στο

Θέλετε να αποκτήσετε πιστοποίηση στο Kubernetes;

Εκμάθηση Kubernetes: Μελέτη περίπτωσης Kubernetes

Υ αχ! ΙΑΠΩΝΙΑ είναι πάροχος υπηρεσιών διαδικτύου με έδρα το Sunnyvale της Καλιφόρνια. Καθώς η εταιρεία σκόπευε να εικονικοποιήσει το υλικό, η εταιρεία άρχισε να χρησιμοποιεί OpenStack το 2012. Το εσωτερικό τους περιβάλλον άλλαξε πολύ γρήγορα. Ωστόσο, λόγω της προόδου της τεχνολογίας cloud και container, η εταιρεία ήθελε το capaικανότητα εκτόξευσης υπηρεσιών σε διάφορες πλατφόρμες.

Πρόβλημα: Πώς να δημιουργήσετε εικόνες για όλες τις απαιτούμενες πλατφόρμες από έναν κωδικό εφαρμογής και να αναπτύξετε αυτές τις εικόνες σε κάθε πλατφόρμα;

Για την καλύτερη κατανόησή σας, ανατρέξτε στην παρακάτω εικόνα. Όταν ο κώδικας αλλάξει στο μητρώο κωδικών, τότε δημιουργούνται εικόνες γυμνών μετάλλων, κοντέινερ Docker και εικόνες VM με εργαλεία συνεχούς ενοποίησης, μεταφέρονται στο μητρώο εικόνων και στη συνέχεια αναπτύσσονται σε κάθε πλατφόρμα υποδομής.


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

Χρησιμοποιούνται παρουσίες OpenStack, με το Docker, το Kubernetes, το Calico κ.λπ. να εκτελεί διάφορες λειτουργίες όπως το Container Networking, το Container Registry και ούτω καθεξής.

Όταν έχετε μια σειρά συστάδων, τότε είναι δύσκολο να τα διαχειριστείτε σωστά;

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

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


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

Έτσι είναι οι λαοί, Yahoo! ΙΑΠΩΝΙΑ δημιούργησε μια αυτοματοποιημένη αλυσίδα εργαλείων για ανάπτυξη κώδικα 'με ένα κλικ' στο Kubernetes που εκτελείται στο OpenStack, με βοήθεια από Google και Σόλινα .

Tutorial Διοικητών: Hands-On

Σε αυτό το Hands-On, θα σας δείξω πώς να δημιουργήσετε μια ανάπτυξη και μια υπηρεσία. Χρησιμοποιώ ένα στιγμιότυπο Amazon EC2, για να χρησιμοποιήσω το Kubernetes. Λοιπόν, το Amazon έχει επινοήσει Υπηρεσία ελαστικών εμπορευματοκιβωτίων Amazon Για Διοικητές (Amazon EKS) , που τους επιτρέπει να δημιουργούν συστάδες Kubernetes στο σύννεφο πολύ γρήγορα και εύκολα. Εάν θέλετε να μάθετε περισσότερα σχετικά με αυτό, μπορείτε να ανατρέξετε στο ιστολόγιο

Βήμα 1: Πρώτα δημιουργία φακέλου μέσα στο οποίο θα δημιουργήσετε την ανάπτυξη και την υπηρεσία σας. Μετά από αυτό, χρησιμοποιήστε ένα πρόγραμμα επεξεργασίας και ανοίξτε ένα αρχείο ανάπτυξης .

mkdir handsOn cd handsOn vi Deploy.yaml

Βήμα 2: Μόλις ανοίξετε το αρχείο ανάπτυξης, αναφέρετε όλες τις προδιαγραφές για την εφαρμογή που θέλετε να αναπτύξετε. Εδώ προσπαθώ να αναπτύξω ένα httpd εφαρμογή.

apiVersion: apps / v1 # Ορίζει το είδος έκδοσης API: Η παράμετρος Deployment #Kinds καθορίζει το είδος του αρχείου, εδώ είναι τα μεταδεδομένα ανάπτυξης: όνομα: dep1 # Αποθηκεύει το όνομα της προδιαγραφής ανάπτυξης: # Στην ενότητα Προδιαγραφές, αναφέρετε όλα οι προδιαγραφές για τα αντίγραφα ανάπτυξης: 3 # Ο αριθμός των αντιγράφων θα ήταν 3 επιλογέας: matchLabels: app: httpd # Το όνομα της ετικέτας που θα αναζητούσε είναι πρότυπο httpd: metadata: labels: app: httpd # Το όνομα του προτύπου θα είναι httpd spec: # Κάτω Προδιαγραφές, αναφέρετε όλες τις προδιαγραφές για τα εμπορευματοκιβώτια κοντέινερ: - όνομα: httpd # Το όνομα των κοντέινερ θα είναι εικόνα httpd: httpd: τελευταία # Η εικόνα που πρέπει να κατεβάσετε είναι httpd: πιο πρόσφατες θύρες: - containerPort: 80 # Η εφαρμογή θα εκτεθεί στη θύρα 80

Βήμα 3: Αφού γράψετε το αρχείο ανάπτυξης, εφαρμόστε την ανάπτυξη χρησιμοποιώντας την ακόλουθη εντολή.

kubectl apply -f Deploy.yaml

Εδώ -f είναι ένα όνομα σημαίας που χρησιμοποιείται γιαταρχειοθετείόνομα.

Βήμα 4: Τώρα, μόλις εφαρμοστεί η ανάπτυξη, εκτελέστε τη λίστα των pods.

kubectl πάρτε λοβό-πολύ ευρύ

Εδώ, -o wide χρησιμοποιούνται για να γνωρίζουν σε ποιον κόμβο εκτελείται η ανάπτυξη.

πώς να χρησιμοποιήσετε τον πάγκο εργασίας mysql

Βήμα 5: Αφού δημιουργήσετε μια ανάπτυξη, τώρα πρέπει να δημιουργήσετε μια υπηρεσία. Για αυτό χρησιμοποιήστε ξανά ένα πρόγραμμα επεξεργασίας και ανοίξτε ένα κενό υπηρεσία. αρχείο yaml .

vi service.yaml

Βήμα 6: Μόλις ανοίξετε ένα αρχείο υπηρεσίας, αναφέρετε όλες τις προδιαγραφές για την υπηρεσία.

apiVersion: v1 # Ορίζει το είδος έκδοσης API: Η παράμετρος Service #Kinds καθορίζει το είδος του αρχείου, εδώ είναι τα μεταδεδομένα υπηρεσίας: name: netsvc # Αποθηκεύει το όνομα της προδιαγραφής υπηρεσίας: # Στην ενότητα Προδιαγραφές, αναφέρετε όλες τις προδιαγραφές για τον τύπο υπηρεσίας: Επιλογέας NodePort: εφαρμογή: θύρες httpd: -πρωτόκολλο: θύρα TCP: 80 targetPort: 8084 # Ο αριθμός θύρας στόχου είναι 8084

Βήμα 7: Αφού γράψετε το αρχείο υπηρεσίας, εφαρμόστε το αρχείο υπηρεσίας χρησιμοποιώντας την ακόλουθη εντολή.

kubectl apply -f service.yaml

Βήμα 8: Τώρα, μόλις εφαρμοστεί η υπηρεσία σας για να ελέγξετε εάν η υπηρεσία εκτελείται ή όχι, χρησιμοποιήστε την ακόλουθη εντολή.

kubectl πάρει svc

Βήμα 9: Τώρα, για να δείτε τις προδιαγραφές της υπηρεσίας και να ελέγξετε ποιο Endpoint είναιδεσμευμένο με, χρησιμοποιήστε την ακόλουθη εντολή.

kubectl περιγραφή svc

Βήμα 10: Τώρα, επειδή χρησιμοποιούμε την παρουσία του amazon ec2, για να πάρουμε την ιστοσελίδα και να ελέγξουμε την έξοδο, χρησιμοποιήστε την ακόλουθη εντολή.

curl ip-διεύθυνση

Εάν βρήκατε αυτό το ιστολόγιο Kubernetes Tutorial σχετικό, ρίξτε μια ματιά στο από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων του ' Εκμάθηση Kubernetes Και θα επικοινωνήσω μαζί σας.