Condividi tramite


Usare Bridge per Kubernetes con un esempio

Nota

Bridge to Kubernetes verrà ritirato il 30 aprile 2025. Per informazioni dettagliate sul ritiro e sulle alternative open source, vedere il problema di GitHub .

Questo esempio illustra come usare Bridge to Kubernetes per sviluppare una versione di microservizio di una semplice applicazione TODO in qualsiasi cluster Kubernetes. Questo esempio, che usa Visual Studio Code, è stato adattato dal codice fornito da TodoMVC. In questo esempio si usa MiniKube per ospitare l'applicazione, ma questi passaggi devono funzionare con qualsiasi cluster Kubernetes.

L'esempio di applicazione TODO è costituito da un front-end e da un back-end che fornisce l'archiviazione permanente. Questo esempio esteso aggiunge un componente statistiche e suddivide l'applicazione in diversi microservizi, in particolare:

  • Il front-end chiama l'API di database per rendere persistenti e aggiornare gli elementi TODO;
  • Il servizio database-api si basa su un database Mongo per rendere persistenti gli elementi TODO;
  • Il front-end scrive gli eventi di aggiunta, completamento ed eliminazione in una coda RabbitMQ;
  • Un lavoratore di statistiche riceve gli eventi dalla coda RabbitMQ e aggiorna la cache Redis.
  • Un'API statistiche espone le statistiche memorizzate nella cache per il front-end da visualizzare.

In tutto, questa applicazione TODO estesa è composta da sei componenti correlati.

Prerequisiti

Installare MiniKube

È possibile usare qualsiasi provider Kubernetes con Bridge to Kubernetes. In questo articolo si usa MiniKube. MiniKube è un provider Kubernetes leggero che consente di ospitare Kubernetes nel computer locale. Seguire le istruzioni di installazione per installare MiniKube in Windows 10, Linux o macOS.

Per ottenere risultati ottimali in Windows 10, è consigliabile usare il gestore di macchine virtuali Hyper-V e creare un commutatore virtuale .

Dopo l'installazione, avviare MiniKube, specificare di usare Hyper-V e specificare il nome del commutatore virtuale primario. Questo comando deve essere eseguito da un prompt dei comandi con privilegi di amministratore.

minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"

Distribuire l'applicazione

Clonare il repository Bridge in Kubernetes e aprire una finestra di comando con la cartella di lavoro corrente per todo-app.

Creare un namespace per il campione.

kubectl create namespace todo-app

Applicare quindi il manifesto della distribuzione:

kubectl apply -n todo-app -f deployment.yaml

Si tratta di una distribuzione semplice che espone il front-end usando un servizio di tipo LoadBalancer. Attendere che tutti i pod siano in esecuzione e che l'indirizzo IP esterno del servizio frontend diventi disponibile.

Se si esegue il test con MiniKube, è necessario usare minikube tunnel per risolvere un indirizzo IP esterno.

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

Navigare all'applicazione usando l'indirizzo IP esterno e la porta locale (il primo numero nella colonna PORT(S)).

http://{external-ip}:{local-port}

Testare l'app in esecuzione nel browser. Quando si aggiungono, completano ed eliminano gli elementi todo, si noti che la pagina delle statistiche viene aggiornata con le metriche previste.

Eseguire il debug del servizio stats-api

È ora possibile usare l'estensione Bridge to Kubernetes per illustrare come il traffico dal cluster Kubernetes può essere reindirizzato a una versione in esecuzione locale dell'api stats.

cd stats-api/

Aprire il codice sorgente per stats-api in VS Code.

code .

Dopo l'avvio di VS Code, aprire il riquadro Kubernetes dalla barra laterale sinistra di VS Code e quindi selezionare lo spazio dei nomi todo-app nel cluster MiniKube. Fare clic con il pulsante destro del mouse sul nodo todo-app e scegliere Usa Namespace.

Selezionare lo spazio dei nomi

Installare le dipendenze eseguendo npm install in una finestra del terminale (CTRL + ~).

npm install

Posizionare quindi un punto di interruzione nella riga 17 di server.js.

Aprire la Palette comandi (CTRL+MAIUSC+P o Cmd+MAIUSC+P su un Mac) e digitare Bridge to Kubernetes. Selezionare l'opzione Bridge to Kubernetes: Configure.

Bridge to Kubernetes: configurare il comando

Viene richiesto di configurare il servizio da sostituire, la porta da inoltrare dal computer di sviluppo e l'attività di avvio da usare.

Scegliere il servizio stats-api.

Selezionare il servizio a cui connettersi

Dopo aver selezionato il servizio, viene richiesto di immettere la porta TCP per l'applicazione locale. Per questo esempio, immettere 3001.

Immettere il numero di porta

Scegliere Esegui script: dev come attività di avvio.

Scegliere l'attività di avvio del debugger

Hai la possibilità di eseguire un'operazione isolata o non isolata. Se esegui in modalità isolata, solo le tue richieste vengono instradate al tuo processo locale; altri sviluppatori possono usare il cluster senza essere influenzati. Se non viene eseguito isolato, tutto il traffico viene reindirizzato al processo locale. Per ulteriori informazioni su questa opzione, consultare Uso delle funzionalità di routing per lo sviluppo in isolamento. Per questo esempio si userà un valore non isolato.

Scegliere l'isolamento

Nota

VS Code richiede di consentire a EndpointManager di eseguire con privilegi elevati e modificare il file hosts.

Il profilo di debug da Bridge a Kubernetes è stato configurato correttamente.

Selezionare l'icona Debug a sinistra e selezionare Esegui script: sviluppo con Kubernetes. Fare clic sul pulsante Start accanto a Esegui script: sviluppo con Kubernetes.

Scegliere il profilo di avvio di debug

Il computer di sviluppo è connesso quando la barra di stato di VS Code diventa arancione e l'estensione Kubernetes mostra che si è connessi. Dopo aver connesso il computer di sviluppo, il traffico viene reindirizzato al computer di sviluppo per l'API delle statistiche che stai sostituendo.

debug con bridge a kubernetes

Vai al punto di ingresso front-end dell'app todo. Per minikube si userà 127.0.0.1. Per accedere all'URL dell'endpoint locale per l'app, aprire il menu Kubernetes sulla barra di stato e scegliere la voce dell'endpoint.

Effettuare una richiesta all'API delle statistiche scegliendo il collegamento statistiche.

Sito Web in esecuzione: scegliere il collegamento di stato

Si noti che il traffico avviato inizialmente nel cluster è stato reindirizzato alla versione in esecuzione locale (all'esterno del cluster) in cui è stato attivato il punto di interruzione.

Premere play e lasciare che la richiesta continui a essere completata in modo trasparente.

Questo esempio è solo un'illustrazione di come usare Bridge to Kubernetes su cluster non-AKS. Provalo sul tuo progetto in seguito!

Pulire

Per pulire gli asset prodotti da questo esempio, eseguire:

kubectl delete namespace todo-app

Passaggi successivi

È anche possibile distribuire l'app nel servizio Azure Kubernetes con Bridge in Kubernetes. Vedere Usare bridge per Kubernetes con il servizio Azure Kubernetes