Freigeben über


Verwenden von Bridge to Kubernetes mit AKS

In diesem Tutorial verwenden Sie eine bestimmte AKS-Beispiel-Microservices-Web-App, um zu erfahren, wie Sie Bridge to Kubernetes zum lokalen Debuggen in einem einzelnen Pod verwenden, der Teil eines Azure Kubernetes Service-Clusters (AKS) ist.

Voraussetzungen

In dieser Anleitung wird die Beispiel-App „todo-app“ verwendet, um zu veranschaulichen, wie Sie Ihren Entwicklungscomputer mit einem in AKS ausgeführten Kubernetes-Cluster verbinden. Wenn Sie bereits über eine eigene Anwendung verfügen, die in einem Kubernetes-Cluster ausgeführt wird, finden Sie weitere Informationen unter 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 werden eine Ressourcengruppe mit dem Namen MyResourceGroup und ein AKS-Cluster mit dem Namen 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

Laden Sie den Code herunterladen, und installieren Sie die Abhängigkeiten.

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

Verbindungsherstellung mit dem Cluster und Bereitstellen der App

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 den folgenden Befehl im selben Terminal wie zuvor aus, und kopieren Sie die IP-Adresse für den Front-End-Dienst aus der Spalte „External IP“.

kubectl get services

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

Debuggen des stats-api-Diensts

Geben Sie den folgenden Befehl im selben Terminal wie zuvor 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.

Vergewissern Sie sich dann, dass der Namespace todo-app im Cluster MyAKS als Standard festgelegt ist (erkennbar am * vor dem Namen). 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: Bridge to 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 Option Bridge to Kubernetes: Konfigurierenaus.

Screenshot: Befehlsfenster „Bridge to Kubernetes: Konfigurieren“

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.

Screenshot: Fenster zur Auswahl des Diensts, mit dem eine Verbindung hergestellt werden soll

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 für dieses Beispiel „3001“ ein.

Screenshot: Fenster zur Eingabe der Portnummer

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

Screenshot: Fenster zur Auswahl des Starttasks für den Debugger

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 der nicht isolierten Ausführung fort. Wenn Sie die isolierte Ausführung ausgewählt haben, besitzt „task.json“ ein Präfix, das Sie verwenden sollten, um Anforderungen an Ihren Computer zu leiten.

Screenshot: Fenster zur Auswahl der Isolationsoption

Hinweis

Bei nachfolgenden Starts können Sie einfach auf das Debugsymbol klicken, ohne dieses Setup zu durchlaufen und aufgefordert zu werden, den Dienstnamen, den Port, den Starttask oder die Isolation anzugeben. Diese Werte werden in .vscode/tasks.json gespeichert. Sie können diese Einstellungen später zu ä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 Bridge to Kubernetes Debuggen-Profil wurde erfolgreich konfiguriert.

Wählen Sie auf der linken Seite das Debugsymbol und dann Skript ausführen: Entwickeln mit Kubernetes aus, um das Debuggen zu starten. Klicken Sie neben Skript ausführen: entwickeln mit Kubernetes auf die Schaltfläche Start.

Screenshot: Fenster zur Auswahl eines Startprofils zum Debuggen

Hinweis

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 VS Code-Statusleiste in orange dargestellt wird und die Kubernetes-Erweiterung anzeigt, 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: Fenster zur Auswahl des Debuggens mit Bridge to Kubernetes

Navigieren Sie zum Frontend-Einstiegspunkt Ihrer Anwendung über die externe IP, die Sie zuvor gefunden haben, {your external IP from get services command}.nip.io. Beachten Sie, dass Sie, 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 API-Statistiken, 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.

Bereinigen

Wenn Sie den Debugger beenden, werden alle Änderungen am Cluster rückgängig gemacht. 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 aktiviert lassen oder mit dem folgenden Befehl löschen.

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

Nächste Schritte

Weitere Informationen zu Bridge to Kubernetes finden Sie unter Funktionsweise von Bridge to Kubernetes.