Verwenden Sie Bridge to Kubernetes anhand eines Beispiels

In diesem Beispiel wird veranschaulicht, wie Bridge to Kubernetes verwendet werden kann, um eine Microserviceversion einer einfachen TODO-Anwendung in einem beliebigen Kubernetes-Cluster zu entwickeln. Dieses Beispiel, in dem Visual Studio Code verwendet wird, wurde auf der Basis von Code angepasst, der von TodoMVC bereitgestellt wurde. In diesem Beispiel verwenden wir MiniKube, um die Anwendung zu hosten, aber diese Schritte sollten mit jedem beliebigen Kubernetes-Cluster funktionieren.

Das TODO-Anwendungsbeispiel besteht aus einem Front-End und einem Back-End, das dauerhafte Speicherung bereitstellt. Dieses erweiterte Beispiel fügt eine Statistikkomponente hinzu und teilt die Anwendung in eine Reihe von Microservices auf, insbesondere:

  • Das Front-End ruft die Datenbank-API auf, um TODO-Elemente dauerhaft zu speichern und zu aktualisieren.
  • Der Database-API-Dienst basiert auf einer Mongo-Datenbank, um TODO-Elemente dauerhaft zu speichern.
  • Das Front-End schreibt Hinzufügungs-, Erledigungs- und Löschungsereignisse in eine RabbitMQ-Warteschlange.
  • Ein Statistikworker empfängt Ereignisse aus der RabbitMQ-Warteschlange und aktualisiert einen Redis Cache.
  • Eine Statistik-API macht die zwischengespeicherten Statistiken zur Anzeige im Front-End verfügbar.

Insgesamt besteht diese erweiterte TODO-Anwendung aus sechs zusammenhängenden Komponenten.

Voraussetzungen

  • Ein beliebiger Kubernetes-Cluster oder der ChocolateyPaket-Manager zum Installieren von MiniKube
  • Aktivieren von Hyper-V in Windows 10
  • Installieren und Einrichten von Kubectl unter dem Pfad in einer Befehlszeilenumgebung Ihrer Wahl
  • Verwenden von Bridge to Kubernetes mit der Visual Studio Code-Erweiterung

Install MiniKube

Sie können einen beliebigen Kubernetes-Anbieter mit Bridge to Kubernetes verwenden. In diesem Artikel verwenden wir MiniKube. MiniKube ist ein einfacher Kubernetes-Anbieter, mit dem Sie Kubernetes auf Ihrem lokalen Computer hosten können. Befolgen Sie die Installationsanweisungen, um MiniKube unter Windows 10, Linux oder macOS zu installieren.

Um optimale Ergebnisse bei Windows 10 zu erzielen, sollten Sie den Hyper-V-Manager für virtuelle Computer verwenden und einen virtuellen Switch erstellen.

Starten Sie „MiniKube“ nach der Installation, geben Sie an, dass Hyper-V verwendet werden soll und geben Sie den Namen des primären virtuellen Switches an. Der folgende Befehl muss mit Administratorrechten über eine Eingabeaufforderung ausgeführt werden.

minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"

Bereitstellen der Anwendung

Klonen Sie das mindaro-Repository, und öffnen Sie ein Befehlsfenster mit dem aktuellen Arbeitsordner für samples/todo-app.

Erstellen Sie einen Namespace für das Beispiel.

kubectl create namespace todo-app

Wenden Sie dann das Bereitstellungsmanifest an:

kubectl apply -n todo-app -f deployment.yaml

Dies ist eine einfache Bereitstellung, die das Front-End mithilfe eines Diensts vom Typ LoadBalancer verfügbar macht. Warten Sie, bis alle Pods ausgeführt werden und die externe IP-Adresse des frontend-Diensts verfügbar wird.

Wenn Sie mit MiniKube testen, müssen Sie minikube tunnel zum Auflösen einer externen IP-Adresse verwenden.

kubectl get services -n todo-app

NAME          TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
frontend      LoadBalancer   10.0.49.177    127.0.0.1   80:30145/TCP   18h

Navigieren Sie zu der Anwendung, indem Sie die externe IP-Adresse und den lokalen Port verwenden (die erste Nummer in der Spalte „PORT(S)“).

http://{external-ip}:{local-port}

Testen Sie die laufende App im Browser. Beachten Sie beim Hinzufügen, Erledigen und Löschen von TODO-Elementen, dass die Statistikseite mit den erwarteten Metriken aktualisiert wird.

Debuggen des Dienstes für die API-Statistiken

Sie können nun die Bridge to Kubernetes-Erweiterung verwenden, um zu veranschaulichen, wie der Datenverkehr aus dem Kubernetes-Cluster an eine lokal ausgeführte Version der API-Statistiken umgeleitet werden kann.

cd stats-api/

Öffnen Sie den Quellcode für die API-Statistiken in VS Code.

code .

