Backyards - ein automatisiertes Service-Mesh auf einer Multi-Cloud- und Hybrid-Infrastruktur



Testen Sie Backyards auf Ihren eigenen Clustern: curl https://getbackyards.sh | sh && backyards install -a --run-demo curl https://getbackyards.sh | sh && backyards install -a --run-demo . Bei Interesse lesen Sie die Details der neuesten Version .

Im Juni führten wir Backyards ein , ein automatisiertes „Service-Mesh“ über unserem Istio-Betreiber . Es vereinfacht das Service-Mesh-Management in einer Multi-Cloud- und Hybrid-Infrastruktur erheblich. Backyards ist in die Pipeline- Container-Management-Plattform in der Banzai Cloud integriert, ist jedoch auch als eigenständiges Produkt erhältlich. Natürlich bietet die Integration mit Pipeline viele spezifische Vorteile (wie das Verwalten von Anwendungen in mehreren Clouds ), aber Backyards funktioniert auf jeder Kubernetes-Installation.

In der Ankündigung von Backyards haben wir einige der Hauptfunktionen besprochen: Erstellen eines Servicegitters mit wenigen Klicks, Überwachen von Anwendungen über eine einzigartige grafische Darstellung und Verwalten von Istio-Funktionen über eine komfortable Benutzeroberfläche. Dann erwähnten wir, dass die Plattform in der Lage ist, Istio-Multi-Cluster-Service-Netzwerke in Multi-Cloud- und Hybrid-Bereitstellungen zu verwalten.

In diesem Artikel werden wir uns dieses Feature genauer ansehen - das automatisierte Multi-Cluster-Service-Mesh .

Egal, ob es sich um einen oder mehrere Cluster, eine Multi-Cloud- oder Hybridumgebung handelt, Backyards verwendet dieselben Funktionen und eine praktische Benutzeroberfläche. Es ist extrem einfach, mit einem Cluster zu beginnen und dann mit wenigen Klicks das Servicenetz auf andere Cluster (Multi-Cloud oder Hybrid-Cloud) auszudehnen.

Motivation


Hybrid- und Multi-Cloud-Systeme tauchen schnell in den Unternehmensalltag ein. Das Interesse und die Entscheidungsfindung sind stark gewachsen, seit Google Anthos im April dieses Jahres eingeführt hat.

Auch bei den meisten Unternehmen, mit denen wir dieses Thema diskutiert haben, ist ein Anstieg des Interesses zu beobachten. Jemand verarbeitet Daten lieber in seinen eigenen Rechenzentren und greift nur zu Spitzenlastzeiten auf Cloud-Dienste zu. Andere suchen ständig nach den niedrigsten Tarifen und besten Angeboten von Cloud-Anbietern und erhöhen die Arbeitslast nur, wenn der Preis dies zulässt. Sie alle benötigen eine bequeme Möglichkeit, auf Anforderung eines bestimmten Kunden aufgrund gesetzlicher Vorschriften oder geschäftlicher Anforderungen zwischen verschiedenen Clouds zu wechseln und mehrere verschiedene Topologien auf dieser Multi-Cloud- und Hybridinfrastruktur aufzubauen.

Als die Nachfrage nach Hybrid- und Multi-Cluster-Lösungen zunahm, begannen wir zu überlegen, wie wir die Bedürfnisse unserer Kunden befriedigen können.

Pipeline-Benutzer arbeiten mit einer oder mehreren Clouds. Es kommt darauf an, welche spezifischen Funktionen sie benötigen. Drei Schlüsselfunktionen können unterschieden werden:


Hintergrund


Von Anfang an unterstützte die Pipeline-Plattform die Verbindung verschiedener Cloud-Anbieter auf verschiedenen Ebenen (Cluster, Bereitstellungen und Dienste). Dies war schon immer eine unserer Prioritäten.

Gleichzeitig haben wir aktiv an Istio gearbeitet. Der Betreiber wurde zuerst freigegeben, um die Bereitstellung und Verwaltung von Istio zu vereinfachen, und erkundete dann seine Multi-Cluster-Funktionen. Als Ergebnis haben wir mit dem Open-Source-Betreiber Istio Backyards entwickelt, ein automatisiertes Produkt für Multi-Cloud- und Hybrid-Infrastrukturen , das in Pipeline integriert ist.

