GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Was ist Istio? - Architektur, Funktionen, Vorteile und Herausforderungen

Einführung

Das Sichern und Überwachen von Workloads hat bei der Arbeit mit Microservices oberste Priorität. Die Überwachung ist eine schwierige Aufgabe, wenn sie manuell durchgeführt wird. Entwickler müssen jeden Dienst konfigurieren, um eine sichere Kommunikation innerhalb des Systems zu gewährleisten. Außerdem müssen sie den Austausch überwachen, was Zeit kostet. Zeit, die für die Entwicklung der App selbst aufgewendet werden könnte.

Stattdessen gibt es eine viel einfachere Lösung – die Verwendung einer Service-Mesh-Plattform wie Istio .

In diesem Tutorial lernen Sie Istio, seine Architektur und seine Verwendung kennen.

Was ist Istio? – Definieren von Istio Service Mesh

Istio ist eine Open-Source-Service-Mesh-Implementierung, die die Kommunikation und den Datenaustausch zwischen Microservices verwaltet. Die Plattform wurde hinzugefügt, um die Komplexität der Verwaltung von Netzwerkdiensten zu reduzieren.

Nach der Installation fügt es Proxys in einen Kubernetes-Pod neben dem Anwendungscontainer ein. Jeder Proxy ist so konfiguriert, dass er Anforderungen abfängt und Datenverkehr an den entsprechenden Dienst weiterleitet, während Richtlinien angewendet werden.

Warum die Notwendigkeit eines Service Mesh?

Beim Übergang von einer monolithischen zu einer Microservice-Architektur erhalten Entwickler die Möglichkeit, hochflexible, belastbare und skalierbare Anwendungen innerhalb viel schnellerer Softwareentwicklungslebenszyklen zu erstellen. Obwohl die Microservice-Architektur viele Vorteile hat, bringt die Entwicklung in der Anwendungsentwicklung auch gewisse Herausforderungen mit sich.

Da die Architektur aus vielen einzelnen Diensten besteht, die zusammenarbeiten, ist es wichtig, eine nahtlose Kommunikation sicherzustellen. Diese autonomen Komponenten kommunizieren über APIs miteinander. Die Verwaltung des Verkehrsflusses und der API-Aufrufe erfordert jedoch viel Zeit und Mühe vom Entwicklungsteam.

Es bestand Bedarf an einer Drittanbieterlösung, die es den Teammitgliedern ermöglichte, sich auf die Entwicklung der Dienstlogik statt der Netzwerklogik zu konzentrieren. Daher wurden Dienstnetze wie Istio entwickelt, um die Netzwerkschicht der Dienst-zu-Dienst-Kommunikation zu verwalten.

Istio-Architektur

Die Istio-Architektur umfasst zwei Hauptkomponenten:

  • Steuerebene. Diese Komponente wird zum Konfigurieren und Verwalten von Proxys auf der Datenebene verwendet.
  • Datenebene. Das zweite Element von Istio enthält alle Sidecar-Proxys, die in die Pods eingefügt werden.

Kontrollebene

Vor Version 1.5 war die Steuerebene eine Ansammlung verschiedener Komponenten – Pilot, Zitadelle und Galeere. Istio 1.5 führte Istiod ein , eine Steuerungsebene, die die oben genannten Komponenten zu einer kombiniert. Istiod vereinfachte Konfiguration und Betrieb des Service Mesh.

Istio-Dienste auf der Steuerungsebene umfassen:

  • Pilot verwendet die Envoy-API, um mit Envoy-Sidecars zu kommunizieren. Es ist für die Verkehrsverwaltung, das Routing und die Diensterkennung verantwortlich.
  • Zitadelle bietet eine sichere Kommunikation zwischen Diensten durch die Verwaltung von Benutzerauthentifizierung, Zertifikat und Anmeldeinformationen.
  • Galeere ist verantwortlich für die Konfigurationsverwaltung, Aufnahme, Verteilung und Verarbeitung.

Datenebene