Nachdem VS Code gestartet wurde, öffnen Sie den Kubernetes-Bereich auf der linken Randleiste von VS Code, und wählen Sie dann den Namespace der TODO-App in Ihrem MiniKube-Cluster aus. Klicken Sie mit der rechten Maustaste auf den Knoten der TODO-App und wählen Sie die Option Namespace verwenden aus.

Auswählen eines Namespace

Installieren Sie Abhängigkeiten, indem Sie npm install in einem Terminalfenster ausführen (STRG + ~).

npm install

Platzieren Sie als Nächstes einen Haltepunkt in der Zeile 17 von server.js.

Öffnen Sie die Befehlspalette (STRG+UMSCHALT+P oder CMD+ -UMSCHALT+P auf einem Mac), und geben Sie Bridge to Kubernetes ein. Wählen Sie die Option Bridge to Kubernetes: Konfigurieren aus.

Konfigurieren Sie einen Befehl in Bridge to Kubernetes

Sie werden aufgefordert, den zu ersetzenden Dienst, den von Ihrem Entwicklungscomputer weiterzuleitenden Port und die zu verwendende Startaufgabe zu konfigurieren.

Wählen Sie den stats-api Dienst aus.

Wählen Sie den Dienst aus, mit dem eine Verbindung hergestellt werden soll

Nach Auswahl Ihres Diensts werden Sie aufgefordert, den TCP-Port für die lokale Anwendung einzugeben. Geben Sie für dieses Beispiel „3001“ ein.

Geben Sie die Portnummer ein

Wählen Sie Skript ausführen: entwickeln als Startaufgabe aus.

Auswählen Die Startaufgabe für den Debugger aus

Sie haben die Möglichkeit, die Aufgabe isoliert oder nicht isoliert auszuführen. Wenn Sie die Aufgabe isoliert ausführen, werden nur Ihre Anforderungen an Ihren lokalen Prozess weitergeleitet. andere Entwickler können den Cluster verwenden, ohne davon betroffen zu sein. Wenn Sie die Aufgabe nicht isoliert ausführen, wird der gesamte Datenverkehr an Ihren lokalen Prozess umgeleitet. Weitere Informationen zu dieser Option finden Sie unter Verwenden von Routingfunktionen für die Entwicklung in einer Isolation. In diesem Beispiel fahren wir mit „nicht isoliert“ fort.

Auswählen der Isolation

Hinweis

Sie werden aufgefordert, die Ausführung von EndpointManager mit erhöhten Rechten zuzulassen und zu erlauben, dass Ihre Hostdatei geändert wird.

Das Bridge to Kubernetes Debuggen-Profil wurde erfolgreich konfiguriert.

Wählen Sie auf der linken Seite das Symbol „Debuggen“ und dann Skript ausführen: entwickeln mit Kubernetes aus. Klicken Sie neben Skript ausführen: entwickeln mit Kubernetes auf die Schaltfläche Start.

Auswählen eines Startprofils zum Debuggen

Ihr Entwicklungscomputer ist verbunden, wenn die VS Code Statusleiste in orange angezeigt wird und die Kubernetes-Erweiterung anzeigt, dass Sie verbunden sind. Sobald Ihr Entwicklungscomputer verbunden ist, wird der Datenverkehr für die API-Statistiken, die Sie ersetzen, an Ihren Entwicklungscomputer umgeleitet.

Debuggen mit Bridge to Kubernetes

Navigieren Sie zum Front-End-Einstiegspunkt Ihrer TODO-App. Wir werden 127.0.0.1 für MiniKube verwenden. Um auf die URL des lokalen Endpunkts für Ihre App zuzugreifen zu können, müssen Sie das Kubernetes-Menü in der Statusleiste öffnen und den Endpunkteintrag auswählen.

Stellen Sie eine Anforderung an die API-Statistiken, indem Sie den Link Statistiken auswählen.

Ausgeführte Website: Wählen Sie den Statuslink aus

Beachten Sie, dass der Datenverkehr, der ursprünglich in Ihrem Cluster gestartet wurde, an Ihre lokal ausgeführte Version (außerhalb des Clusters) umgeleitet wurde, in der der Haltepunkt ausgelöst wurde.

Drücken Sie die Wiedergabetaste und lassen Sie die Anforderung vollständig transparent ablaufen.

Dies ist nur eins der Beispiele für die Verwendung von Bridge to Kubernetes in Nicht-AKS-Clustern. Probieren Sie die Funktion als Nächstes in Ihrem eigenen Projekt aus!

Bereinigung

Führen Sie Folgendes aus, um die in diesem Beispiel erzeugten Ressourcen zu bereinigen:

kubectl delete namespace todo-app

Nächste Schritte

Sie können Ihre App auch mit Bridge to Kubernetes in Azure Kubernetes Service (AKS) bereitstellen. Weitere Informationen dazu finden Sie in der Dokumentation Verwenden von Bridge to Kubernetes mit AKS