Zelfstudie: Een sidecarcontainer configureren voor aangepaste container in Azure-app Service
In deze zelfstudie voegt u een OpenTelemetry-collector toe als sidecarcontainer aan een aangepaste Linux-container-app in Azure-app Service. Zie zelfstudie: Een sidecarcontainer configureren voor een Linux-app in Azure-app Service voor bring-your-own-code.
In Azure-app Service kunt u maximaal negen sidecarcontainers toevoegen voor elke aangepaste container-app met sidecar-functionaliteit. 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 voor meer informatie over side container in App Service:
- Introductie van sidecars voor Azure-app Service voor Linux: Nu algemeen beschikbaar
- Aankondiging van de algemene beschikbaarheid van sidecar-uitbreidbaarheid in Azure-app Service
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. 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 env new my-sidecar-env azd provision
Geef het gewenste abonnement en de gewenste regio op wanneer u hierom wordt gevraagd. Voorbeeld:
- 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 met de naam my-sidecar-env_group.
- 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
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 omgevingsvariabelen in het linkermenu op de beheerpagina van de app.
Voeg een app-instelling toe door deze als volgt toe te voegen en te configureren:
- Naam: APPLICATIONINSIGHTS_CONNECTION_STRING
- Waarde: de verbindingsreeks in de uitvoer van
azd provision
. Als u de Cloud Shell-sessie kwijtraakt, kunt u deze ook vinden op de pagina Overzicht van de Application Insight-resource onder Verbindingsreeks.
Selecteer Toepassen en vervolgens Toepassen en vervolgens Bevestigen.
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 vervolgens 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
Hoe verwerken sidecarcontainers interne communicatie?
Sidecar-containers delen dezelfde netwerkhost als de hoofdcontainer, zodat de hoofdcontainer (en andere sidecarcontainers) elke poort in de sidecar met localhost:<port>
kunnen bereiken. 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).
In het dialoogvenster Container bewerken wordt het poortvak momenteel niet gebruikt door App Service. U kunt deze gebruiken als onderdeel van de sidecar-metagegevens, bijvoorbeeld om aan te geven naar welke poort de sidecar luistert.
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