Verwenden von Bridge to Kubernetes mit AKS
Hinweis
Microsoft plant, die Brücke zum Kubernetes-Projekt nicht mehr aktiv aufrechtzuerhalten. In den nächsten Monaten werden wir das Projekt in einen Archivierungszustand umstellen. In der Zwischenzeit steht das Projekt weiterhin zum Verwenden und Herunterladen zur Verfügung. In diesem Zeitraum hoffen wir, Community-Projekte zu erkunden und zu empfehlen, die ähnliche Vorteile wie Bridge to Kubernetes für Ihre zukünftige Nutzung bieten. Wenn Sie Fragen haben, wenden Sie sich bitte an uns in unserem Issues-Board auf GitHub.
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
- Ein Azure-Abonnement. Falls Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.
- Die Azure CLI muss installiert sein.
- Ausführen von Visual Studio Code unter macOS, Windows 10 oder Linux.
- 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 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.
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.
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.
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.
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 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.
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.
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.
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.
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.