Freigeben über


Verwenden von Bridge to Kubernetes mit AKS

Anmerkung

Die "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 Lernprogramm verwenden Sie eine bestimmte AKS-Beispiel-Microservices-Web-App, um zu erfahren, wie Sie Bridge to Kubernetes verwenden, um lokal in einem einzelnen Pod zu debuggen, der Teil eines Azure Kubernetes Service (AKS)-Clusters ist.

Bevor Sie beginnen

In diesem Leitfaden wird die Todo-App-Beispielanwendung verwendet, um das Verbinden Ihres Entwicklungscomputers mit einem Kubernetes-Cluster zu veranschaulichen, der in AKS ausgeführt wird. Wenn Sie bereits über eine eigene Anwendung verfügen, die auf einem Kubernetes-Cluster ausgeführt wird, lesen Sie Entwickeln mit Kubernetes. Wenn Sie einen anderen Cluster verwenden, z. B. MiniKube, der lokal ausgeführt wird, finden Sie weitere Informationen unter Verwenden Bridge to Kubernetes anhand eines Beispiels.

Voraussetzungen

Erstellen eines Kubernetes-Clusters

Erstellen Sie einen AKS-Cluster in einer unterstützten Region. Mit den folgenden Befehlen wird eine Ressourcengruppe namens MyResourceGroup und ein AKS-Cluster namens MyAKSerstellt.

az group create \
    --name MyResourceGroup \
        --location eastus
az aks create \
    --resource-group MyResourceGroup \
    --name MyAKS \
    --location eastus \
    --node-count 3 \
    --generate-ssh-keys

Installieren der Beispielanwendung

Herunterladen des Codes und Installieren von Abhängigkeiten

git clone https://github.com/hsubramanianaks/b2k-samples
cd b2k-samples/todo-app
npm install stats-api\

Stellen Sie eine Verbindung mit Ihrem Cluster her, und stellen Sie die App bereit.

Laden Sie auf Ihrem Entwicklungscomputer die Kubernetes CLI herunter, und konfigurieren Sie sie, um mithilfe von az aks get-credentialseine Verbindung mit Ihrem Kubernetes-Cluster herzustellen.

az aks get-credentials --resource-group MyResourceGroup --name MyAKS
kubectl create namespace todo-app
kubectl config set-context --current --namespace=todo-app
kubectl apply -f deployment.yaml --namespace todo-app

Testen der App

Führen Sie auf demselben Terminal, das Sie zuvor verwendet haben, den folgenden Befehl aus, und kopieren Sie die IP für den Front-End-Dienst unter der Spalte "Externe IP".

kubectl get services

Um die App auszuprobieren, öffnen Sie die URL: {your external IP from above command goes here}.nip.io

Debuggen des Statistiken-API-Dienstes

Geben Sie auf demselben Terminal, das Sie zuvor verwendet haben, den folgenden Befehl ein, um die Stats-API in VS Code zu öffnen.

code ./stats-api

Fügen Sie zuerst einen Breakpoint in Zeile 17 von server.js ein.

Stellen Sie dann sicher, dass der todo-app Namespace im MyAKS Cluster als Standard festgelegt ist (wenn er * daneben hat). Wenn er nicht als Standard festgelegt ist, klicken Sie mit der rechten Maustaste auf den Knoten todo-app, und wählen Sie Namespace verwenden aus.

Screenshot der Brücke zu Kubernetes-Namespace.

Konfigurieren Sie als Nächstes Bridge: Öffnen Sie die Befehlspalette(STRG+UMSCHALT+P oder BEFEHL+UMSCHALT+P auf einem Mac), und geben Sie Bridge to Kubernetes ein. Wählen Sie die -Brücke zu Kubernetes aus: Option konfigurieren.

Screenshot mit dem Befehlsfenster

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.

Screenshot, der das Fenster zum Auswählen des Dienstes für die Verbindung zeigt

Wichtig

Sie können nur Dienste umleiten, die über einen einzelnen Pod verfügen.

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.

Screenshot mit dem Fenster

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

Screenshot des Auswahlfensters für die Debugger-Startaufgabe.

Sie haben die Möglichkeit, die Aufgabe isoliert oder nicht isoliert auszuführen. 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 im Isolationsmodus laufen, wird der gesamte Datenverkehr an Ihren lokalen Prozess umgeleitet. Weitere Informationen zu dieser Option finden Sie unter Verwenden von Routing-Möglichkeiten für die Entwicklung in Isolation. In diesem Beispiel fahren wir mit der nicht isolierten Ausführung fort. Wenn Sie die Isolierung ausgewählt haben, weist task.json das Präfix auf, das Sie zum Weiterleiten der Anforderung an Ihren Computer verwenden sollten.

Screenshot mit dem Fenster

Anmerkung

Bei nachfolgenden Starts klicken Sie einfach auf das Debugsymbol, ohne diese Einstellungen erneut vornehmen zu müssen oder nach dem Dienstnamen, dem Port, dem Startvorgang oder der Ausführung im isolierten Modus gefragt zu werden. Diese Werte werden in .vscode/tasks.jsongespeichert. Sie können diese Einstellungen später ändern. Dazu öffnen Sie die Befehlspalette (STRG+UMSCHALT+P oder CMD+UMSCHALT+P auf einem Mac) und führen Sie den Befehl Bridge to Kubernetes: Konfigurieren aus.

Das Debugprofil "Brücke zu Kubernetes" wurde erfolgreich konfiguriert.

Um mit dem Debuggen zu beginnen, wählen Sie auf der linken Seite das Debugsymbol aus und wählen Sie Skript ausführen: dev mit Kubernetesaus. Klicken Sie neben Skript ausführen: entwickeln mit Kubernetes auf die Schaltfläche Start.

Screenshot: Fenster zur Auswahl eines Startprofils zum Debuggen

Anmerkung

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

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.

Screenshot, der das Fenster

Navigieren Sie über die zuvor gefundene externe IP {your external IP from get services command}.nip.iozum Front-End-Einstiegspunkt Ihrer Anwendung. Wenn Sie den Isolationsmodus ausgewählt haben, müssen Sie {your prefix - can be found in task.json}.{your external IP from get services command}.nip.ioverwenden.

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

Screenshot: Hervorgehobener Link „stats“ auf der ausgeführten Website

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.

Aufräumen

Wenn Sie den Debugger beenden, werden alle Änderungen am Cluster wiederhergestellt. Bei einer Ausführung mit Isolation bleibt der Routing-Manager-Pod bestehen, um den Start des Debuggers beim nächsten Mal zu beschleunigen.

Sie können Ihren AKS-Cluster für zukünftiges Debuggen aktivieren oder mit dem folgenden Befehl löschen.

az aks delete --name MyAKS --resource-group MyResourceGroup

Nächste Schritte

Erfahren Sie mehr über Bridge to Kubernetes unter Wie Bridge to Kubernetes funktioniert.