NGINX Service Mesh verfügbar

NGINX Service Mesh verfügbar

Wir freuen uns, Ihnen eine Vorschauversion präsentieren zu können NGINX Service Mesh (NSM), ein gebündeltes, leichtes Service Mesh, das eine NGINX Plus-basierte Datenebene verwendet, um den Containerverkehr in Kubernetes-Umgebungen zu verwalten.

NSM ist kostenlos скачать здесь. Wir hoffen, dass Sie es für Entwicklungs- und Testumgebungen ausprobieren – und freuen uns auf Ihr Feedback auf GitHub.

Die Implementierung der Microservices-Methodik ist mit zunehmendem Umfang und zunehmender Komplexität der Bereitstellung mit Schwierigkeiten behaftet. Die Kommunikation zwischen Diensten wird komplexer, das Debuggen von Problemen wird schwieriger und immer mehr Dienste erfordern mehr Ressourcen für die Verwaltung.

NSM löst diese Probleme, indem es Ihnen Folgendes bietet:

  • Sicherheit, was heute wichtiger denn je ist. Eine Datenschutzverletzung kann einem Unternehmen jährlich Millionen von Dollar an Umsatz- und Reputationsverlusten kosten. NSM stellt sicher, dass alle Verbindungen mit mTLS verschlüsselt sind, sodass keine sensiblen Daten über das Netzwerk von Hackern gestohlen werden können. Mit der Zugriffskontrolle können Sie Richtlinien für die Kommunikation von Diensten mit anderen Diensten festlegen.
  • Verkehrsregelung. Wenn Sie eine neue Version einer Anwendung ausliefern, möchten Sie möglicherweise damit beginnen, den eingehenden Datenverkehr für die Anwendung im Fehlerfall einzuschränken. Mit dem intelligenten Container-Verkehrsmanagement von NSM können Sie eine Verkehrsbeschränkungsrichtlinie für neue Dienste festlegen, die den Verkehr mit der Zeit erhöht. Weitere Funktionen wie Geschwindigkeitsbegrenzung und Leistungsschalter geben Ihnen die volle Kontrolle über den Verkehrsfluss aller Ihrer Dienste.
  • Visualisierung. Die Verwaltung Tausender Dienste kann ein Albtraum beim Debuggen und Visualisieren sein. NSM hilft bei der Bewältigung dieser Situation mit einem integrierten Grafana-Dashboard, das alle in NGINX Plus verfügbaren Funktionen anzeigt. Und auch das implementierte Open Tracing ermöglicht Ihnen eine detaillierte Überwachung von Transaktionen.
  • Hybridlieferungen, wenn Ihr Unternehmen, wie die meisten anderen, keine Infrastruktur nutzt, die vollständig auf Kubernetes läuft. NSM stellt sicher, dass Legacy-Anwendungen nicht unbeaufsichtigt bleiben. Mit Hilfe des implementierten NGINX Kubernetes Ingress Controllers können Legacy-Dienste mit Mesh-Diensten kommunizieren und umgekehrt.

NSM gewährleistet auch die Anwendungssicherheit in Zero-Trust-Umgebungen, indem es transparent Verschlüsselung und Authentifizierung auf den Containerverkehr anwendet. Darüber hinaus bietet es Transaktionstransparenz und -analyse und hilft Ihnen, Bereitstellungen schnell und genau zu starten und Probleme zu beheben. Darüber hinaus bietet es eine granulare Verkehrskontrolle, die es DevOps-Teams ermöglicht, Teile von Anwendungen bereitzustellen und zu optimieren, während Entwickler gleichzeitig ihre verteilten Anwendungen erstellen und einfach verbinden können.

Wie funktioniert das NGINX Service Mesh?

NSM besteht aus einer einheitlichen Datenebene für horizontalen Datenverkehr (von Dienst zu Dienst) und einem eingebetteten NGINX Plus Ingress Controller für vertikalen Datenverkehr, der von einer einzigen Steuerebene verwaltet wird.

Die Steuerungsebene wurde speziell für die NGINX Plus-Datenebene entwickelt und optimiert und definiert Verkehrskontrollregeln, die über NGINX Plus-Sidecars verteilt sind.

