Condividi tramite


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

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.

Screenshot che mostra lo spazio dei nomi Bridge to Kubernetes.

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 ).

Screenshot che mostra la finestra di comando Bridge to Kubernetes Configure .Screenshot che mostra la finestra di comando 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.

Screenshot che mostra la selezione del servizio a cui connettersi.

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.

Screenshot che mostra l'immissione della finestra numero di porta.

Scegliere Esegui script: sviluppo come attività di avvio.

Screenshot che mostra la finestra dell'attività di avvio del debugger.

È 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.

Screenshot che mostra la finestra dell'opzione scegli isolamento.

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.

Screenshot che mostra la finestra scegliere il profilo di avvio del debug.

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.

Screenshot che mostra la finestra scegliere il debug con Bridge to Kubernetes.

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 .

Screenshot che mostra la scelta del 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.

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).