Δημιουργήστε Kubernetes EndpointSlices

Demiourgeste Kubernetes Endpointslices



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

Τι είναι ένα EndpointSlice στο Kubernetes;

Το EndpointSlice στο Kubernetes είναι ένας εντοπιστής τελικών σημείων δικτύου. Καθιστά δυνατή την παρακολούθηση των τελικών σημείων δικτύου σε ένα σύμπλεγμα Kubernetes. Με απλά λόγια, είναι ένα αντικείμενο που λαμβάνει τις διευθύνσεις IP από κάθε pod που του έχει εκχωρηθεί. Η υπηρεσία Kubernetes αναφέρεται σε αυτό το αντικείμενο για να λάβει την εγγραφή των εσωτερικών διευθύνσεων IP του pod για επικοινωνία. Επιπλέον, αυτά τα τελικά σημεία χρησιμοποιούνται από τα pods για να εκτεθούν σε μια υπηρεσία.

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









Εδώ, μπορείτε να δείτε ότι ένα Endpoint περιέχει όλα τα pods στο σύμπλεγμα και τα EndpointSlices είναι η επεκτάσιμη και επεκτάσιμη εναλλακτική λύση στο υπάρχον Endpoint. Υπάρχει μόνο ένας πόρος Endpoint για ολόκληρη την υπηρεσία, αλλά υπάρχουν περισσότερα από ένα EndpointSlices για την ίδια υπηρεσία. Τα EndpointSlices σάς βοηθούν να κλιμακώσετε τους πόρους του δικτύου σας με αυτόν τον τρόπο. Για να κατανοήσουμε πόσο σημαντικό είναι αυτό το ζήτημα επεκτασιμότητας, ας πάρουμε ένα παράδειγμα.



Για παράδειγμα, η υπηρεσία Kubernetes έχει περίπου 9.000 pods που κατά κάποιο τρόπο καταλήγουν σε πόρους Endpoint 2MB. Ένα μόνο τελικό σημείο έχει όλους αυτούς τους πόρους τελικού σημείου των υπηρεσιών. Εάν οποιοδήποτε τελικό σημείο δικτύου αλλάξει στο τελικό σημείο, ολόκληρος ο πόρος του τελικού σημείου πρέπει να κατανεμηθεί μεταξύ κάθε κόμβου στο σύμπλεγμα. Όταν πρόκειται να αντιμετωπίσουμε ένα σύμπλεγμα που έχει 3000 κόμβους, γίνεται τεράστιο πρόβλημα αφού ένας τεράστιος αριθμός ενημερώσεων πρέπει να σταλεί σε κάθε κόμβο. Ως εκ τούτου, όταν κλιμακώνεστε περισσότερο σε ένα μόνο τελικό σημείο, τόσο πιο δύσκολη γίνεται η κλιμάκωση του δικτύου.





Ωστόσο, τα EndpointSlices επιλύουν αυτό το ζήτημα επιτρέποντας στα Kubernetes να κλιμακωθούν όσο χρειάζεται. Αντί να χρησιμοποιείτε ένα μόνο τελικό σημείο που περιέχει μια τεράστια λίστα διευθύνσεων IP και τους αντίστοιχους αριθμούς θυρών τους, χρησιμοποιήστε πολλαπλά EndpointSlices. Αυτά τα EndpointSlices είναι μικρά κομμάτια ενός τεράστιου και μόνο τελικού σημείου. Αυτές οι φέτες είναι μικρότερες σε μεγάλο βαθμό, αλλά μετριάζουν το φορτίο που προκαλείται από το τεράστιο τελικό σημείο. Μπορείτε να αποθηκεύσετε έως και 100 pods σε ένα EndpointSlice. Αυτά τα EndpointSlices σάς βοηθούν να διανείμετε την υπηρεσία σε ένα συγκεκριμένο pod. Εάν αλλάξει κάποιο τελικό σημείο δικτύου, χρειάζεται μόνο να στείλετε ενημερώσεις σε ένα EndpointSlice που περιέχει το πολύ 100 ομάδες διαφημίσεων. Όλα τα άλλα pod στο δίκτυο παραμένουν ανέγγιχτα.

Τώρα, ας μάθουμε πώς μπορούμε να δημιουργήσουμε ένα Kubernetes EndpointSlice.



Πώς δημιουργούνται τα EndpointSlices στο Kubernetes;

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

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

Βήμα 1: Ξεκινήστε το Minikube Cluster

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

> ξεκινήστε το minikube

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

Βήμα 2: Δημιουργήστε μια ανάπτυξη με το αρχείο YAML

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

> nano endpoint.yaml

Αυτό δημιουργεί ένα νέο αρχείο YAML με το όνομα 'endpoint.yaml' όπου μπορείτε να αποθηκεύσετε τον ορισμό ανάπτυξης για διαμόρφωση. Ανατρέξτε στον ορισμό της ανάπτυξης στο ακόλουθο στιγμιότυπο οθόνης:

Βήμα 3: Δημιουργήστε το EndpointSlice χρησιμοποιώντας το αρχείο YAML

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

> kubectl δημιουργία -f endpoint.yaml

Στο περιβάλλον Kubernetes, οι πόροι δημιουργούνται χρησιμοποιώντας την εντολή 'kubectl create'. Ως εκ τούτου, χρησιμοποιούμε την εντολή 'kubectl create' για να δημιουργήσουμε τα EndpointSlices από το αρχείο διαμόρφωσης YAML.

συμπέρασμα

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