NGINX Service Mesh διαθέσιμο

NGINX Service Mesh διαθέσιμο

Είμαστε στην ευχάριστη θέση να παρουσιάσουμε μια έκδοση προεπισκόπησης NGINX Service Mesh (NSM), ένα ομαδοποιημένο ελαφρύ πλέγμα υπηρεσιών που χρησιμοποιεί ένα επίπεδο δεδομένων που βασίζεται στο NGINX Plus για τη διαχείριση της κυκλοφορίας κοντέινερ σε περιβάλλοντα Kubernetes.

Το NSM είναι δωρεάν κατεβάστε εδώ. Ελπίζουμε ότι θα το δοκιμάσετε για προγραμματιστές και περιβάλλοντα δοκιμής - και περιμένουμε τα σχόλιά σας στο GitHub.

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

Το NSM επιλύει αυτά τα προβλήματα παρέχοντάς σας:

  • Ασφάλεια, που τώρα είναι πιο σημαντικό από ποτέ. Μια παραβίαση δεδομένων μπορεί να κοστίσει σε μια εταιρεία εκατομμύρια δολάρια ετησίως σε χαμένα έσοδα και φήμη. Το NSM διασφαλίζει ότι όλες οι συνδέσεις είναι κρυπτογραφημένες χρησιμοποιώντας mTLS, επομένως δεν υπάρχουν ευαίσθητα δεδομένα που μπορούν να κλαπούν από χάκερ μέσω του δικτύου. Ο έλεγχος πρόσβασης σάς επιτρέπει να ορίσετε πολιτικές για τον τρόπο επικοινωνίας των υπηρεσιών με άλλες υπηρεσίες.
  • διαχείριση της κυκλοφορίας. Κατά την αποστολή μιας νέας έκδοσης μιας εφαρμογής, μπορεί να θέλετε να ξεκινήσετε περιορίζοντας την εισερχόμενη κίνηση σε αυτήν σε περίπτωση σφάλματος. Με την έξυπνη διαχείριση της κυκλοφορίας κοντέινερ της NSM, μπορείτε να ορίσετε μια πολιτική περιορισμού κυκλοφορίας για νέες υπηρεσίες που θα αυξήσουν την επισκεψιμότητα με την πάροδο του χρόνου. Άλλα χαρακτηριστικά, όπως ο περιορισμός ταχύτητας και οι διακόπτες κυκλώματος, σας δίνουν τον πλήρη έλεγχο της ροής κυκλοφορίας όλων των υπηρεσιών σας.
  • Οραματισμός. Η διαχείριση χιλιάδων υπηρεσιών μπορεί να είναι ένας εφιάλτης εντοπισμού σφαλμάτων και οπτικοποίησης. Το NSM βοηθά στην αντιμετώπιση αυτής της κατάστασης με έναν ενσωματωμένο πίνακα εργαλείων Grafana που εμφανίζει όλες τις διαθέσιμες δυνατότητες στο NGINX Plus. Και επίσης το υλοποιημένο Open Tracing σάς επιτρέπει να παρακολουθείτε λεπτομερώς τις συναλλαγές.
  • Υβριδικές παραδόσεις, εάν η εταιρεία σας, όπως και οι περισσότερες άλλες, δεν χρησιμοποιεί υποδομή που εκτελείται εξ ολοκλήρου στο Kubernetes. Το NSM διασφαλίζει ότι οι εφαρμογές παλαιού τύπου δεν αφήνονται χωρίς επίβλεψη. Με τη βοήθεια του υλοποιημένου ελεγκτή εισόδου NGINX Kubernetes, οι υπηρεσίες παλαιού τύπου θα μπορούν να επικοινωνούν με υπηρεσίες πλέγματος και αντίστροφα.

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

Πώς λειτουργεί το πλέγμα υπηρεσιών NGINX;

