Delen via


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:

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.

  1. 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
    
  2. 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/...
     
  3. 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:

2. Een sidecar-app maken

  1. Selecteer Maken op de beheerpagina van de resourcegroep.

  2. Zoek naar een web-app en selecteer vervolgens de pijl-omlaag in Maken en selecteer Web-app.

    Schermopname van de Azure Marketplace-pagina met de web-app waarop wordt gezocht en waarop de knoppen voor web-apps worden geklikt.

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

    Schermopname van de wizard Web-app maken en instellingen voor een aangepaste Linux-container-app gemarkeerd.

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

    Schermopname van de wizard Web-app maken en instellingen voor de containerinstallatiekopieën en de sidecar-ondersteuning gemarkeerd.

    Notitie

    Deze instellingen worden anders geconfigureerd in sidecar-apps. Zie Verschillen voor sidecar-apps voor meer informatie.

  5. Selecteer Controleren en maken en selecteer vervolgens Maken.

  6. Zodra de implementatie is voltooid, selecteert u Ga naar de resource.

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

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

  2. 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
  3. Selecteer Toepassen.

    Schermopname die laat zien hoe u een sidecarcontainer configureert in het implementatiecentrum van een web-app.

    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.

  1. Selecteer omgevingsvariabelen in het linkermenu op de beheerpagina van de app.

  2. 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.
  3. Selecteer Toepassen en vervolgens Toepassen en vervolgens Bevestigen.

    Schermopname van de configuratiepagina van een web-app met twee app-instellingen toegevoegd.

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.

  1. Vernieuw de pagina een paar keer op het browsertabblad om https://<app-name>.azurewebsites.netenkele webaanvragen te genereren.

  2. Ga terug naar de overzichtspagina van de resourcegroep en selecteer vervolgens de Application Insights-resource. U ziet nu enkele gegevens in de standaardgrafieken.

    Schermopname van de Application Insights-pagina met 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_URLen DOCKER_REGISTRY_SERVER_PASSWORDDOCKER_REGISTRY_SERVER_USERNAME .
  • Containerpoort: WEBSITES_PORT

Meer resources