Hinterhöfe bei Pipeline


In Pipeline können Sie ein hybrides oder Multi-Cluster-Service-Mesh installieren und in einer lokalen Umgebung oder in einer beliebigen Kombination der fünf von uns unterstützten Cloud-Anbieter verwalten.

Mit der Funktion zum Gruppieren von Clustern (Clustergruppe) können Sie Clustergruppen bilden, vorausgesetzt, Sie wählen einen Cluster als Hauptcluster aus. Sie können sie dann mit verschiedenen Funktionen verknüpfen, z. B. mit Multi-cluster Deployment Service Mesh Multi-cluster Deployment oder mit Service Mesh .

Multi-cluster Deployment der Bereitstellung mehrerer Cluster können Sie die Anwendung gleichzeitig auf mehreren Clustern bereitstellen. Hier konzentrieren wir uns nicht auf diese Funktion, sie wird jedoch verwendet, um die Anwendung auf einfache Weise auf mehreren Clustern bereitzustellen. Lesen Sie mehr darüber in diesem Artikel .

In diesem Artikel wird die Funktion " Service Mesh näher Service Mesh . Es installiert Istio auf dem Hauptcluster und verbindet automatisch alle Cluster in der Gruppe mithilfe des Istio-Operators . Danach erhalten Sie eine Intercluster-Ansicht Ihrer Services, und ein Multicluster-Netz unterscheidet sich aus Sicht des Managements praktisch nicht von einem herkömmlichen Einzelcluster-Netz.

Funktionen


Erstellen eines Servicenetzes


Beginnen wir mit der Erstellung eines Clusters auf AWS mithilfe der leichten und CNCF-zertifizierten Kubernetes-Distribution PKE . Erstellen Sie dann ein Service-Mesh-Istio auf diesem Cluster.

Beim Anlegen eines Servicenetzes wird im Hintergrund auch eine Clustergruppe gebildet.

Nach wenigen Sekunden ist das "Gitter" installiert und einsatzbereit.



Anwendungsbereitstellung


Jetzt brauchen wir eine Demo-Anwendung mit Microservices, um die Fähigkeiten unseres Produkts zu demonstrieren. Zu Demonstrationszwecken haben wir ein sehr einfaches AllSpark- Projekt erstellt und ein Helm-Diagramm mit einer vorläufigen Konfiguration des AllSpark-Einsatzes erstellt, das ein Kinokarten-Reservierungssystem simuliert. Alles wird in unserem Cloud-Service (SaaS) für Helm-Diagramme erledigt.

Mit der oben genannten Funktion zur Bereitstellung Multi Cluster Deployments wir diese Anwendung bereit, indem Sie auf der Benutzeroberfläche auf die Registerkarte " Multi Cluster Deployments mehrerer Multi Cluster Deployments . Fügen Sie der Pipeline das Repository https://charts.banzaicloud.io/gh/spotguidetest , dann das meshdemo Diagramm und klicken Sie auf DEPLOY (um alle Komponenten zu installieren, stellen Sie sicher, dass alle Werte auf true ).



Es war möglich, eine einfache Bereitstellung für einen Cluster zu wählen, aber wir haben eine Multicluster-Option angegeben, die sich später bei der Arbeit mit mehreren Clustern als nützlich erweisen wird.

Service Mesh Übersicht


Wenn Sie zur Netzliste zurückkehren und auf die observe klicken, wird eine Systemsteuerung angezeigt. Da in unserer Testanwendung kein Datenverkehr vorhanden ist und keine Metriken im System vorhanden sind, wird hier noch keine Visualisierung angezeigt. Die Schnittstelle verfügt über eine test flight , die den Datenverkehr zu ausgewählten Endpunkten weiterleitet. Wenn Sie oben rechts auf die Schaltfläche HTTP klicken, können Sie ein Formular mit Informationen zum Endpunkt ausfüllen und Testdaten an Ihre Dienste senden. In unserem Beispiel sollte der Datenverkehr an den Frontpage-Dienst auf Port 8080 geleitet werden.