In NSM werden für jeden Dienst im Mesh Sidecar-Proxys installiert. Sie sind mit den folgenden Open-Source-Lösungen verbunden:

  • Grafana, Prometheus-Parametervisualisierung und das integrierte NSM-Panel helfen Ihnen bei Ihrer Arbeit.
  • Kubernetes Ingress Controller zur Verwaltung des ein- und ausgehenden Datenverkehrs im Mesh;
  • SPIRE, CA zur Verwaltung, Verteilung und Aktualisierung von Zertifikaten im Mesh;
  • NATS, ein skalierbares System zum Senden von Nachrichten, wie z. B. Routenaktualisierungen, von der Kontrollebene an Sidecars;
  • Open Tracing, verteiltes Debugging (Zipkin und Jaeger unterstützt);
  • Prometheus sammelt und speichert Merkmale von NGINX Plus-Sidecars, wie z. B. die Anzahl der Anfragen, Verbindungen und SSL-Handshakes.

Funktionen und Komponenten

NGINX Plus deckt als Datenebene den Sidecar-Proxy (horizontaler Datenverkehr) und den Ingress-Controller (vertikal) ab und fängt den Containerverkehr zwischen Diensten ab und verwaltet ihn.

Features sind:

  • Gegenseitige TLS-Authentifizierung (mTLS);
  • Lastverteilung;
  • Fehlertoleranz;
  • Geschwindigkeitsbegrenzung;
  • Stromkreisunterbrechung;
  • Blaugrüne und kanarische Einsätze;
  • Zugangskontrolle.

Starten des NGINX Service Mesh

Um NSM auszuführen, benötigen Sie:

  • Zugriff auf die Kubernetes-Umgebung. NGINX Service Mesh wird auf vielen Kubernetes-Plattformen unterstützt, darunter Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere und reguläre Kubernetes-Cluster, die auf Hardwareservern bereitgestellt werden;
  • Werkzeug kubectl, installiert auf dem Computer, von dem NSM installiert werden soll;
  • Zugriff auf NGINX Service Mesh-Release-Pakete. Das Paket enthält NSM-Images, die zum Hochladen in eine private Registrierung für im Kubernetes-Cluster verfügbare Container benötigt werden. Das Paket enthält auch nginx-meshctl, erforderlich, um NSM bereitzustellen.

Führen Sie den folgenden Befehl aus, um NSM mit Standardeinstellungen bereitzustellen. Während der Bereitstellung werden Meldungen angezeigt, die auf eine erfolgreiche Installation der Komponenten hinweisen, und schließlich eine Meldung, die darauf hinweist, dass NSM in einem separaten Namespace ausgeführt wird (Sie müssen dies zuerst tun). скачать und tragen Sie es in die Registrierung ein, ca. Übersetzer):

$ 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.

Für weitere Optionen, einschließlich erweiterter Einstellungen, führen Sie diesen Befehl aus:

$ nginx-meshctl deploy –h

Überprüfen Sie, ob die Steuerungsebene im Namespace ordnungsgemäß funktioniert Nginx-Mesh, du kannst das:

$ 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

Abhängig von den Bereitstellungseinstellungen, die manuelle oder automatische Injektionsrichtlinien festlegen, werden NGINX-Sidecar-Proxys standardmäßig zu Anwendungen hinzugefügt. Um das automatische Hinzufügen zu deaktivieren, lesen Sie hier

Zum Beispiel, wenn wir die Anwendung bereitstellen schlafen im Namensraum Standard, und überprüfen Sie dann den Pod – wir sehen zwei laufende Container, die Anwendung schlafen und der zugehörige Beiwagen:

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

Wir können die Anwendung auch überwachen schlafen Führen Sie im NGINX Plus-Bedienfeld diesen Befehl aus, um von Ihrem lokalen Computer aus auf Sidecar zuzugreifen:

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

Dann gehen wir einfach rein hierher im Browser. Sie können sich auch mit Prometheus verbinden, um die Anwendung zu überwachen schlafen.

Sie können einzelne Kubernetes-Ressourcen verwenden, um Verkehrsrichtlinien wie Zugriffskontrolle, Ratenbegrenzung und Leitungsunterbrechung zu konfigurieren, siehe hierzu Dokumentation

Abschluss

NGINX Service Mesh steht zum kostenlosen Download unter zur Verfügung Portal F5. Probieren Sie es in Ihren Entwicklungs- und Testumgebungen aus und Schreiben Sie uns über die Ergebnisse.

Um den NGINX Plus Ingress Controller auszuprobieren, aktivieren Sie ihn kostenlose Testphase für 30 Tage, oder свяжитесь с нами um Ihre Anwendungsfälle zu besprechen.

Übersetzung von Pavel Demkovich, Unternehmensingenieur Southbridge. Systemadministration für 15 RUB pro Monat. Und als separate Abteilung - ein Schulungszentrum Slurm, üben und nichts als üben.

Source: habr.com

Kommentar hinzufügen