Πώς να χρησιμοποιήσετε το HAProxy ως ελεγκτή εισόδου στο περιβάλλον Kubernetes

Pos Na Chresimopoiesete To Haproxy Os Elenkte Eisodou Sto Periballon Kubernetes



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

Τι είναι ο ελεγκτής εισόδου;

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

  1. Ο πόρος εισόδου – Είναι ένα αντικείμενο API Kubernetes που ορίζει τους κανόνες για τη δρομολόγηση της κυκλοφορίας των υπηρεσιών στο σύμπλεγμα με βάση το καθορισμένο όνομα κεντρικού υπολογιστή και διαδρομές.
  2. Ο ελεγκτής εισόδου – Είναι ένα στοιχείο λογισμικού όπως το HAProxy, το Traefik ή το NGINX που εφαρμόζει τους κανόνες που καθορίζονται στον πόρο εισόδου. Ρυθμίζει τον εξισορροπητή φορτίου για να χειρίζεται την κίνηση με βάση τις αλλαγές που έγιναν στα αντικείμενα εισόδου.

Πώς να χρησιμοποιήσετε το HAProxy ως ελεγκτή εισόδου στο περιβάλλον Kubernetes

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







N/B: Βεβαιωθείτε ότι έχετε το σύμπλεγμα Kubernetes σε λειτουργία και λειτουργία. Στη συνέχεια, προχωρήστε ως εξής.



Βήμα 1: Ξεκινήστε το σύμπλεγμα Kubernetes
Υπάρχουν διάφοροι τρόποι δημιουργίας και έναρξης ενός συμπλέγματος Kubernetes. Για αυτόν τον οδηγό, χρησιμοποιούμε το Minikube. Είναι ένα εργαλείο που προσφέρει έναν απλοϊκό τρόπο ανάπτυξης του Kubernetes μέσα σε μια εικονική μηχανή ή Docker, ειδικά αν έχετε το Kubernetes τοπικά στον υπολογιστή σας.



Αναφέρομαι στο Τεκμηρίωση Minikube στις εντολές εγκατάστασης που θα χρησιμοποιήσετε για την πλατφόρμα σας. Για αυτήν την περίπτωση, εκτελούμε μια σταθερή αρχιτεκτονική Linux 'x64' και εκτελούμε τις ακόλουθες εντολές:





$ μπούκλα -ΤΟ https: // storage.googleapis.com / minikube / εκδόσεις / αργότερο / minikube-linux-amd64
$ sudo εγκαθιστώ minikube-linux-amd64 / usr / τοπικός / αποθήκη / minikube

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

Μόλις εγκαταστήσετε το Minikube, ξεκινήστε το για να εμφανιστεί το σύμπλεγμα.



$ minikube εκκίνηση

Στη συνέχεια, πρέπει να έχετε εγκατεστημένο το kubectl για να αποκτήσετε πρόσβαση στο σύμπλεγμα. Ωστόσο, μπορείτε να χρησιμοποιήσετε την έκδοση kubectl που είναι διαθέσιμη με το Minikube. Για παράδειγμα, για να ελέγξετε τις λεπτομέρειες των εκτελούμενων pods, εκτελείτε την εντολή 'kubectl' ως εξής:

$ minikube kubectl -- πάρτε λοβούς -ΕΝΑ

Με αυτόν τον τρόπο, δεν χρειάζεται να έχετε εγκαταστήσει το kubectl. Το (–) σηματοδοτεί ότι οι εντολές είναι για kubectl, όχι για Minikube.

Βήμα 2: Δημιουργήστε έναν χώρο ονομάτων
Το δεύτερο βήμα περιλαμβάνει τη δημιουργία ενός αποκλειστικού χώρου ονομάτων για τον ελεγκτή εισόδου. Ονομάσαμε τον χώρο ονομάτων ως 'haproxy-controller'.

$ minikube kubectl δημιουργία ελεγκτή χαπροξυ χώρου ονομάτων

Βήμα 3: Δημιουργήστε και αναπτύξτε τον ελεγκτή εισόδου HAProxy
Ο τρόπος δημιουργίας του ελεγκτή εισόδου εξαρτάται από το τι θέλετε να επιτύχετε. Για παράδειγμα, μπορείτε να δημιουργήσετε έναν ελεγκτή εισόδου HAProxy για να δρομολογήσετε μια κίνηση HTTP ανάλογα με το όνομα κεντρικού υπολογιστή που ζητήθηκε. Σε μια τέτοια περίπτωση, ξεκινήστε με πρόσβαση στο διακομιστή DNS και δημιουργώντας μια εγγραφή 'A' για να αντιστοιχίσετε το όνομα κεντρικού υπολογιστή-στόχου στο σύμπλεγμα σας.

Μόλις έχετε τη σωστή εγγραφή 'A', δημιουργήστε το αρχείο YAML του ελεγκτή εισόδου όπως φαίνεται στην παρακάτω εικόνα. Στην πρώτη ενότητα, δημιουργήσαμε έναν πόρο ανάπτυξης που χρησιμοποιεί ως παράδειγμά μας την εικόνα κοντέινερ Docker 'jmalloc/echo-server'.

Στη δεύτερη ενότητα του αρχείου YAML, δημιουργήσαμε τον πόρο Service που αντιστοιχίζεται με βάση το όνομα κεντρικού υπολογιστή που ζητείται στον ελεγκτή εισόδου που δημιουργείται στο βήμα 4.

Αποθηκεύστε το αρχείο και αναπτύξτε το στο σύμπλεγμα σας χρησιμοποιώντας kubectl. Αναφέρουμε το Minikube kubectl εκτελώντας την ακόλουθη εντολή για την περίπτωσή μας. Ο ελεγκτής εισόδου HAProxy μας είναι 'linuzhint-jmaildeployment.yaml'.

$ minikube kubectl -- ισχύουν -φά < όνομα αρχείου >

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

$ minikube kubectl -- πάρτε λοβούς --χώρος ονομάτων ελεγκτής χαπροξυ

Βεβαιωθείτε ότι χρησιμοποιείτε τον σωστό χώρο ονομάτων που δημιουργήσατε στο βήμα 1. Θα λάβετε μια έξοδο που επιβεβαιώνει ότι η υπηρεσία είναι διαθέσιμη, πράγμα που σημαίνει ότι η ανάπτυξη ήταν επιτυχής.

Βήμα 4: Δημιουργήστε και αναπτύξτε έναν πόρο εισόδου
Δημιουργήστε ένα άλλο αρχείο YAML που λειτουργεί ως ο πόρος εισόδου που περιέχει τους κανόνες για το πώς το HAProxy πρέπει να δρομολογεί την επισκεψιμότητά σας. Βεβαιωθείτε ότι χρησιμοποιείτε το σωστό όνομα τομέα (κεντρικός υπολογιστής) που στοχεύετε και προσαρμόστε την ονομασία και την επιθυμητή θύρα για να αποδεχτείτε την εισερχόμενη κίνηση.

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

$ minikube kubectl -- ισχύουν -φά < όνομα αρχείου >

Ονομάζουμε τον πόρο εισόδου μας ως 'linuxint-ingresscontroller.yaml'.

Αυτό είναι! Με την ακόλουθη εντολή, μπορείτε να επαληθεύσετε ότι ο ελεγκτής εισόδου HAProxy λειτουργεί ελέγχοντας τη θύρα που έχει εκχωρηθεί στο NodePort.

$ minikube kubectl -- λάβετε υπηρεσία haproxy-kubernetes-ingress --χώρος ονομάτων ελεγκτής χαπροξυ

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

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

συμπέρασμα

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