Dela via


Självstudie: Konfigurera en sidovagnscontainer för en anpassad containerapp

Den här självstudien visar hur du lägger till en OpenTelemetry-insamlare som en sidovagnscontainer i en anpassad Linux-containerapp i Azure App Service.

Med sidovagnscontainrar i App Service kan du distribuera extra tjänster och funktioner till dina Linux-appar utan att nära koppla dem till den inbyggda eller anpassade huvudcontainern. Sidovagnscontainrarna körs tillsammans med huvudprogramcontainern i samma App Service-plan.

Du kan lägga till upp till nio sidovagnscontainrar för varje Linux-app i App Service. Du kan till exempel lägga till övervaknings-, loggnings-, konfigurations- och nätverkstjänster som sidovagnscontainrar. En OpenTelemetry-insamlares sidovagn är ett exempel på övervakning.

För Bring Your Own Code Linux-appar, se Självstudie: Konfigurera en sidovagnscontainer för en Linux-app i Azure App Service.

Förutsättningar

  • Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.

  • Du kan köra kommandona i den här självstudien med hjälp av Azure Cloud Shell, ett interaktivt gränssnitt som du använder via webbläsaren för att arbeta med Azure-tjänster. Så här använder du Cloud Shell:

    1. Välj Starta Cloud Shell-knappen eller gå till https://shell.azure.com för att öppna Cloud Shell i webbläsaren.

    2. Logga in på Azure om det behövs och se till att du är i Bash-miljön i Cloud Shell.

    3. Välj Kopiera i valfritt kodblock, klistra in koden i Cloud Shell och kör den.

      Kommandona azd i den här självstudien använder Azure Developer CLI, ett verktyg med öppen källkod som påskyndar etablering och distribution av appresurser i Azure.

1. Konfigurera självstudieresurserna

Om du vill klona exempellagringsplatsen och skapa resurserna för den här självstudien kör du följande kommandon i Cloud Shell. När du uppmanas till det väljer du den Azure-prenumeration och Azure-region som du vill använda.

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

Kommandot azd provision använder de inkluderade mallarna för att skapa en Azure-resursgrupp med namnet my-sidecar-env_group som innehåller följande Azure-resurser:

När distributionen är klar bör du se utdata som liknar följande exempel:

Success!

APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=aaaaaaaa-0b0b-1c1c-2d2d-333333333333;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/;ApplicationId=00001111-aaaa-2222-bbbb-3333cccc4444
Azure container registry name = acro2lc774l6vjgg
Managed identity resource ID = /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-sidecar-env_group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id-my-sidecar-env_group
Managed identity client ID = 00aa00aa-bb11-cc22-dd33-44ee44ee44ee

Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-sidecar-env_group

Kopiera och spara värdet för APPLICATIONINSIGHTS_CONNECTION_STRING för att använda senare i den här handledningen.

Välj länken för Open resource group in the portal att öppna den tillhandahållna resursgruppen i Azure-portalen.

2. Skapa en sidovagnsaktiverad app

I resursgruppen i Azure-portalen skapar du en anpassad Linux-containerapp med sidovagnsstöd och konfigurerar huvudcontainern.

  1. På resursgruppens sida i Azure-portalen väljer du Skapa.

  2. sidan Marketplace söker du efter webbappen, väljer nedåtpilen bredvid Skapawebbappspanelen och väljer Webbapp.

    Skärmbild som visar Azure Marketplace-sidan med webbappen genomsökt och knappen Skapa webbapp markerad.

  3. På fliken Grundinställningar på sidan Skapa webbapp anger du följande information:

    • Namn: Ange ett unikt namn för webbappen.
    • Publicera: Välj Container.
    • Operativsystem: Välj Linux.
    • Region: Välj samma region som du valde för azd provision.
    • Linux-plan: Välj den angivna (nya) App Service-planen.

    Skärmbild som visar de grundläggande inställningarna för den anpassade Linux-containerwebbappen.

  4. Låt resten av inställningarna vara som de är och välj fliken Container överst på sidan.

  5. Ange följande information på fliken Container :

    • Sidovagnsstöd: Ställ in på Förbättrad konfiguration med sidovagnsstöd på.
    • Image Source: Välj Azure Container Registry.
    • Namn: Kontrollera att main visas.
    • Register: Välj det register som skapats av azd provision.
    • Autentisering: Välj Hanterad identitet.
    • Identitet: Välj den hanterade identitet som skapats av azd provision.
    • Bild: Ange nginx.
    • Tagg: Ange senaste.
    • Port: Ange 80 om det inte redan har angetts.

    Skärmbild som visar containerinställningarna för den anpassade Linux-containerwebbappen.

    Kommentar

    De här inställningarna konfigureras på olika sätt i sidovagnsaktiverade appar än i appar som inte är aktiverade för sidovagn. För mer information, se Vad är skillnaderna för anpassade containrar aktiverade med sidovagn.

  6. Välj Granska + skapaoch välj Skapanär verifieringen godkänns.

  7. När distributionen är klar väljer du Gå till resurs.

  8. På appens sida öppnar du URL:en bredvid Standarddomän,https://<app-name>.azurewebsites.net , på en ny webbläsarflik för att se standardsidan för nginx.

