Bridge to Kubernetes gebruiken met een voorbeeld
Notitie
Bridge to Kubernetes wordt op 30 april 2025 buiten gebruik gesteld. Zie de GitHub-probleemvoor meer informatie over de buitengebruikstelling en opensource-alternatieven.
In dit voorbeeld ziet u hoe Bridge to Kubernetes kan worden gebruikt voor het ontwikkelen van een microserviceversie van een eenvoudige TODO-toepassing op elk Kubernetes-cluster. Dit voorbeeld, met Visual Studio Code, is aangepast op basis van code die is geleverd door TodoMVC-. In dit voorbeeld gebruiken we MiniKube om de toepassing te hosten, maar deze stappen moeten met elk Kubernetes-cluster werken.
Het todo-toepassingsvoorbeeld bestaat uit een front-end en een back-end die permanente opslag biedt. In dit uitgebreide voorbeeld wordt een statistische component toegevoegd en wordt de toepassing opgesplitst in een aantal microservices, met name:
- De front-end roept de database-API aan om TODO-items te behouden en bij te werken;
- De database-API-service is afhankelijk van een Mongo-database om TODO-items te behouden;
- De front-end schrijft gebeurtenissen toe, voltooit en verwijdert gebeurtenissen aan een RabbitMQ-wachtrij;
- Een statistiekenmedewerker ontvangt gebeurtenissen uit de RabbitMQ-wachtrij en werkt een Redis-cache bij;
- Een statistieken-API toont de statistieken in de cache voor de front-end om weer te geven.
In totaal bestaat deze uitgebreide TODO-toepassing uit zes onderling gerelateerde onderdelen.
Voorwaarden
- Een Kubernetes-cluster of Chocolatey pakketbeheerder om MiniKube te installeren
- Op Windows 10 Hyper-V
- Kubectl geïnstalleerd en beschikbaar in de 'path' in een command-line interface naar keuze
- Bridge to Kubernetes Visual Studio Code-extensie
MiniKube installeren
U kunt elke Kubernetes-provider met Bridge naar Kubernetes gebruiken. In dit artikel gebruiken we MiniKube. MiniKube is een lichtgewicht Kubernetes-provider waarmee u Kubernetes kunt hosten op uw lokale computer. Volg de installatie-instructies om MiniKube te installeren op Windows 10, Linux of macOS.
Voor de beste resultaten in Windows 10 moet u het Hyper-V VM-beheer gebruiken en een virtuele switch maken.
Nadat de installatie is uitgevoerd, start u MiniKube, geeft u op dat u Hyper-V wilt gebruiken en geeft u de naam op van de primaire virtuele switch. Deze opdracht moet worden uitgevoerd vanaf een opdrachtprompt met beheerdersbevoegdheden.
minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"
De toepassing implementeren
Kloon de Bridge to Kubernetes-repo en open een opdrachtvenster met de huidige werkmap naar todo-app.
Maak een naamruimte voor het voorbeeld.
kubectl create namespace todo-app
Pas vervolgens het implementatiemanifest toe:
kubectl apply -n todo-app -f deployment.yaml
Dit is een eenvoudige implementatie die de front-end beschikbaar maakt met behulp van een service van het type LoadBalancer
. Wacht tot alle pods draaien en het externe IP-adres van de frontend
-service beschikbaar is.
Als u test met MiniKube, moet u minikube tunnel
gebruiken om een extern IP-adres op te lossen.
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
Blader naar de toepassing met behulp van het externe IP-adres en de lokale poort (het eerste nummer in de kolom PORT(S).
http://{external-ip}:{local-port}
Test de actieve app in de browser. Wanneer u taken toevoegt, voltooit en verwijdert, ziet u dat de statistiekenpagina wordt bijgewerkt met de verwachte metrische gegevens.
Fouten opsporen in de stats-API-service
U kunt nu de Bridge to Kubernetes-extensie gebruiken om te laten zien hoe verkeer van het Kubernetes-cluster kan worden omgeleid naar een lokaal actieve versie van de stats-api.
cd stats-api/
Open de broncode voor de stats-API in VS Code.
code .
Nadat VS Code is gestart, opent u het Kubernetes-deelvenster in de linkerzijbalk van VS Code en selecteert u vervolgens de todo-app naamruimte in uw MiniKube-cluster. Klik met de rechtermuisknop op het knooppunt todo-app en kies Gebruik naamruimte.
Installeer afhankelijkheden door npm install
uit te voeren in een terminalvenster (CTRL + ~).
npm install
Plaats vervolgens een onderbrekingspunt op regel 17 van server.js
.
Open het opdrachtpalet (Ctrl+Shift+P of Cmd+Shift+P op een Mac) en typ Bridge naar Kubernetes. Selecteer de optie Bridge to Kubernetes: configureren.
U wordt gevraagd de service te configureren die u wilt vervangen, de poort om door te sturen vanaf uw ontwikkelcomputer en de starttaak die u wilt gebruiken.
Kies de stats-api
-service.
Nadat u uw service hebt geselecteerd, wordt u gevraagd om de TCP-poort voor uw lokale toepassing in te voeren. Voer voor dit voorbeeld 3001 in.
Kies Script uitvoeren: dev als de starttaak.
U hebt de keuze om geïsoleerd of niet geïsoleerd te werken. Als u geïsoleerd uitvoert, worden alleen uw aanvragen doorgestuurd naar uw lokale proces; andere ontwikkelaars kunnen het cluster gebruiken zonder dat dit wordt beïnvloed. Als u niet geïsoleerd werkt, wordt al het verkeer omgeleid naar uw lokale proces. Voor meer informatie over deze optie, zie Routeringsmogelijkheden gebruiken voor ontwikkelen in isolatie. In dit voorbeeld gaan we niet-geïsoleerd gebruiken.
kiezen
Notitie
VS Code vraagt u om endpointManager toe te staan verhoogde bevoegdheden uit te voeren en het hosts-bestand te wijzigen.
Het foutopsporingsprofiel Bridge to Kubernetes is succesvol geconfigureerd.
Selecteer het Debugging-pictogram aan de linkerkant en selecteer Script uitvoeren: dev met Kubernetes. Klik op de startknop naast Run Script: dev met Kubernetes.
Uw ontwikkelcomputer is verbonden wanneer de statusbalk van VS Code oranje wordt en de Kubernetes-extensie laat zien dat u bent verbonden. Zodra uw ontwikkelcomputer is aangesloten, wordt al het verkeer voor de stats-API die u vervangt, naar uw ontwikkelcomputer omgeleid.
Navigeer naar het toegangspunt van de voorkant van uw todo-app. Voor minikube gebruiken we 127.0.0.1
. Als u toegang wilt krijgen tot de URL van het lokale eindpunt voor uw app, opent u het Kubernetes-menu op de statusbalk en kiest u de eindpuntvermelding.
Dien een verzoek in bij de stats-API door de koppeling statistieken te kiezen.
Let op het verkeer dat in eerste instantie is gestart in uw cluster, is omgeleid naar de lokaal actieve versie (buiten het cluster) waar het onderbrekingspunt is geactiveerd.
Druk op Afspelen en laat de aanvraag volledig transparant doorgaan.
In dit voorbeeld ziet u hoe u Bridge to Kubernetes gebruikt op niet-AKS-clusters. Probeer het vervolgens op uw eigen project!
Opschonen
Als u de assets wilt opschonen die door dit voorbeeld zijn geproduceerd, voert u het volgende uit:
kubectl delete namespace todo-app
Volgende stappen
U kunt uw app ook implementeren in Azure Kubernetes Service (AKS) met Bridge naar Kubernetes. Zie Bridge naar Kubernetes gebruiken met AKS