Sdílet prostřednictvím


Kurz: Konfigurace kontejneru sajdkáře pro vlastní kontejner ve službě Aplikace Azure Service

V tomto kurzu přidáte kolektor OpenTelemetry jako kontejner sajdkáře do vlastní aplikace kontejneru Linuxu ve službě Aplikace Azure Service. Informace o aplikacích pro Linux s vlastním kódem najdete v tématu Kurz: Konfigurace kontejneru sajdkáře pro aplikaci pro Linux ve službě Aplikace Azure Service.

Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.

Co je postranní kontejner?

Ve službě Aplikace Azure Service můžete pro každou linuxovou aplikaci přidat až devět kontejnerů sajdkáru. Kontejnery Sidecar umožňují nasadit do linuxových aplikací další služby a funkce, aniž by byly úzce propojené s hlavním kontejnerem (integrovaným nebo vlastním). Jako kontejnery sajdkáře můžete například přidat monitorování, protokolování, konfiguraci a síťové služby. Příkladem monitorování je kolektor OpenTelemetry.

Kontejnery sidecar běží vedle hlavního kontejneru aplikace ve stejném plánu služby App Service.

1. Nastavení potřebných prostředků

Nejprve vytvoříte prostředky, které kurz používá. Používají se pro tento konkrétní scénář a obecně se nevyžadují pro kontejnery sajdkáře.

  1. V Azure Cloud Shellu spusťte následující příkazy:

    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. Po zobrazení výzvy zadejte požadované předplatné a oblast. Příklad:

    • Předplatné: Vaše předplatné.
    • Oblast: (Evropa) Západní Evropa.

    Po dokončení nasazení by se měl zobrazit následující výstup:

     APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=...
    
     Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
     
  3. Otevřete odkaz na skupinu prostředků na kartě prohlížeče. Později budete muset použít připojovací řetězec.

    Poznámka:

    azd provision používá zahrnuté šablony k vytvoření následujících prostředků Azure:

2. Vytvoření aplikace s podporou sajdkáře

  1. Na stránce pro správu skupiny prostředků vyberte Vytvořit.

  2. Vyhledejte webovou aplikaci a pak vyberte šipku dolů u možnosti Vytvořit a vyberte Web App.

    Snímek obrazovky zobrazující stránku Azure Marketplace s prohledávané webovou aplikací a kliknutím vytvořte tlačítka webové aplikace.

  3. Panel Základy nakonfigurujte následujícím způsobem:

    • Název: Jedinečný název
    • Publikování: Kontejner
    • Operační systém: Linux
    • Oblast: Stejná oblast jako ta, kterou jste zvolili azd provision
    • Plán Linuxu: Nový plán služby App Service

    Snímek obrazovky se zvýrazněnou možností Průvodce vytvořením webové aplikace a nastavením vlastní aplikace kontejneru pro Linux

  4. Vyberte kontejner. Panel Kontejner nakonfigurujte následujícím způsobem:

    • Podpora sajdkáru: Povoleno
    • Zdroj image: Azure Container Registry
    • Registr: Registr vytvořený pomocí azd provision
    • Obrázek: nginx
    • Značka: nejnovější
    • Port: 80

    Snímek obrazovky znázorňující průvodce vytvořením webové aplikace a nastavení image kontejneru a zvýrazněnou podporu sajdkáru

    Poznámka:

    Tato nastavení jsou v aplikacích s podporou sajdkáře nakonfigurovaná jinak. Další informace najdete v tématu Jaké jsou rozdíly u vlastních kontejnerů s podporou sidecar?.

  5. Vyberte Zkontrolovat a vytvořit a pak Vytvořit.

  6. Po dokončení nasazení vyberte Přejít k prostředku.

  7. Na nové kartě prohlížeče přejděte na https://<app-name>.azurewebsites.net výchozí stránku Nginx a podívejte se na ji.

3. Přidání kontejneru sajdkáře