Die Datenebene besteht aus Envoy Proxys als Beiwagen in die Pods eingesetzt. Sie interagieren mit und verwalten den Datenverkehr für alle Dienste innerhalb des Systems. Dazu gehört die Steuerung der gesamten Netzwerkkommunikation zwischen Microservices.

Da sie als Sidecars hinzugefügt werden, muss die Architektur der Anwendung nicht neu gestaltet werden, um die Proxys zu implementieren.

Die Proxys steuern den Datenverkehr, indem sie Routingregeln (für HTTP, gRPC, TCP) festlegen und TLS und Datenverkehrsverschlüsselung erzwingen.

Der gesamte Datenverkehr läuft über die Envoy-Proxys. Daher sammeln diese Komponenten große Datenmengen und liefern wertvolle Einblicke in Ihren Geschäftsverkehr.

Envoy-Proxys bieten:

  • Dynamische Diensterkennung
  • Lastenausgleich
  • Gesundheitsprüfungen
  • TLS-Beendigung
  • HTTP/2- und gRPC-Proxys
  • Leistungsschalter
  • Gestaffelte Rollouts mit prozentualer Traffic-Aufteilung
  • Fehlerinjektion
  • Reichhaltige Messwerte

Istio-Funktionen

Die wichtigsten Funktionen der Plattform sind:

1. Verkehrskontrolle
Das Hauptmerkmal von Istio ist seine Rolle beim Verkehrsmanagement. Es steuert den Verkehrsfluss zwischen Diensten, indem es Routing-Regeln über seine Envoy-Proxys implementiert. Durch die Bereitstellung von Proxys leitet Istio Datenverkehr und API-Aufrufe weiter, ohne Änderungen am Dienst selbst vorzunehmen. Dadurch können Benutzer Canary-Rollouts, gestaffelte Rollouts und A/B-Tests durchführen.

2. Beobachtbarkeit
Die Plattform steuert und überwacht den gesamten ein- und ausgehenden Datenverkehr innerhalb der Netzwerkschicht. Daher werden große Datenmengen gesammelt, die nützliche Erkenntnisse für die zukünftige Entwicklung liefern.

3. Sicherheit
Während Entwickler die Anwendung vor potenziellen Bedrohungen und Hacks schützen, autorisiert, authentifiziert und verschlüsselt Istio die gesamte interne Kommunikation. Pods und Dienste kommunizieren miteinander und übertragen Daten gemäß den Richtlinien von Istio.

Vor- und Nachteile von Istio

Um Ihnen bei der Entscheidung zu helfen, Istio in die Microservice-Architektur zu implementieren oder nicht, werfen Sie einen Blick auf einige der Vor- und Nachteile.

Vorteile

  • Gibt Einblick in Netzwerkleistungsprobleme.
  • Sichere Service-zu-Service- und Pod-zu-Pod-Kommunikation.
  • Implementiert Routing-Regeln und -Richtlinien, die Kommunikation und Datenübertragung verwalten.
  • Ermöglicht Canary-Bereitstellungen und A/B-Tests.

Nachteile

  • Istio ist zeitaufwändig einzurichten und zu implementieren.
  • Außerdem ist es schwierig, die .yaml-Dateien zu konfigurieren, um die richtige Einrichtung und verschlüsselte Kommunikation sicherzustellen.

Cent OS
  1. Was ist Docker (und Linux-Container?)

  2. Welche Funktionen sind in Zsh und fehlen in Bash oder umgekehrt?

  3. Welche Vorteile sehe ich bei einem Upgrade von 14.04 auf 15.04 und was sind einige Vorbehalte?

  4. Warum Deis und was ist das?

  5. Was sind SELinux-Modi und wie werden sie eingestellt?

Funktionen und Veröffentlichungsdatum von Ubuntu 22.04

Neue Funktionen in Fedora 25 Workstation

Veröffentlichungsdatum und Funktionen von Ubuntu 17.04

Ubuntu 18.10 veröffentlicht, Funktionen und mehr

Was ist Automatisierungs- und Konfigurationsmanagement mit CHEF – Teil 1

Was ist EasyApache und wie verwende ich es?