Wir freuen uns, Ihnen eine Vorschauversion präsentieren zu können
NSM ist kostenlos
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).
$ 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
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
Sie können einzelne Kubernetes-Ressourcen verwenden, um Verkehrsrichtlinien wie Zugriffskontrolle, Ratenbegrenzung und Leitungsunterbrechung zu konfigurieren, siehe hierzu
Abschluss
NGINX Service Mesh steht zum kostenlosen Download unter zur Verfügung
Um den NGINX Plus Ingress Controller auszuprobieren, aktivieren Sie ihn
Übersetzung von Pavel Demkovich, Unternehmensingenieur
Source: habr.com