Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku pokazano, jak dodać kontener zbierający OpenTelemetry jako kontener boczny do niestandardowej aplikacji kontenerowej w systemie Linux w usłudze Azure App Service.
Kontenery boczne w usłudze App Service umożliwiają wdrażanie dodatkowych usług i funkcji w aplikacjach Linux bez ścisłego wiązania ich z wbudowanym lub niestandardowym głównym kontenerem. Kontenery boczne działają obok głównego kontenera aplikacji w tym samym planie usługi App Service.
Możesz dodać do dziewięciu kontenerów pomocniczych dla każdej aplikacji Linux w usłudze App Service. Można na przykład dodać monitorowanie, rejestrowanie, konfigurację i usługi sieciowe jako kontenery przyczepki. Przyczepka modułu zbierającego OpenTelemetry jest jednym z przykładów monitorowania.
Aby uzyskać dostęp do własnych aplikacji systemu Linux, zobacz Samouczek: konfigurowanie kontenera przyczepki dla aplikacji systemu Linux w usłudze aplikacja systemu Azure Service.
Wymagania wstępne
-
Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Polecenia w tym samouczku można uruchamiać przy użyciu usługi Azure Cloud Shell— interaktywnej powłoki używanej w przeglądarce do pracy z usługami platformy Azure. Aby użyć usługi Cloud Shell:
Wybierz przycisk Uruchom Cloud Shell lub przejdź do https://shell.azure.com, aby otworzyć Cloud Shell w przeglądarce.
Zaloguj się do platformy Azure w razie potrzeby i upewnij się, że jesteś w środowisku Bash Cloud Shell w Azure.
Wybierz pozycję Kopiuj w dowolnym bloku kodu, wklej kod do usługi Cloud Shell i uruchom go.
Polecenia
azd
w tym samouczku korzystają z interfejsu wiersza polecenia dla deweloperów platformy Azure, narzędzia typu open source, które przyspiesza aprowizowanie i wdrażanie zasobów aplikacji na platformie Azure.
1. Konfigurowanie zasobów samouczka
Aby sklonować przykładowe repozytorium i utworzyć zasoby na potrzeby tego samouczka, uruchom następujące polecenia w usłudze Cloud Shell. Po wyświetleniu monitu wybierz subskrypcję platformy Azure i region świadczenia usługi Azure, którego chcesz użyć.
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
Polecenie azd provision
używa dołączonych szablonów do utworzenia grupy zasobów platformy Azure o nazwie my-sidecar-env_group
zawierającej następujące zasoby platformy Azure:
-
Rejestr kontenerów z dwoma repozytoriami, które mają następujące obrazy:
-
nginx
Obraz z modułem OpenTelemetry. -
otel-collector
Obraz modułu zbierającego OpenTelemetry skonfigurowany do eksportowania do usługi Azure Monitor.
-
- Obszar roboczy Log Analytics.
- Składnik usługi Application Insights.
-
Tożsamość zarządzana przypisana przez użytkownika o nazwie
id-my-sidecar-env_group
.
Po zakończeniu wdrażania powinny zostać wyświetlone dane wyjściowe podobne do następującego przykładu:
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
Skopiuj i zapisz wartość APPLICATIONINSIGHTS_CONNECTION_STRING
, aby użyć jej później w tym samouczku.
Wybierz link Open resource group in the portal
, aby otworzyć aprowizowaną grupę zasobów w witrynie Azure Portal.
2. Tworzenie aplikacji z obsługą przyczepki
W grupie zasobów w witrynie Azure Portal utwórz niestandardową aplikację kontenera systemu Linux z obsługą przyczepki i skonfiguruj główny kontener.
Na stronie grupy zasobów w witrynie Azure Portal wybierz pozycję Utwórz.
Na stronie Marketplace wyszukaj aplikację internetową, wybierz strzałkę w dół obok pozycji Utwórz na kafelku Aplikacja internetowa , a następnie wybierz pozycję Aplikacja internetowa.
Na karcie Podstawy na stronie Tworzenie aplikacji internetowej podaj następujące informacje:
- Nazwa: wprowadź unikatową nazwę aplikacji internetowej.
- Publikuj: wybierz pozycję Kontener.
- System operacyjny: wybierz pozycję Linux.
-
Region: wybierz ten sam region, który został wybrany dla elementu
azd provision
. - Plan systemu Linux: wybierz podany (nowy) plan usługi App Service.
Pozostaw pozostałe ustawienia tak, jak są, i wybierz kartę Kontener w górnej części strony.
Na karcie Kontener podaj następujące informacje:
- Obsługa przyczepki: ustaw wartość Konfiguracja rozszerzona z obsługą przyczepki.
- źródło obrazu: Wybierz Azure Container Registry.
- Nazwa: Upewnij się, że główny się pojawia.
-
Rejestr: wybierz rejestr utworzony przez program
azd provision
. - Uwierzytelnianie: wybierz pozycję Tożsamość zarządzana.
-
Tożsamość: wybierz tożsamość zarządzaną utworzoną przez
azd provision
. - Obraz: Wprowadź nginx.
- Tag: wprowadź najnowszy.
- Port: wprowadź wartość 80 , jeśli jeszcze nie ustawiono.
Uwaga
Te ustawienia są konfigurowane inaczej w aplikacjach z obsługą przyczepki niż w aplikacjach, które nie są włączone dla przyczepek. Aby uzyskać więcej informacji, zobacz Co to są różnice w przypadku kontenerów niestandardowych z obsługą przyczepki.
Wybierz pozycję Przejrzyj i utwórz, a po zakończeniu walidacji wybierz pozycję Utwórz.
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.
Na stronie aplikacji otwórz adres URL obok pozycji Domena domyślna, na nowej karcie przeglądarki,
https://<app-name>.azurewebsites.net
aby wyświetlić domyślną stronę serwera nginx .
3. Dodawanie kontenera przyczepki do aplikacji
Dodaj kontener sidecar do niestandardowej linuxowej aplikacji kontenerowej.
Na stronie aplikacji w witrynie Azure Portal wybierz pozycję Centrum wdrażania w obszarze Wdrożenie w menu nawigacji po lewej stronie. Na stronie Centrum wdrażania są wyświetlane wszystkie kontenery w aplikacji, obecnie tylko główny kontener.
Wybierz Dodaj>niestandardowy kontener.
W okienku Dodawanie kontenera wypełnij następujące informacje:
- Nazwa: wprowadź otel-collector.
- Źródło obrazu: wybierz pozycję Azure Container Registry.
-
Rejestr: wybierz rejestr utworzony przez
azd provision
program. - Uwierzytelnianie: wybierz pozycję Tożsamość zarządzana.
-
Tożsamość: w obszarze Przypisane przez użytkownika wybierz tożsamość zarządzaną utworzoną przez
azd provision
. - Obraz: Wprowadź otel-collector.
- Tag obrazu: wprowadź najnowszy.
- Port: wprowadź 4317.
Wybierz Zastosuj.
Istnieją teraz dwa kontenery w centrum wdrażania z etykietą Main i Sidecar. Aplikacja musi mieć jeden główny kontener i może mieć wiele kontenerów sidecar.
4. Konfigurowanie zmiennych środowiskowych
W przykładowym scenariuszu przyczepka otel-collector
jest skonfigurowana do eksportowania danych OpenTelemetry do usługi Azure Monitor przy użyciu parametrów połączenia jako zmiennej środowiskowej. Aby uzyskać więcej informacji, zobacz plik konfiguracji OpenTelemetry dla obrazu otel-collector.
Skonfiguruj zmienną środowiskową dla kontenera, konfigurując ustawienia aplikacji dla aplikacji. Ustawienia aplikacji są dostępne dla wszystkich kontenerów w aplikacji.
Na stronie aplikacji w witrynie Azure Portal wybierz pozycję Zmienne środowiskowe w obszarze Ustawienia w menu nawigacji po lewej stronie.
Na karcie Ustawienia aplikacji na stronie Zmienne środowiskowe wybierz pozycję Dodaj.
W okienku ustawienia Dodaj/Edytuj aplikację wprowadź następujące wartości:
- Nazwa: APPLICATIONINSIGHTS_CONNECTION_STRING
-
Wartość: wartość
APPLICATIONINSIGHTS_CONNECTION_STRING
z danych wyjściowych elementuazd provision
. Wartość tę znajdziesz również jako Parametry połączenia na stronie Podsumowanie zasobu usługi Application Insights grupy zasobów.
Wybierz pozycję Zastosuj, a następnie ponownie wybierz pozycję Zastosuj , a następnie wybierz pozycję Potwierdź. Ustawienie aplikacji APPLICATIONINSIGHTS_CONNECTION_STRING jest teraz wyświetlane na karcie Ustawienia aplikacji .
Uwaga
Niektóre ustawienia aplikacji nie mają zastosowania do aplikacji z obsługą przyczepki. Aby uzyskać więcej informacji, zobacz Co to są różnice w przypadku kontenerów niestandardowych z obsługą przyczepki.
5. Sprawdź w usłudze Application Insights
Przyczepka otel-collector
powinna teraz eksportować dane do usługi Application Insights.
Przejdź do aplikacji na nowej karcie przeglądarki i odśwież stronę kilka razy, aby wygenerować niektóre żądania internetowe.
Na stronie grupy zasobów w witrynie Azure Portal wybierz zasób usługi Application Insights . Na stronie Przegląd usługi Application Insights powinny być teraz widoczne pewne dane na wykresach domyślnych.
Uwaga
W tym typowym scenariuszu monitorowania usługa Application Insights jest tylko jednym z obiektów docelowych OpenTelemetry, których można użyć, takich jak Jaeger, Prometheus i Zipkin.
6. Czyszczenie zasobów
Jeśli nie potrzebujesz już środowiska utworzonego na potrzeby tego samouczka, możesz usunąć grupę zasobów, która usuwa usługę App Service i wszystkie powiązane zasoby. Uruchom następujące polecenie w sklonowanym repozytorium w usłudze Cloud Shell.
azd down
Najczęściej zadawane pytania
- Jakie są różnice w przypadku kontenerów niestandardowych z obsługą przyczepki?
- Jak kontenery przyczepki obsługują komunikację wewnętrzną?
- Czy kontener przyczepki może odbierać żądania internetowe?
- Jak używać montowania woluminów?
Jakie są różnice w przypadku kontenerów niestandardowych z obsługą przyczepki?
Aplikacje obsługujące sidecar są konfigurowane inaczej niż aplikacje, które nie obsługują sidecar.
- Aplikacje z funkcją Sidecar są oznaczane za pomocą
LinuxFxVersion=sitecontainers
i konfigurowane z zasobamisitecontainers
. - Aplikacje, które nie mają aktywowanego trybu sidecar, konfigurują nazwę kontenera i typ bezpośrednio za pomocą
LinuxFxVersion=DOCKER|<image-details>
.
Aby uzyskać więcej informacji, zobacz az webapp config set --linux-fx-version.
Aplikacje, które nie są kompatybilne z architekturą sidecar, konfigurują główny kontener przy użyciu ustawień aplikacji, takich jak:
DOCKER_REGISTRY_SERVER_URL
DOCKER_REGISTRY_SERVER_USERNAME
DOCKER_REGISTRY_SERVER_PASSWORD
WEBSITES_PORT
Te ustawienia nie mają zastosowania do aplikacji z obsługą przyczepki.
Jak kontenery przyczepki obsługują komunikację wewnętrzną?
Kontenery pomocnicze współdzielą tę samą przestrzeń sieciową co główny kontener, więc główny kontener i inne kontenery pomocnicze mogą uzyskać dostęp do dowolnego portu na kontenerze pomocniczym za pomocą localhost:<port>
. Przykładowy startup.sh używa localhost:4318
do uzyskiwania dostępu do portu 4318 na kontenerze pomocniczym otel-collector.
W oknie dialogowym Edytowanie kontenera ustawienie Port nie jest obecnie używane przez usługę App Service. Można go użyć w ramach metadanych przyczepki, takich jak wskazanie, na którym porcie nasłuchuje przyczepka.
Czy kontener przyczepki może odbierać żądania internetowe?
Nie. Usługa App Service kieruje żądania internetowe tylko do głównego kontenera. W przypadku aplikacji Linux opartych na kodzie, wbudowany kontener Linux jest głównym kontenerem, a każdy sidecar sitecontainers
powinien zostać dodany przy użyciu IsMain=false
.
W przypadku kontenerów niestandardowych wszystkie z wyjątkiem jednego z elementów sitecontainers
powinny mieć wartość IsMain=false
. Aby uzyskać więcej informacji na temat konfigurowania IsMain
, zobacz Microsoft.Web sites/sitecontainers.
Jak korzystać z montowania woluminów?
Funkcja montowania woluminów umożliwia udostępnianie nietrwałych plików i katalogów między kontenerami w aplikacji internetowej. Aby dodać lub skonfigurować montowanie woluminów, użyj montowania woluminów na stronie Dodawanie kontenera lub Edytowanie kontenera.
- Ścieżka podrzędna woluminu to automatycznie utworzona ścieżka katalogu logicznego, do której nie odwołuje się kontener. Kontenery skonfigurowane za pomocą tej samej ścieżki podrzędnej woluminu mogą udostępniać pliki i katalogi.
- Ścieżka montowania kontenera to ścieżka katalogu, do której odwołujesz się w kontenerze. Ścieżka instalacji kontenera jest mapowana na ścieżkę podrzędną woluminu.
Załóżmy na przykład, że konfigurujesz następujące punkty montowania woluminów:
Nazwa przyczepki | Ścieżka podrzędna woluminu | Ścieżka instalacji kontenera | Tylko do odczytu |
---|---|---|---|
Kontener1 | /directory1/directory2 | /container1Vol | Nieprawda |
Kontener2 | /directory1/directory2 | /container2Vol | Prawda |
Kontener3 | /directory1/directory2/directory3 | /container3Vol | Nieprawda |
Kontener 4 | /directory4 | /container1Vol | Nieprawda |
Na podstawie tych ustawień obowiązują następujące warunki:
- Jeśli kontener1 tworzy /container1Vol/myfile.txt, kontener2 może odczytać plik za pośrednictwem /container2Vol/myfile.txt.
- Jeśli kontener1 tworzy /container1Vol/directory3/myfile.txt, kontener2 może odczytać plik za pośrednictwem /container2Vol/directory3/myfile.txt, a kontener3 może odczytywać i zapisywać w pliku za pośrednictwem /container3Vol/myfile.txt.
- Kontener4 nie współdzieli zamontowanego woluminu z żadnym z innych kontenerów.
Uwaga
W przypadku aplikacji systemu Linux opartych na kodzie wbudowany kontener systemu Linux nie może używać instalacji woluminów.