Samouczek: konfigurowanie kontenera przyczepki dla kontenera niestandardowego w usłudze aplikacja systemu Azure Service
W tym samouczku dodasz moduł zbierający OpenTelemetry jako kontener przyczepki do niestandardowej aplikacji kontenera systemu Linux w usłudze aplikacja systemu Azure Service. 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.
W usłudze aplikacja systemu Azure można dodać do dziewięciu kontenerów przyczepki dla każdej niestandardowej aplikacji kontenera z obsługą przyczepki. Kontenery przyczepki umożliwiają wdrażanie dodatkowych usług i funkcji w aplikacji kontenera bez ścisłego sprzężenia ich z głównym kontenerem aplikacji. 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 takich przykładów monitorowania.
Aby uzyskać więcej informacji na temat kontenera bocznego w usłudze App Service, zobacz:
- Wprowadzenie przyczepek dla usługi aplikacja systemu Azure dla systemu Linux: teraz ogólnie dostępne
- Ogłoszenie ogólnej dostępności rozszerzalności przyczepki w usłudze aplikacja systemu Azure Service
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
1. Konfigurowanie wymaganych zasobów
Najpierw utworzysz zasoby, których używa samouczek. Są one używane w tym konkretnym scenariuszu i nie są wymagane w przypadku kontenerów przyczepki w ogóle.
W usłudze Azure Cloud Shell uruchom następujące polecenia:
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 wyświetleniu monitu podaj odpowiednią subskrypcję i region. Na przykład:
- Subskrypcja: Twoja subskrypcja.
- Region: (Europa) Europa Zachodnia.
Po zakończeniu wdrażania powinny zostać wyświetlone następujące dane wyjściowe:
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=... Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
Otwórz link grupy zasobów na karcie przeglądarki. Później musisz użyć parametry połączenia.
Uwaga
azd provision
używa dołączonych szablonów, aby utworzyć następujące zasoby platformy Azure:- Grupa zasobów o nazwie my-sidecar-env_group.
- Rejestr kontenerów z wdrożonym dwoma obrazami:
- Obraz Nginx z modułem OpenTelemetry.
- Obraz modułu zbierającego OpenTelemetry skonfigurowany do eksportowania do usługi Azure Monitor.
- Obszar roboczy usługi Log Analytics
- Składnik usługi Application Insights
2. Tworzenie aplikacji z obsługą przyczepki
Na stronie zarządzania grupy zasobów wybierz pozycję Utwórz.
Wyszukaj aplikację internetową, a następnie wybierz strzałkę w dół w obszarze Utwórz i wybierz pozycję Aplikacja internetowa.
Skonfiguruj panel Podstawowe w następujący sposób:
- Nazwa: unikatowa nazwa
- Publikowanie: kontener
- System operacyjny: Linux
- Region: ten sam region co wybrany za pomocą polecenia
azd provision
- Plan systemu Linux: nowy plan usługi App Service
Wybierz pozycję Kontener. Skonfiguruj panel Kontener w następujący sposób:
- Obsługa przyczepki: włączone
- Źródło obrazu: Azure Container Registry
- Rejestr: rejestr utworzony przez
azd provision
- Obraz: nginx
- Tag: latest
- Port: 80
Uwaga
Te ustawienia są konfigurowane inaczej w aplikacjach z obsługą przyczepki. Aby uzyskać więcej informacji, zobacz Różnice w aplikacjach z obsługą przyczepki.
Wybierz pozycję Przeglądanie i tworzenie, a następnie wybierz pozycję Utwórz.
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.
Na nowej karcie przeglądarki przejdź do
https://<app-name>.azurewebsites.net
strony i zobacz domyślną stronę Nginx.
3. Dodawanie kontenera przyczepki
W tej sekcji dodasz kontener przyczepki do niestandardowej aplikacji kontenera.
Na stronie zarządzania aplikacją z menu po lewej stronie wybierz pozycję Centrum wdrażania.
W centrum wdrażania są wyświetlane wszystkie kontenery w aplikacji. W tej chwili ma on tylko główny kontener.
Wybierz pozycję Dodaj i skonfiguruj nowy kontener w następujący sposób:
- Nazwa: otel-collector
- Źródło obrazu: Azure Container Registry
- Rejestr: rejestr utworzony przez
azd provision
- Obraz: otel-collector
- Tag: latest
Wybierz Zastosuj.
Powinny być teraz widoczne dwa kontenery w centrum wdrażania. Główny kontener jest oznaczony jako Main, a kontener przyczepki jest oznaczony jako Przyczepka. Każda aplikacja musi mieć jeden główny kontener, ale może mieć wiele kontenerów przyczepki.
4. Konfigurowanie zmiennych środowiskowych
W przykładowym scenariuszu przyczepka modułu zbierającego otel jest skonfigurowana do eksportowania danych OpenTelemetry do usługi Azure Monitor, ale wymaga parametry połączenia jako zmiennej środowiskowej (zobacz plik konfiguracji OpenTelemetry dla obrazu modułu zbierającego otel-collector).
Zmienne środowiskowe dla kontenerów, takich jak dowolna aplikacja usługi App Service, konfigurując ustawienia aplikacji. Ustawienia aplikacji są dostępne dla wszystkich kontenerów w aplikacji.
Na stronie zarządzania aplikacją z menu po lewej stronie wybierz pozycję Zmienne środowiskowe.
Dodaj ustawienie aplikacji, wybierając pozycję Dodaj i skonfiguruj je w następujący sposób:
- Nazwa: APPLICATIONINSIGHTS_CONNECTION_STRING
- Wartość: parametry połączenia w danych wyjściowych elementu
azd provision
. Jeśli sesja usługi Cloud Shell zostanie utracona, możesz ją również znaleźć na stronie Przegląd zasobu usługi Application Insights w obszarze Parametry połączenia.
Wybierz pozycję Zastosuj, a następnie pozycję Zastosuj, a następnie potwierdź.
Uwaga
Niektóre ustawienia aplikacji nie mają zastosowania do aplikacji z obsługą przyczepki. Aby uzyskać więcej informacji, zobacz Różnice w aplikacjach z obsługą przyczepki
5. Sprawdź w usłudze Application Insights
Przyczepka modułu zbierającego otel powinna teraz eksportować dane do usługi Application Insights.
Wróć do karty
https://<app-name>.azurewebsites.net
przeglądarki dla polecenia , odśwież stronę kilka razy, aby wygenerować niektóre żądania internetowe.Wróć do strony przeglądu grupy zasobów, a następnie wybierz zasób usługi Application Insights. Powinny być teraz widoczne pewne dane na wykresach domyślnych.
Uwaga
W tym bardzo 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.
Czyszczenie zasobów
Gdy środowisko nie jest już potrzebne, możesz usunąć grupę zasobów, usługę App Service i wszystkie powiązane zasoby. Wystarczy uruchomić to polecenie w usłudze Cloud Shell w sklonowanym repozytorium:
azd down
Jak kontenery przyczepki obsługują komunikację wewnętrzną?
Kontenery przyczepki współdzielą ten sam host sieciowy co główny kontener, więc główny kontener (i inne kontenery przyczepki) może dotrzeć do dowolnego portu w przyczepce za pomocą polecenia localhost:<port>
. W ten sposób kontener Nginx wysyła dane do przyczepki (zobacz konfigurację modułu OpenTelemetry dla przykładowego obrazu Nginx).
W oknie dialogowym Edytowanie kontenera okno 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.
Różnice w aplikacjach z obsługą przyczepki
Aplikacje z obsługą przyczepki są konfigurowane inaczej niż aplikacje, które nie są włączone w przyczepce. W szczególności nie konfigurujesz głównego kontenera i przyczepek z ustawieniami aplikacji, ale bezpośrednio we właściwościach zasobu. Te ustawienia aplikacji nie mają zastosowania do aplikacji z obsługą przyczepki:
- Ustawienia uwierzytelniania rejestru:
DOCKER_REGISTRY_SERVER_URL
,DOCKER_REGISTRY_SERVER_USERNAME
iDOCKER_REGISTRY_SERVER_PASSWORD
. - Port kontenera:
WEBSITES_PORT