Το NSM αποτελείται από ένα ενοποιημένο επίπεδο δεδομένων για οριζόντια κίνηση (από υπηρεσία σε υπηρεσία) και έναν ενσωματωμένο ελεγκτή εισόδου NGINX Plus για κάθετη κυκλοφορία, που διαχειρίζεται ένα μόνο επίπεδο ελέγχου.

Το επίπεδο ελέγχου είναι ειδικά σχεδιασμένο και βελτιστοποιημένο για το επίπεδο δεδομένων NGINX Plus και ορίζει κανόνες ελέγχου κυκλοφορίας που διανέμονται στα πλαϊνά κάθια NGINX Plus.

Στο NSM, εγκαθίστανται proxies sidecars για κάθε υπηρεσία στο mesh. Διασυνδέονται με τις ακόλουθες λύσεις ανοιχτού κώδικα:

  • Το Grafana, η οπτικοποίηση παραμέτρων Prometheus, ο ενσωματωμένος πίνακας NSM σας βοηθά με την εργασία σας.
  • Ελεγκτές εισόδου Kubernetes, για διαχείριση εισερχόμενης και εξερχόμενης κίνησης στο πλέγμα.
  • SPIRE, CA για διαχείριση, διανομή και ενημέρωση πιστοποιητικών στο πλέγμα.
  • NATS, ένα επεκτάσιμο σύστημα για την αποστολή μηνυμάτων, όπως ενημερώσεις διαδρομής, από το επίπεδο ελέγχου σε πλαϊνά κάθια.
  • Ανοίξτε την ανίχνευση, κατανεμημένο εντοπισμό σφαλμάτων (υποστηρίζονται Zipkin και Jaeger).
  • Ο Prometheus, συλλέγει και αποθηκεύει χαρακτηριστικά από τα sidecars του NGINX Plus, όπως τον αριθμό των αιτημάτων, τις συνδέσεις και τις χειραψίες SSL.

Λειτουργίες και εξαρτήματα

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

Τα χαρακτηριστικά περιλαμβάνουν:

  • Αμοιβαίος έλεγχος ταυτότητας TLS (mTLS).
  • Εξισορρόπηση φορτίου;
  • Ανοχή σε σφάλματα;
  • Όριο ταχύτητας;
  • Διακοπή κυκλώματος;
  • Γαλαζοπράσινα και καναρίνια αναπτύξεις.
  • Έλεγχος πρόσβασης.

Εκκίνηση του NGINX Service Mesh

Για να εκτελέσετε το NSM χρειάζεστε:

  • πρόσβαση στο περιβάλλον Kubernetes. Το NGINX Service Mesh υποστηρίζεται σε πολλές πλατφόρμες Kubernetes, συμπεριλαμβανομένων των Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere και κανονικών συμπλεγμάτων Kubernetes που αναπτύσσονται σε διακομιστές υλικού.
  • Εργαλείο kubectl, εγκατεστημένο στο μηχάνημα από το οποίο θα εγκατασταθεί το NSM.
  • Πρόσβαση σε πακέτα έκδοσης NGINX Service Mesh. Το πακέτο περιέχει εικόνες NSM που απαιτούνται για μεταφόρτωση σε ιδιωτικό μητρώο για κοντέινερ που είναι διαθέσιμα στο σύμπλεγμα Kubernetes. Η συσκευασία περιέχει επίσης nginx-meshctl, που απαιτείται για την ανάπτυξη του NSM.

Για να αναπτύξετε το NSM με προεπιλεγμένες ρυθμίσεις, εκτελέστε την ακόλουθη εντολή. Κατά την ανάπτυξη, εμφανίζονται μηνύματα που υποδεικνύουν την επιτυχή εγκατάσταση των στοιχείων και, τέλος, ένα μήνυμα που υποδεικνύει ότι το NSM εκτελείται σε ξεχωριστό χώρο ονομάτων (πρέπει να κατεβάσετε και τοποθετήστε το στο μητρώο, περίπου. μεταφράστης):