V této části přidáte kontejner sajdkáře do vlastní aplikace kontejneru.

  1. Na stránce správy aplikace v nabídce vlevo vyberte Deployment Center.

    V centru nasazení se zobrazí všechny kontejnery v aplikaci. Právě teď má pouze hlavní kontejner.

  2. Vyberte Přidat a nakonfigurujte nový kontejner následujícím způsobem:

    • Název: otel-collector
    • Zdroj image: Azure Container Registry
    • Registr: Registr vytvořený pomocí azd provision
    • Obrázek: otel-collector
    • Značka: nejnovější
  3. Vyberte Použít.

    Snímek obrazovky znázorňující, jak nakonfigurovat kontejner sajdkáře v centru nasazení webové aplikace

    V centru nasazení byste teď měli vidět dva kontejnery. Hlavní kontejner je označený Main a kontejner sajdkáře je označený sajdkáře. Každá aplikace musí mít jeden hlavní kontejner, ale může mít více kontejnerů sajdkáře.

4. Konfigurace proměnných prostředí

V ukázkovém scénáři je sajdkárna otel-collector nakonfigurovaná tak, aby exportovala data OpenTelemetry do služby Azure Monitor, ale potřebuje připojovací řetězec jako proměnnou prostředí (viz konfigurační soubor OpenTelemetry pro image kolektoru otel-collector).

Proměnné prostředí pro kontejnery konfigurujete tak, že nakonfigurujete nastavení aplikace. Nastavení aplikace jsou přístupná pro všechny kontejnery v aplikaci.

  1. Na stránce správy aplikace v nabídce vlevo vyberte Proměnné prostředí.

  2. Přidejte nastavení aplikace tak , že vyberete Přidat a nakonfigurujete ho následujícím způsobem:

    • Název: APPLICATIONINSIGHTS_CONNECTION_STRING
    • Hodnota: připojovací řetězec ve výstupu .azd provision Pokud jste relaci Cloud Shellu ztratili, najdete ji také na stránce Přehled prostředku Application Insight v části Připojovací řetězec.
  3. Vyberte Použít, pak Použít a pak Potvrdit.

    Snímek obrazovky zobrazující stránku Konfigurace webové aplikace se dvěma přidanými nastaveními aplikace

Poznámka:

Některá nastavení aplikace se nevztahují na aplikace s podporou sajdkáře. Další informace najdete v tématu Jaké jsou rozdíly pro kontejnery na míru s podporou sidecar?

5. Ověření v Application Insights

Sajdkárna otel-collector by teď měla exportovat data do Application Insights.

  1. Zpátky na kartě https://<app-name>.azurewebsites.netprohlížeče aktualizujte stránku několikrát, aby se vygenerovaly některé webové požadavky.

  2. Vraťte se na stránku přehledu skupiny prostředků a vyberte prostředek Application Insights. Ve výchozím grafu byste teď měli vidět nějaká data.

    Snímek obrazovky se stránkou Application Insights zobrazující data ve výchozích grafech

Poznámka:

V tomto velmi běžném scénáři monitorování je Application Insights jen jedním z cílů OpenTelemetry, které můžete použít, například Jaeger, Prometheus a Zipkin.

Vyčištění prostředků

Pokud už prostředí nepotřebujete, můžete odstranit skupinu prostředků, službu App Service a všechny související prostředky. Stačí spustit tento příkaz v Cloud Shellu v naklonovaném úložišti:

azd down

Nejčastější dotazy

Jaké jsou rozdíly pro uživatelské kontejnery s podporou sidecaru?

Aplikace s podporou sajdkáře nakonfigurujete jinak než aplikace, které nejsou povolené sajdkáře.

Není povolena podpora sidecaru

  • Názvy a typy kontejnerů se konfigurují přímo s LinuxFxVersion=DOCKER|<image-details> (viz az webapp config set --linux-fx-version).
  • Hlavní kontejner je nakonfigurovaný s nastavením aplikace, například:
    • DOCKER_REGISTRY_SERVER_URL
    • DOCKER_REGISTRY_SERVER_USERNAME
    • DOCKER_REGISTRY_SERVER_PASSWORD
    • WEBSITES_PORT

Podpora pro postranní modul povolena

  • Aplikace s aktivovaným sidecarem je označená LinuxFxVersion=sitecontainers (vizte az webapp config set --linux-fx-version).
  • Hlavní kontejner je nakonfigurovaný s prostředkem sitecontainers . Tato nastavení se nevztahují na aplikace s podporou technologie sidecar.
    • DOCKER_REGISTRY_SERVER_URL
    • DOCKER_REGISTRY_SERVER_USERNAME
    • DOCKER_REGISTRY_SERVER_PASSWORD
    • WEBSITES_PORT

Jak kontejnery sajdkár zpracovávají interní komunikaci?

Kontejnery sajdkáře sdílejí stejného síťového hostitele jako hlavní kontejner, takže hlavní kontejner (a další kontejnery sajdkáře) se může spojit s libovolným portem na sajdkáře .localhost:<port> Příklad startup.sh používá localhost:4318 přístup k portu 4318 na sajdkáře kolektoru.

V dialogovém okně Upravit kontejner se v současné době služba App Service nepoužívá pole Port. Můžete ho použít jako součást metadat sajdkáře, například k označení portu, na kterém sajdkáře naslouchá.

Může pomocný kontejner přijímat internetové požadavky?

Ne. App Service směruje internetové požadavky pouze do hlavního kontejneru. Pro linuxové aplikace založené na kódu je integrovaný linuxový kontejner hlavním kontejnerem a všechny vedlejší kontejnery (sitecontainers) by měly být přidány s IsMain=false. Pro vlastní kontejnery by měl mít atribut každý z IsMain=false, kromě jednoho.

Další informace o konfiguraci IsMainnaleznete v tématu Microsoft.Web sites/sitecontainers.

Jak používat připojení svazků?

Funkce Připojení svazků umožňuje sdílet nepersistentní soubory a adresáře mezi kontejnery v rámci vaší webové aplikace.

Snímek obrazovky znázorňující konfiguraci připojení svazku pro sidecar kontejner.

Dílčí cesta svazku: Jedná se o logickou cestu k adresáři, která se automaticky vytvoří a není odkazována v rámci kontejneru. Kontejnery, které jsou nakonfigurované se stejnou podcestou svazku, mohou sdílet soubory a adresáře.

Cesta připojení kontejneru: To odpovídá cestě k adresáři, na kterou odkazujete v rámci kontejneru. Cesta připojení kontejneru je mapována na dílčí cestu svazku.

Předpokládejme například, že jsou nakonfigurovaná následující připojení svazků:

Název sajdkáru Podcesta svazku Cesta připojení kontejneru Jen pro čtení
Kontejner 1 /directory1/directory2 /container1Vol Nepravda
Kontejner 2 /directory1/directory2 /container2Vol Pravdivé
Kontejner 3 /directory1/directory2/directory3 /container3Vol Nepravda
Kontejner 4 /directory4 /container1Vol Nepravda

Na základě těchto nastavení platí následující podmínky:

  • Pokud Container1 vytvoří /container1Vol/myfile.txt, container2 může přečíst soubor přes /container2Vol/myfile.txt.
  • Pokud Container1 vytvoří /container1Vol/directory3/myfile.txt, může container2 přečíst soubor přes /container2Vol/directory3/myfile.txta Container3 může číst a zapisovat do souboru prostřednictvím /container3Vol/myfile.txt.
  • Container4 nesdílí připojení svazku společně s žádným z ostatních kontejnerů.

Poznámka:

U aplikací na kódu v systému Linux nemůže integrovaný linuxový kontejner používat připojování svazků.

Další materiály