Freigeben über


Verwenden von Bridge to Kubernetes mit einem Beispiel

Anmerkung

"Bridge to Kubernetes wird am 30. April 2025 eingestellt." Ausführliche Informationen zur Außerbetriebnahme und den Open-Source-Alternativen finden Sie im GitHub-Problem.

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

Das TODO-Anwendungsbeispiel besteht aus einem Frontend und einem Back-End, das beständigen Speicher bereitstellt. In diesem erweiterten Beispiel wird eine Statistikkomponente hinzugefügt und die Anwendung in eine Reihe von Microservices unterteilt, insbesondere:

  • Das Frontend ruft die Datenbank-API auf, um TODO-Elemente beizubehalten und zu aktualisieren;
  • Der Datenbank-API-Dienst basiert auf einer Mongo-Datenbank, um TODO-Elemente beizubehalten;
  • Das Front-End schreibt Hinzufügungs-, Erledigungs- und Löschungsereignisse in eine RabbitMQ-Warteschlange.
  • Ein Statistikmitarbeiter empfängt Ereignisse aus der RabbitMQ-Warteschlange und aktualisiert einen Redis-Cache;
  • Eine Statistik-API stellt die zwischengespeicherten Statistiken zur Verfügung, damit das Frontend sie anzeigen kann.

Insgesamt besteht diese erweiterte TODO-Anwendung aus sechs miteinander verbundenen Komponenten.

Voraussetzungen

  • Ein beliebiger Kubernetes-Cluster oder der Chocolatey Paket-Manager zur Installation von MiniKube
  • Aktivieren von Hyper-V in Windows 10
  • Installieren und Einrichten von Kubectl unter dem Pfad in einer Befehlszeilenumgebung Ihrer Wahl
  • Bridge zu Kubernetes Visual Studio Code-Erweiterung

MiniKube installieren

Sie können jeden 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.

Für optimale Ergebnisse unter Windows 10 sollten Sie den Hyper-V VM-Manager verwenden und einen virtuellen Switcherstellen.

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

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

Bereitstellen der Anwendung

Klonen Sie das Bridge to Kubernetes-Repository, und öffnen Sie ein Befehlsfenster mit dem aktuellen Arbeitsordner für 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 Frontend mithilfe eines Diensts vom Typ LoadBalancerverfügbar macht. Warten Sie, bis alle Pods ausgeführt werden und bis die externe IP-Adresse des frontend-Diensts verfügbar ist.

Wenn Sie mit MiniKube testen, müssen Sie minikube tunnel verwenden, um eine externe IP aufzulösen.

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 zur Anwendung mithilfe der externen IP und des lokalen Ports (die erste Nummer in der Spalte PORT(S)).

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

Testen Sie die ausgeführte 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 Stats-API-Diensts

Sie können nun die Brücke zu Kubernetes-Erweiterung verwenden, um zu veranschaulichen, wie der Datenverkehr aus dem Kubernetes-Cluster zu einer lokal ausgeführten Version der Stats-API umgeleitet werden kann.

cd stats-api/

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

code .

Nachdem VS Code gestartet wurde, öffnen Sie den Kubernetes-Bereich über die linke Randleiste von VS Code, und wählen Sie dann den todo-app- Namespace 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.

Namespace auswählen

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

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 -Brücke zu Kubernetes aus: Option konfigurieren.

Brücke zu Kubernetes: Befehl konfigurieren

Sie werden aufgefordert, den dienst zu konfigurieren, den Sie ersetzen möchten, den Port, der vom Entwicklungscomputer weitergeleitet werden soll, und die startaufgabe, die Sie verwenden möchten.

Wählen Sie den stats-api Dienst aus.

Wählen Sie den Dienst aus, um eine Verbindung mit herzustellen.

Nachdem Sie Ihren Dienst ausgewählt haben, werden Sie aufgefordert, den TCP-Port für Ihre lokale Anwendung einzugeben. Geben Sie in diesem Beispiel "3001" ein.

Geben Sie die Portnummer

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

Auswählen der Startaufgabe für den Debugger

Sie haben die Möglichkeit, isoliert oder nicht isoliert zu arbeiten. Wenn Sie isoliert ausgeführt werden, werden nur Ihre Anforderungen an Ihren lokalen Prozess weitergeleitet. andere Entwickler können den Cluster verwenden, ohne betroffen zu sein. Wenn Sie nicht in einer isolierten Umgebung laufen, 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 Isolation. Verwenden wir in diesem Beispiel nicht isolierte Daten.

Isolierung auswählen

Anmerkung

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

Das Debugprofil "Brücke zu Kubernetes" 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 des Debugstartprofils

Ihr Entwicklungscomputer ist verbunden, wenn die Statusleiste von VS Code orange wird und die Kubernetes-Erweiterung zeigt, dass Sie verbunden sind. Sobald Ihr Entwicklungscomputer verbunden ist, wird der Datenverkehr für die stats-api, die Sie ersetzen, an Ihren Entwicklungscomputer umgeleitet.

Debuggen mit Brücke zu Kubernetes

Navigieren Sie zum Front-End-Einstiegspunkt Ihrer Todo-App. Für minikube verwenden wir 127.0.0.1. Um auf die lokale Endpunkt-URL für Ihre App zuzugreifen, öffnen Sie das Kubernetes-Menü auf der Statusleiste, und wählen Sie den Endpunkteintrag aus.

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

Ausführen der Website – Wählen Sie den Statuslink

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.

Dieses Beispiel ist nur eine Abbildung der Verwendung von Bridge to Kubernetes auf Nicht-AKS-Clustern. Probieren Sie es als Nächstes an Ihrem eigenen Projekt aus!

Aufräumen

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 Service (AKS) in Azure Kubernetes bereitstellen. Weitere Informationen dazu finden Sie in der Dokumentation Verwenden von Bridge to Kubernetes mit AKS