$ DOCKER_REGISTRY=your-Docker-registry ; MESH_VER=0.6.0 ; 
 ./nginx-meshctl deploy  
  --nginx-mesh-api-image "${DOCKER_REGISTRY}/nginx-mesh-api:${MESH_VER}" 
  --nginx-mesh-sidecar-image "${DOCKER_REGISTRY}/nginx-mesh-sidecar:${MESH_VER}" 
  --nginx-mesh-init-image "${DOCKER_REGISTRY}/nginx-mesh-init:${MESH_VER}" 
  --nginx-mesh-metrics-image "${DOCKER_REGISTRY}/nginx-mesh-metrics:${MESH_VER}"
Created namespace "nginx-mesh".
Created SpiffeID CRD.
Waiting for Spire pods to be running...done.
Deployed Spire.
Deployed NATS server.
Created traffic policy CRDs.
Deployed Mesh API.
Deployed Metrics API Server.
Deployed Prometheus Server nginx-mesh/prometheus-server.
Deployed Grafana nginx-mesh/grafana.
Deployed tracing server nginx-mesh/zipkin.
All resources created. Testing the connection to the Service Mesh API Server...

Connected to the NGINX Service Mesh API successfully.
NGINX Service Mesh is running.

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

$ nginx-meshctl deploy –h

Ελέγξτε ότι το επίπεδο ελέγχου λειτουργεί σωστά στο χώρο ονομάτων nginx-mesh, μπορείτε να το κάνετε αυτό:

$ kubectl get pods –n nginx-mesh
NAME                                 READY   STATUS    RESTARTS   AGE
grafana-6cc6958cd9-dccj6             1/1     Running   0          2d19h
mesh-api-6b95576c46-8npkb            1/1     Running   0          2d19h
nats-server-6d5c57f894-225qn         1/1     Running   0          2d19h
prometheus-server-65c95b788b-zkt95   1/1     Running   0          2d19h
smi-metrics-5986dfb8d5-q6gfj         1/1     Running   0          2d19h
spire-agent-5cf87                    1/1     Running   0          2d19h
spire-agent-rr2tt                    1/1     Running   0          2d19h
spire-agent-vwjbv                    1/1     Running   0          2d19h
spire-server-0                       2/2     Running   0          2d19h
zipkin-6f7cbf5467-ns6wc              1/1     Running   0          2d19h

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

Για παράδειγμα, αν αναπτύξουμε την εφαρμογή ύπνος στον χώρο ονομάτων αθέτηση, και μετά ελέγξτε το Pod - θα δούμε δύο κοντέινερ που τρέχουν, την εφαρμογή ύπνος και το σχετικό πλευρικό καρότσι:

$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME                     READY   STATUS    RESTARTS   AGE
sleep-674f75ff4d-gxjf2   2/2     Running   0          5h23m

Μπορούμε επίσης να παρακολουθούμε την εφαρμογή ύπνος στον πίνακα NGINX Plus, εκτελώντας αυτήν την εντολή για πρόσβαση στο sidecar από τον τοπικό σας υπολογιστή:

$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886

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

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

Συμπέρασμα

Το NGINX Service Mesh είναι διαθέσιμο για δωρεάν λήψη στη διεύθυνση πύλη F5. Δοκιμάστε το στα περιβάλλοντα προγραμματισμού και δοκιμής σας και γράψτε μας για τα αποτελέσματα.

Για να δοκιμάσετε το NGINX Plus Ingress Controller, ενεργοποιήστε το δωρεάν δοκιμαστική περίοδος για 30 ημέρες ή Επικοινωνήστε μαζί μας για να συζητήσετε τις περιπτώσεις χρήσης σας.

Μετάφραση από τον Pavel Demkovich, μηχανικό εταιρείας Southbridge. Διαχείριση συστήματος για 15 RUB ανά μήνα. Και ως ξεχωριστό τμήμα - ένα εκπαιδευτικό κέντρο Slurm, εξάσκηση και τίποτα άλλο παρά εξάσκηση.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο