Usare Bridge per Kubernetes con il servizio Azure Kubernetes
Nota
Microsoft prevede di non gestire più attivamente il progetto Bridge to Kubernetes. Nei prossimi mesi il progetto verrà passato a uno stato di archiviazione. Nel frattempo, il progetto è ancora disponibile per l'uso e il download. Durante questo periodo, ci auguriamo di esplorare e consigliare progetti della community che offrono vantaggi simili a Bridge to Kubernetes per l'uso futuro. In caso di domande, contattare Microsoft nella bacheca dei problemi in GitHub.
In questa esercitazione si usa un'app Web di microservizi di esempio del servizio Azure Kubernetes specifica per informazioni su come usare Bridge to Kubernetes per eseguire il debug in locale in un singolo pod che fa parte di un cluster servizio Azure Kubernetes (AKS).
Operazioni preliminari
Questa guida usa l'applicazione di esempio Todo App per illustrare la connessione del computer di sviluppo a un cluster Kubernetes in esecuzione nel servizio Azure Kubernetes. Se si ha già un'applicazione personalizzata in esecuzione in un cluster Kubernetes, vedere Sviluppare con Kubernetes. Se si usa un altro cluster, ad esempio MiniKube in esecuzione in locale, vedere Usare Bridge to Kubernetes con un esempio.
Prerequisiti
- Una sottoscrizione di Azure. Se non hai una sottoscrizione Azure, crea un account gratuito.
- L'interfaccia della riga di comando di Azure installata.
- Visual Studio Code in esecuzione in macOS, Windows 10 o Linux.
- Estensione Bridge to Kubernetes installata in Visual Studio Code.
Creare un cluster Kubernetes
Creare un cluster del servizio Azure Kubernetes in un'area supportata. I comandi seguenti creano un gruppo di risorse denominato MyResourceGroup
e un cluster del servizio Azure Kubernetes denominato MyAKS
.
az group create \
--name MyResourceGroup \
--location eastus
az aks create \
--resource-group MyResourceGroup \
--name MyAKS \
--location eastus \
--node-count 3 \
--generate-ssh-keys
Installare l'applicazione di esempio
Scaricare il codice e installare le dipendenze
git clone https://github.com/hsubramanianaks/b2k-samples
cd b2k-samples/todo-app
npm install stats-api\
Connettersi al cluster e distribuire l'app
Nel computer di sviluppo scaricare e configurare l'interfaccia della riga di comando di Kubernetes per connettersi al cluster Kubernetes usando az aks get-credentials
.
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
Provare l'app
Nello stesso terminale in uso in precedenza eseguire il comando seguente e copiare l'INDIRIZZO IP per il servizio front-end nella colonna IP esterno.
kubectl get services
Per provare l'app, aprire l'URL: {your external IP from above command goes here}.nip.io
Eseguire il debug del servizio stats-api
Nello stesso terminale usato in precedenza, digitare il comando seguente per aprire stats-api in VS Code.
code ./stats-api
Posizionare prima di tutto un punto di interruzione nella riga 17 di server.js
.
Assicurarsi quindi che lo todo-app
spazio dei nomi nel MyAKS
cluster sia impostato come predefinito (se ha * accanto a esso). Se non è impostato come predefinito, fare clic con il pulsante destro del mouse sul nodo todo-app e scegliere Usa spazio dei nomi.
Configurare quindi bridge: aprire il riquadro comandi (CTRL+MAIUSC+P o CMD+MAIUSC+P in un Mac) e digitare Bridge to Kubernetes. Selezionare l'opzione Bridge to Kubernetes: Configure (Bridge to Kubernetes: Configure ).
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 stats-api
servizio.
Importante
È possibile reindirizzare solo i servizi con un singolo pod.
Dopo aver selezionato il servizio, viene richiesto di immettere la porta TCP per l'applicazione locale. Per questo esempio, immettere 3001.
Scegliere Esegui script: sviluppo come attività di avvio.
È possibile eseguire isolato o non isolato. Se si esegue isolato, solo le richieste vengono instradate al processo locale; altri sviluppatori possono usare il cluster senza essere interessati. Se non si esegue isolato, tutto il traffico viene reindirizzato al processo locale. Per altre informazioni su questa opzione, vedere Uso delle funzionalità di routing per lo sviluppo in isolamento. Per questo esempio si procede con non isolato. Se si sceglie l'isolamento, task.json ha il prefisso da usare per instradare la richiesta al computer.
Nota
All'avvio successivo, è sufficiente fare clic sull'icona di debug senza passare attraverso questa configurazione e richiedere il nome del servizio, la porta, l'attività di avvio o se eseguire isolato. Questi valori vengono salvati in .vscode/tasks.json
. Per modificare queste impostazioni in un secondo momento, aprire il riquadro comandi (CTRL+MAIUSC+P o CMD+MAIUSC+P in un Mac) ed eseguire il comando Bridge to Kubernetes: Configure (Bridge to Kubernetes: Configure).
Il profilo di debug da Bridge a Kubernetes è stato configurato correttamente.
Per avviare il debug, 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.
Nota
Verrà richiesto di consentire a EndpointManager di eseguire con privilegi elevati e modificare il file hosts.
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 inizia a reindirizzare al computer di sviluppo per l'API stats che si sta sostituendo.
Passare al punto di ingresso front-end dell'applicazione tramite l'indirizzo IP esterno trovato in precedenza, {your external IP from get services command}.nip.io
. Si noti che se è stata selezionata la modalità di isolamento, è necessario usare {your prefix - can be found in task.json}.{your external IP from get services command}.nip.io
.
Effettuare una richiesta all'API stats scegliendo il collegamento statistiche .
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.
Eseguire la pulizia
Quando si arresta il debugger, tutte le modifiche apportate al cluster vengono ripristinate. Si noti che, se è stato eseguito con isolamento, il pod di Gestione routing verrà lasciato lì per accelerare l'avvio del debugger la volta successiva.
È possibile lasciare attivo il cluster del servizio Azure Kubernetes per il debug futuro oppure eliminarlo con il comando seguente.
az aks delete --name MyAKS --resource-group MyResourceGroup
Passaggi successivi
Altre informazioni sul funzionamento di Bridge to Kubernetes sono disponibili in How Bridge to Kubernetes (Come funziona Bridge to Kubernetes).