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
- Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement haben, können Sie ein kostenloses Kontoerstellen.
- Azure CLI installiert.
- Visual Studio Code unter macOS, Windows 10 oder Linux ausgeführt.
- Die in Visual Studio Code installierteBridge to Kubernetes-Erweiterung.
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 MyAKS
erstellt.
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-credentials
eine 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.
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.
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.
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.
Wählen Sie Skript ausführen: entwickeln als Startaufgabe aus.
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.
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.json
gespeichert. 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.
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.
Navigieren Sie über die zuvor gefundene externe IP {your external IP from get services command}.nip.io
zum 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.io
verwenden.
Stellen Sie eine Anforderung an die Stats-API vor, indem Sie den Link Statistiken auswählen.
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.