3. Lägg till en sidovagnscontainer i appen

Lägg till en sidovagnscontainer i din anpassade Linux-containerapp.

  1. På appens sida i Azure-portalen väljer du Distributionscenter under Distribution i den vänstra navigeringsmenyn. Sidan Distributionscenter visar alla containrar i appen, för närvarande endast huvudcontainern.

  2. Välj Lägg till>anpassad container.

  3. I fönstret Lägg till container fyller du i följande information:

    • Namn: Ange otel-collector.
    • Bildkälla: Välj Azure Container Registry.
    • Register: Välj det register som skapats av azd provision.
    • Autentisering: Välj Hanterad identitet.
    • Identitet: Under Användartilldelad väljer du den hanterade identitet som skapats av azd provision.
    • Bild: Ange otel-collector.
    • Bildtagg: Ange senaste.
    • Port: Ange 4317.
  4. Välj Använd.

    Skärmbild som visar hur du konfigurerar en sidovagnscontainer i en webbapps distributionscenter.

Det finns nu två containrar i distributionscentret med etiketten Main och Sidecar. En app måste ha en huvudcontainer och kan ha flera sidovagnscontainrar.

4. Konfigurera miljövariabler

I exempelscenariot är sidovagnen otel-collector konfigurerad för att exportera OpenTelemetry-data till Azure Monitor med hjälp av anslutningssträngen som en miljövariabel. Mer information finns i OpenTelemetry-konfigurationsfilen för otel-collector-avbildningen.

Konfigurera miljövariabeln för containern genom att konfigurera appinställningar för appen. Appinställningar är tillgängliga för alla containrar i appen.

  1. På appens sida i Azure-portalen väljer du Miljövariabler under Inställningar i den vänstra navigeringsmenyn.

  2. På fliken Appinställningar på sidan Miljövariabler väljer du Lägg till.

  3. I fönstret Lägg till/redigera programinställning anger du följande värden:

    • Namn: APPLICATIONINSIGHTS_CONNECTION_STRING
    • Värde: Värdet av APPLICATIONINSIGHTS_CONNECTION_STRING från utdatat av azd provision. Du kan också hitta det här värdet som anslutningssträng på sidan Översikt för resursgruppens Application Insight-resurs.
  4. Välj Använd och välj sedan Använd igen och välj sedan Bekräfta. Inställningen APPLICATIONINSIGHTS_CONNECTION_STRING app visas nu på fliken Appinställningar .

    Skärmbild som visar en webbapps konfigurationssida med två appinställningar tillagda.

Kommentar

Vissa appinställningar gäller inte för sidovagnsaktiverade appar. Mer information finns i Vad är skillnaderna för anpassade containrar med sidovagnsaktivering.

5. Verifiera i Application Insights

Sidovagnen otel-collector bör nu exportera data till Application Insights.

  1. Gå till din app på en ny webbläsarflik och uppdatera sidan några gånger för att generera några webbbegäranden.

  2. På resursgruppssidan i Azure-portalen väljer du Application Insights-resursen . Nu bör du se vissa data i standarddiagrammen på sidan Översikt över Application Insights.

    Skärmbild av sidan Application Insights som visar data i standarddiagrammen.

