Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
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
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/...
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:- Skupina prostředků s názvem my-sidecar-env_group.
- Registr kontejneru se dvěma nasazenými imagemi:
- Obrázek Nginx s modulem OpenTelemetry.
- Image kolektoru OpenTelemetry nakonfigurovaná pro export do služby Azure Monitor.
- Pracovní prostor služby Log Analytics
- Komponenta Application Insights
2. Vytvoření aplikace s podporou sajdkáře
Na stránce pro správu skupiny prostředků vyberte Vytvořit.
Vyhledejte webovou aplikaci a pak vyberte šipku dolů u možnosti Vytvořit a vyberte Web App.
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
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
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?.
Vyberte Zkontrolovat a vytvořit a pak Vytvořit.
Po dokončení nasazení vyberte Přejít k prostředku.
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.
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.
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ší
Vyberte Použít.
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.
Na stránce správy aplikace v nabídce vlevo vyberte Proměnné prostředí.
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.
Vyberte Použít, pak Použít a pak Potvrdit.
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.
Zpátky na kartě
https://<app-name>.azurewebsites.net
prohlížeče aktualizujte stránku několikrát, aby se vygenerovaly některé webové požadavky.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.
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 u vlastních kontejnerů s podporou sidecar?
- Jak kontejnery sajdkár zpracovávají interní komunikaci?
- Může kontejner sidecar přijímat internetové požadavky?
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 IsMain
naleznete 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.
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ů.