Nach einigen Sekunden wird ein Zeitplan Ihrer Dienste angezeigt. Die Knoten darauf repräsentieren Dienste oder Workloads, und die Pfeile repräsentieren Netzwerkverbindungen zwischen verschiedenen Diensten. Die Grafik basiert auf Istio-Metriken, die von Prometheus stammen.



Erstellen Sie zusätzliche Cluster


Die Ausweitung des Service-Netzes auf zusätzliche Cluster - auch von mehreren verschiedenen Cloud-Anbietern - ist mit wenigen Klicks erledigt. Erstellen wir drei zusätzliche Cluster bei drei verschiedenen Anbietern. Das ist interessanter. Wir können problemlos einen anderen PKE-Cluster in Azure sowie OKE- und GKE-Cluster bereitstellen.



Service Mesh Erweiterung


RESIZE MESH zur RESIZE MESH der Dienste zurück, drücken Sie die Taste RESIZE MESH und dann ADD NEW CLUSTER RESIZE MESH . Wählen Sie die zuvor erstellten Cluster aus und ADD Schaltfläche ADD . Das ist alles.



Die Erweiterung kann einige Minuten dauern: Jeder Cluster muss eine Verbindung herstellen und den HEALTHY erreichen.

Bereitstellen einer Anwendung in mehreren Clustern


Jetzt haben wir ein Servicegitter für mehrere Cluster und die Funktion zur Bereitstellung mehrerer Cluster in der Pipeline war zuvor aktiviert, sodass es einfach ist, unsere Demo-Microservices auf diesen Clustern bereitzustellen. In diesem speziellen Helm-Diagramm können Sie Komponenten einfach ein- und ausschalten. Da die Funktion zur Multi-cluster Deployment die Neudefinition von Parametern für jeden Cluster unterstützt, müssen Sie nur die Bereitstellung bearbeiten und festlegen, welche Komponenten in welchem ​​Cluster ausgeführt werden sollen.

Bei der Bereitstellung mit mehreren Clustern haben wir die Einstellungen folgendermaßen geändert:

PKE AWS

services: true
istioresources: true
frontpage: true
catalog: true
bookings: true

PKE Azure

services: true
moviesv1: true
moviesv2: true
moviesv3: true

OKE

services: true
payments: true
notifications: true

GKE

services: true
analytics: true




Übersicht über das Servicenetz in mehreren Clustern


Wählen Sie erneut test flight in der Benutzeroberfläche aus, um zusätzlichen Datenverkehr zum zuvor ausgewählten Endpunkt zu leiten. Nach ein paar Sekunden wird etwas angezeigt, das der folgenden Grafik ähnelt. Jetzt ist unsere Anwendung auf vier Cluster bei vier verschiedenen Anbietern verteilt.

Erstaunlich , oder?



NRA-Konfiguration


Sehen Sie sich die letzte Einstellung an, bevor Sie diesen Artikel beenden: Horizontal Pod Autoscaler . Auf der Seite Single-cluster Deployment in Pipeline können Sie HPA einfach für jede Bereitstellung konfigurieren (in unserem Fall analytics-v1 ).



Wenn Sie HPA installieren und genügend Datenverkehr an Ihre Services senden, um die automatische Skalierung zu starten, werden in der Benutzeroberfläche immer mehr Pods angezeigt, die dem analytics-v1 Projekt entsprechen. Sie werden auch einen Anstieg des Abfragestroms entlang der Kanten des Diagramms feststellen, der sich in den Zahlen und in der Dicke der Kanten widerspiegelt.



Zusammenfassung


Dank Backyards at Pipeline ist es einfach, ein Hybrid- oder Multi-Cluster-Service-Mesh einzurichten. Sie können dann Anwendungen in mehreren Clustern mithilfe einer praktischen Benutzeroberfläche bereitstellen, verfolgen, verwalten und Fehler beheben.

Probieren Sie es kostenlos aus !

Source: https://habr.com/ru/post/de479742/


All Articles