Kommentar

I det här vanliga övervakningsscenariot är Application Insights bara ett av de OpenTelemetry-mål som du kan använda, till exempel Jaeger, Prometheus och Zipkin.

6. Rensa resurser

När du inte längre behöver den miljö som du skapade för den här självstudien kan du ta bort resursgruppen, som tar bort apptjänsten och alla relaterade resurser. Kör följande kommando på den klonade lagringsplatsen i Cloud Shell.

azd down

Vanliga frågor

Vilka är skillnaderna för sidovagnsaktiverade anpassade containrar?

Sidovagnsaktiverade appar konfigureras på ett annat sätt än appar som inte är sidovagnsaktiverade.

  • Appar som är aktiverade med sidovagnsfunktion betecknas med LinuxFxVersion=sitecontainers och konfigureras med sitecontainers resurser.
  • Appar som inte är sidecar-aktiverade konfigurerar container-namnet och typen direkt med LinuxFxVersion=DOCKER|<image-details>.

För mer information, se az webapp config set --linux-fx-version.

Appar som inte är sidovagnsaktiverade konfigurerar huvudcontainern med appinställningar som:

  • DOCKER_REGISTRY_SERVER_URL
  • DOCKER_REGISTRY_SERVER_USERNAME
  • DOCKER_REGISTRY_SERVER_PASSWORD
  • WEBSITES_PORT

De här inställningarna gäller inte för sidovagnsaktiverade appar.

Hur hanterar sidovagnscontainrar intern kommunikation?

Sidovagnscontainrar delar samma nätverksvärd som huvudcontainern, så att huvudcontainern och andra sidovagnscontainrar kan nå valfri port på sidovagnen med localhost:<port>. Exemplet startup.sh använder localhost:4318 för att komma åt port 4318 på sidovagnen otel-collector.

I dialogrutan Redigera container används inte portinställningen för närvarande av App Service. Du kan använda den som en del av sidovagnsmetadata, till exempel för att ange vilken port sidovagnen lyssnar på.

Kan en sidovagnscontainer ta emot Internetbegäranden?

Nej. App Service dirigerar endast internetbegäranden till huvudcontainern. För kodbaserade Linux-appar är den inbyggda Linux-containern huvudcontainern och alla sidovagnar sitecontainers bör läggas till med IsMain=false.

För anpassade containrar ska alla utom en av dem sitecontainers ha IsMain=false. Mer information om hur du konfigurerar IsMainfinns i Microsoft.Web sites/sitecontainers.

Hur använder jag volymmonteringar?

Med funktionen för volymmontering kan du dela icke-beständiga filer och kataloger mellan containrar i webbappen. Om du vill lägga till eller konfigurera volymmonteringar använder du Volymmonteringar på sidan Lägg till container eller Redigera container .

Skärmbild som visar en volymmonteringskonfiguration för en sidovagnscontainer.

  • Volymundersökväg är en automatiskt skapad logisk katalogsökväg som inte refereras i containern. Containrar som har konfigurerats med samma volymundersökväg kan dela filer och kataloger.
  • Monteringssökväg för container är en katalogsökväg som du refererar till i containern. Containerns monteringssökväg mappas till volymens underordnade sökväg.

Tänk dig till exempel att du konfigurerar följande volymmonteringar:

Sidovagnsnamn Volymundersökväg Monteringsväg för container Endast läsbar
Container1 /directory1/directory2 /container1Vol Falsk
Container2 /directory1/directory2 /container2Vol Sann
Container3 /directory1/directory2/directory3 /container3Vol Falsk
Container4 /directory4 /container1Vol Falsk

Baserat på de här inställningarna gäller följande villkor:

  • Om Container1 skapar /container1Vol/myfile.txtkan Container2 läsa filen via /container2Vol/myfile.txt.
  • Om Container1 skapar /container1Vol/directory3/myfile.txtkan Container2 läsa filen via /container2Vol/directory3/myfile.txtoch Container3 kan läsa och skriva till filen via /container3Vol/myfile.txt.
  • Container4 har inte någon gemensam volymmontering med de andra containrarna.

Kommentar

För kodbaserade Linux-appar kan den inbyggda Linux-containern inte använda volymmonteringar.