Esercitazione: Configurare un contenitore sidecar per un contenitore personalizzato nel Servizio app di Azure (anteprima)
In questa esercitazione si aggiunge l'agente di raccolta OpenTelemetry come contenitore sidecar a un'app contenitore personalizzata Linux nel servizio app di Azure.
Nel servizio app di Azure è possibile aggiungere fino a 4 contenitori sidecar per ogni app contenitore personalizzata abilitata per sidecar. I contenitori sidecar consentono di distribuire servizi e funzionalità aggiuntivi nell'applicazione contenitore senza associarli strettamente al contenitore principale dell'applicazione. Ad esempio, è possibile aggiungere servizi di monitoraggio, registrazione, configurazione e rete come contenitori sidecar. Un sidecar dell'agente di raccolta OpenTelemetry è un esempio di monitoraggio di questo tipo.
Per altre informazioni sui sidecar, vedere Modello Sidecar.
Nota
Per il periodo di anteprima, il supporto sidecar deve essere abilitato al momento della creazione dell'app. Attualmente non è possibile abilitare il supporto sidecar per un'app esistente.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
1. Configurare le risorse necessarie
Per prima cosa si creano le risorse usate dall'esercitazione. Per altre informazioni, vedere Panoramica di Cloud Shell. Vengono usate per questo particolare scenario e non sono necessarie per i contenitori sidecar in generale.
In Azure Cloud Shell, eseguire i comandi seguenti:
git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs cd app-service-sidecar-tutorial-prereqs azd provision
Quando richiesto, specificare il nome dell'ambiente, la sottoscrizione e l'area desiderati. Ad esempio:
- Nome ambiente: my-sidecar-env
- Sottoscrizione: la sottoscrizione
- Area: (Europa) Europa occidentale
Al termine della distribuzione, verrà visualizzato l'output seguente:
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=... Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
Aprire il collegamento al gruppo di risorse in una scheda del browser. Sarà necessario usare la stringa di connessione in un secondo momento.
Nota
azd provision
usa i modelli inclusi per creare le risorse di Azure seguenti:- Un gruppo di risorse
- Un registro contenitori con due immagini distribuite:
- Immagine Nginx con il modulo OpenTelemetry.
- Immagine dell'agente di raccolta OpenTelemetry configurata per l'esportazione in Monitoraggio di Azure.
- Un'area di lavoro Log Analytics
- Un componente di Application Insights
2. Creare un'app abilitata per sidecar
Nella pagina di gestione del gruppo di risorse selezionare Crea.
Cercare app Web, quindi selezionare la freccia giù in Crea e selezionare app Web.
Configurare il pannello Informazioni di base come indicato di seguito:
- Nome: nome univoco
- Pubblica: contenitore
- Sistema operativo: Linux
- Area: stessa area di quella scelta con
azd provision
- piano Linux: un nuovo piano di servizio app
Selezionare Contenitore. Configurare il pannello Contenitore come indicato di seguito:
- Supporto sidecar: Abilitato
- Origine immagine: Registro Azure Container
- Registro di sistema: registro creato da
azd provision
- Immagine: nginx
- Tag: latest
- Porta: 80
Nota
Queste impostazioni sono configurate in modo diverso nelle app abilitate per sidecar. Per altre informazioni, vedere Differenze per le app abilitate per sidecar.
Selezionare Rivedi e crea e quindi Crea.
Al termine della distribuzione selezionare Vai al gruppo di risorse.
In una nuova scheda del browser passare a
https://<app-name>.azurewebsites.net
e visualizzare la pagina Nginx predefinita.
3. Aggiungere un contenitore sidecar
In questa sezione si aggiunge un contenitore sidecar all'app contenitore personalizzata.
Nel menu a sinistra della pagina di gestione dell'app selezionare Centro distribuzione.
Il Centro distribuzione mostra tutti i contenitori nell'app. Al momento, ha solo il contenitore principale.
Selezionare Aggiungi e configurare il nuovo contenitore come indicato di seguito:
- Nome: agente di raccolta
- Origine immagine: Registro Azure Container
- Registro di sistema: registro creato da
azd provision
- Image: agente di raccolta
- Tag: latest
- Porta: 4317
La porta 4317 è la porta predefinita usata dal contenitore di esempio per ricevere i dati OpenTelemetry. È accessibile da qualsiasi altro contenitore nell'app all'indirizzo
localhost:4317
. Questo è esattamente il modo in cui il contenitore Nginx invia i dati al sidecar (vedere la configurazione del modulo OpenTelemetry per l'immagine Nginx di esempio).Selezionare Applica.
Nel Centro distribuzione dovrebbero essere visualizzati due contenitori. Il contenitore principale è contrassegnato come Principale e il contenitore sidecar è contrassegnato come Sidecar. Ogni app deve avere un contenitore principale, ma può avere più contenitori sidecar.
4. Configurare le variabili di ambiente
Per lo scenario di esempio, il sidecar dell'agente di raccolta destinazioni è configurato per esportare i dati OpenTelemetry in Monitoraggio di Azure, ma ha bisogno della stringa di connessione come variabile di ambiente (vedere il file di configurazione OpenTelemetry per l'immagine dell'agente di raccolta dati).
È possibile configurare le variabili di ambiente per i contenitori come qualsiasi app del servizio app configurando le impostazioni dell'app. Le impostazioni dell'app sono accessibili a tutti i contenitori nell'app.
Nel menu a sinistra della pagina di gestione dell'app selezionare Configurazione.
Aggiungere un'impostazione dell'app selezionando Nuova impostazione dell'applicazione e configurarla come indicato di seguito:
- Nome: APPLICATIONINSIGHTS_CONNECTION_STRING
- Valore: stringa di connessione nell'output di
azd provision
Selezionare Salva e quindi Connetti.
Nota
Alcune impostazioni dell'app non si applicano alle app abilitate per sidecar. Per altre informazioni, vedere Differenze per le app abilitate per sidecar
5. Verificare in Application Insights
Il sidecar dell'agente di raccolta eseguirà ora l'esportazione dei dati in Application Insights.
Tornare alla scheda del browser per
https://<app-name>.azurewebsites.net
, aggiornare la pagina alcune volte per generare alcune richieste Web.Tornare alla pagina di panoramica del gruppo di risorse e selezionare la risorsa di Application Insights. Verranno ora visualizzati alcuni dati nei grafici predefiniti.
Nota
In questo scenario di monitoraggio molto comune, Application Insights è solo una delle destinazioni OpenTelemetry che è possibile usare, ad esempio Jaeger, Prometheus e Zipkin.
Pulire le risorse
Quando l'ambiente non è più necessario, è possibile eliminare il gruppo di risorse, il servizio app e tutte le risorse correlate. È sufficiente eseguire questo comando in Cloud Shell, nel repository clonato:
azd down
Differenze per le app abilitate per sidecar
Le app abilitate per sidecar vengono configurate in modo diverso rispetto alle app che non sono abilitate per sidecar. In particolare, non si configurano i contenitori principali e sidecar con le impostazioni dell'app, ma direttamente nelle proprietà delle risorse. Queste impostazioni dell'app non si applicano alle app abilitate per sidecar:
- Impostazioni di autenticazione del Registro di sistema:
DOCKER_REGISTRY_SERVER_URL
,DOCKER_REGISTRY_SERVER_USERNAME
eDOCKER_REGISTRY_SERVER_PASSWORD
. - Porta del contenitore:
WEBSITES_PORT