Zelfstudie: Een sidecarcontainer configureren voor aangepaste container in Azure-app Service (preview)
In deze zelfstudie voegt u OpenTelemetry-collector toe als sidecarcontainer aan een aangepaste Linux-container-app in Azure-app Service.
In Azure-app Service kunt u maximaal 4 sidecarcontainers toevoegen voor elke aangepaste container-app waarvoor sidecar is ingeschakeld. Met Sidecar-containers kunt u extra services en functies implementeren in uw containertoepassing zonder deze nauw te koppelen aan uw hoofdtoepassingscontainer. U kunt bijvoorbeeld bewakings-, logboekregistratie-, configuratie- en netwerkservices toevoegen als sidecarcontainers. Een Sidecar van de OpenTelemetry-collector is een dergelijk bewakingsvoorbeeld.
Zie Sidecar-patroon voor meer informatie over sidecars.
Notitie
Voor de preview-periode moet sidecar-ondersteuning zijn ingeschakeld bij het maken van apps. Er is momenteel geen manier om sidecar-ondersteuning in te schakelen voor een bestaande app.
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
1. De benodigde resources instellen
Eerst maakt u de resources die in de zelfstudie worden gebruikt (zie Cloud Shell-overzicht voor meer informatie). Ze worden gebruikt voor dit specifieke scenario en zijn niet vereist voor sidecarcontainers in het algemeen.
Voer in Azure Cloud Shell de volgende opdrachten uit:
git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs cd app-service-sidecar-tutorial-prereqs azd provision
Geef de gewenste omgevingsnaam, het abonnement en de gewenste regio op wanneer u hierom wordt gevraagd. Voorbeeld:
- Omgevingsnaam: my-sidecar-env
- Abonnement: uw abonnement
- Regio: (Europa) Europa - west
Wanneer de implementatie is voltooid, ziet u de volgende uitvoer:
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=... Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
Open de koppeling naar de resourcegroep in een browsertabblad. U moet de verbindingsreeks later gebruiken.
Notitie
azd provision
maakt gebruik van de opgenomen sjablonen om de volgende Azure-resources te maken:- Een resourcegroep
- Een containerregister met twee installatiekopieën geïmplementeerd:
- Een Nginx-afbeelding met de Module OpenTelemetry.
- Een OpenTelemetry Collector-installatiekopieën die zijn geconfigureerd om te exporteren naar Azure Monitor.
- Een Log Analytics-werkruimte
- Een Application Insights-onderdeel
2. Een sidecar-app maken
Selecteer Maken op de beheerpagina van de resourcegroep.
Zoek naar een web-app en selecteer vervolgens de pijl-omlaag in Maken en selecteer Web-app.
Configureer het deelvenster Basics als volgt:
- Naam: Een unieke naam
- Publiceren: Container
- Besturingssysteem: Linux
- Regio: Dezelfde regio als de regio waarmee u hebt gekozen
azd provision
- Linux-plan: een nieuw App Service-plan
Selecteer Container. Configureer het containerpaneel als volgt:
- Sidecar-ondersteuning: ingeschakeld
- Bron van installatiekopieën: Azure Container Registry
- Register: het register dat is gemaakt door
azd provision
- Afbeelding: nginx
- Tag: meest recente
- Poort: 80
Notitie
Deze instellingen worden anders geconfigureerd in sidecar-apps. Zie Verschillen voor sidecar-apps voor meer informatie.
Selecteer Controleren en maken en selecteer vervolgens Maken.
Zodra de implementatie is voltooid, selecteert u Ga naar de resource.
Navigeer in een nieuw browsertabblad naar
https://<app-name>.azurewebsites.net
de standaard-Nginx-pagina en zie deze.
3. Een sidecarcontainer toevoegen
In deze sectie voegt u een sidecar-container toe aan uw aangepaste container-app.
Selecteer Deployment Center in het linkermenu op de beheerpagina van de app.
In het implementatiecentrum ziet u alle containers in de app. Op dit moment heeft het alleen de hoofdcontainer.
Selecteer De nieuwe container als volgt toevoegen en configureren:
- Naam: otel-collector
- Bron van installatiekopieën: Azure Container Registry
- Register: het register dat is gemaakt door
azd provision
- Afbeelding: otel-collector
- Tag: meest recente
- Poort: 4317
Poort 4317 is de standaardpoort die door de voorbeeldcontainer wordt gebruikt om OpenTelemetry-gegevens te ontvangen. Het is toegankelijk vanuit elke andere container in de app op
localhost:4317
. Dit is precies hoe de Nginx-container gegevens naar de sidecar verzendt (zie de configuratie van de OpenTelemetry-module voor de voorbeeld-Nginx-installatiekopieën).Selecteer Toepassen.
U ziet nu twee containers in het implementatiecentrum. De hoofdcontainer is gemarkeerd als Main en de sidecar-container is gemarkeerd als Sidecar. Elke app moet één hoofdcontainer hebben, maar kan meerdere sidecarcontainers hebben.
4. Omgevingsvariabelen configureren
Voor het voorbeeldscenario is de sidecar van de otel-collector geconfigureerd voor het exporteren van de OpenTelemetry-gegevens naar Azure Monitor, maar het heeft de verbindingsreeks nodig als een omgevingsvariabele (zie het OpenTelemetry-configuratiebestand voor de installatiekopie van metry).
U configureert omgevingsvariabelen voor de containers zoals elke App Service-app door app-instellingen te configureren. De app-instellingen zijn toegankelijk voor alle containers in de app.
Selecteer Configuratie in het linkermenu op de beheerpagina van de app.
Voeg een app-instelling toe door nieuwe toepassingsinstelling te selecteren en deze als volgt te configureren:
- Naam: APPLICATIONINSIGHTS_CONNECTION_STRING
- Waarde: de verbindingsreeks in de uitvoer van
azd provision
Selecteer Opslaan en selecteer Vervolgens Doorgaan.
Notitie
Bepaalde app-instellingen zijn niet van toepassing op sidecar-apps. Zie Verschillen voor sidecar-apps voor meer informatie
5. Controleren in Application Insights
De sidecar van de otel-collector moet nu gegevens exporteren naar Application Insights.
Vernieuw de pagina een paar keer op het browsertabblad om
https://<app-name>.azurewebsites.net
enkele webaanvragen te genereren.Ga terug naar de overzichtspagina van de resourcegroep en selecteer de Application Insights-resource. U ziet nu enkele gegevens in de standaardgrafieken.
Notitie
In dit veelvoorkomende bewakingsscenario is Application Insights slechts een van de OpenTelemetry-doelen die u kunt gebruiken, zoals Jaeger, Prometheus en Zipkin.
Resources opschonen
Wanneer u de omgeving niet meer nodig hebt, kunt u de resourcegroep, App Service en alle gerelateerde resources verwijderen. Voer deze opdracht uit in de Cloud Shell, in de gekloonde opslagplaats:
azd down
Verschillen voor sidecar-apps
U configureert sidecar-apps anders dan apps die niet sidecar zijn ingeschakeld. Met name configureert u de hoofdcontainer en sidecars niet met app-instellingen, maar rechtstreeks in de resource-eigenschappen. Deze app-instellingen zijn niet van toepassing op sidecar-apps:
- Registerverificatie-instellingen:
DOCKER_REGISTRY_SERVER_URL
enDOCKER_REGISTRY_SERVER_PASSWORD
DOCKER_REGISTRY_SERVER_USERNAME
. - Containerpoort:
WEBSITES_PORT