Samouczek: skalowanie aplikacji kontenera

Usługa Azure Container Apps zarządza automatycznym skalowaniem w poziomie za pomocą zestawu reguł skalowania deklaratywnego. W miarę skalowania aplikacji kontenera nowe wystąpienia aplikacji kontenera są tworzone na żądanie. Te wystąpienia są nazywane replikami.

W tym samouczku dodasz regułę skalowania HTTP do aplikacji kontenera i zobaczysz, jak aplikacja jest skalowana.

Wymagania wstępne

Wymaganie Instrukcje
Konto platformy Azure Jeśli nie masz konta platformy Azure, możesz go utworzyć bezpłatnie.

Aby kontynuować, musisz mieć uprawnienie Współautor w subskrypcji platformy Azure. Aby uzyskać szczegółowe informacje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal .
Konto usługi GitHub Pobierz go bezpłatnie.
Interfejs wiersza polecenia platformy Azure Zainstaluj interfejs wiersza polecenia platformy Azure.

Ustawienia

Aby zalogować się do platformy Azure z poziomu interfejsu wiersza polecenia, uruchom następujące polecenie i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania.

az login

Aby upewnić się, że używasz najnowszej wersji interfejsu wiersza polecenia, uruchom polecenie uaktualniania.

az upgrade

Następnie zainstaluj lub zaktualizuj rozszerzenie usługi Azure Container Apps dla interfejsu wiersza polecenia.

az extension add --name containerapp --upgrade

Teraz, po zainstalowaniu bieżącego rozszerzenia lub modułu Microsoft.App , zarejestruj przestrzenie nazw i Microsoft.OperationalInsights .

Uwaga

Zasoby usługi Azure Container Apps zostały zmigrowane z Microsoft.Web przestrzeni nazw do Microsoft.App przestrzeni nazw. Aby uzyskać więcej informacji, zobacz Migracja przestrzeni nazw z witryny Microsoft.Web do Microsoft.App w marcu 2022 r.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Tworzenie i wdrażanie aplikacji kontenera

Utwórz i wdróż aplikację kontenera za containerapp up pomocą polecenia . To polecenie tworzy:

  • Grupa zasobów
  • Środowisko usługi Container Apps
  • Obszar roboczy usługi Log Analytics

Jeśli którykolwiek z tych zasobów już istnieje, polecenie używa istniejących zasobów, a nie tworzenia nowych.

Na koniec polecenie tworzy i wdraża aplikację kontenera przy użyciu publicznego obrazu kontenera.

az containerapp up \
  --name my-container-app \
  --resource-group my-container-apps \
  --location centralus \
  --environment 'my-container-apps' \
  --image mcr.microsoft.com/k8se/quickstart:latest \
  --target-port 8080 \
  --ingress external \
  --query properties.configuration.ingress.fqdn \

Uwaga

Upewnij się, że wartość parametru --image jest w małym przypadku.

Ustawiając wartość --ingressexternal, aplikacja kontenera jest dostępna dla żądań publicznych.

Polecenie up zwraca w pełni kwalifikowaną nazwę domeny (FQDN) dla aplikacji kontenera. Skopiuj tę nazwę FQDN do pliku tekstowego. Użyjesz go w sekcji Wysyłanie żądań . Nazwa FQDN wygląda jak w poniższym przykładzie:

https://my-container-app.icydune-96848328.centralus.azurecontainerapps.io

Dodawanie reguły skalowania

Dodaj regułę skalowania HTTP do aplikacji kontenera az containerapp update , uruchamiając polecenie .

az containerapp update \
	--name my-container-app \
	--resource-group my-container-apps \
    --scale-rule-name my-http-scale-rule \
    --scale-rule-http-concurrency 1

To polecenie dodaje regułę skalowania HTTP do aplikacji kontenera o nazwie my-http-scale-rule i ustawieniu współbieżności .1 Jeśli aplikacja odbiera więcej niż jedno współbieżne żądanie HTTP, środowisko uruchomieniowe tworzy repliki aplikacji do obsługi żądań.

Polecenie update zwraca nową konfigurację jako odpowiedź JSON, aby sprawdzić, czy żądanie powiodło się.

Uruchamianie danych wyjściowych dziennika

Możesz obserwować efekty skalowania aplikacji, wyświetlając dzienniki wygenerowane przez środowisko uruchomieniowe usługi Container Apps. Użyj polecenia , az containerapp logs show aby rozpocząć nasłuchiwanie wpisów dziennika.

az containerapp logs show \
	--name my-container-app \
	--resource-group my-container-apps \
	--type=system \
	--follow=true

Polecenie show zwraca wpisy z dzienników systemowych dla aplikacji kontenera w czasie rzeczywistym. Możesz oczekiwać odpowiedzi podobnej do następującego przykładu:

{
	"TimeStamp":"2023-08-01T16:49:03.02752",
	"Log":"Connecting to the container 'my-container-app'..."
}
{
	"TimeStamp":"2023-08-01T16:49:03.04437",
	"Log":"Successfully Connected to container:
	'my-container-app' [Revision: 'my-container-app--9uj51l6',
	Replica: 'my-container-app--9uj51l6-5f96557ffb-5khg9']"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9480811+00:00",
	"Log":"Microsoft.Hosting.Lifetime[14]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9481264+00:00",
	"Log":"Now listening on: http://[::]:8080"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9490917+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9491036+00:00",
	"Log":"Application started. Press Ctrl+C to shut down."
}
{
	"TimeStamp":"2023-08-01T16:47:31.949723+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497292+00:00",
	"Log":"Hosting environment: Production"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497325+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497367+00:00",
	"Log":"Content root path: /app/"
}

Aby uzyskać więcej informacji, zobacz az containerapp logs.

Wysyłanie żądań

Otwórz nową powłokę powłoki bash. Uruchom następujące polecenie, zastępując <YOUR_CONTAINER_APP_FQDN> element w pełni kwalifikowaną nazwą domeny dla aplikacji kontenera zapisanej w sekcji Tworzenie i wdrażanie aplikacji kontenera.

seq 1 50 | xargs -Iname -P10 curl "<YOUR_CONTAINER_APP_FQDN>"

Te polecenia wysyłają 50 żądań do aplikacji kontenera w równoczesnych partiach 10 żądań.

Polecenie lub argument opis
seq 1 50 Generuje sekwencję liczb z zakresu od 1 do 50.
| Operator potoku wysyła sekwencję do xargs polecenia .
xargs Przebiegi curl z określonym adresem URL
-Iname Działa jako symbol zastępczy danych wyjściowych seq. Ten argument uniemożliwia wysyłanie wartości zwracanej do curl polecenia .
curl Wywołuje podany adres URL.
-P10 Nakazuje xargs uruchamianie maksymalnie 10 procesów naraz.

Aby uzyskać więcej informacji, zobacz dokumentację dotyczącą:

W pierwszej powłoce, w której uruchomiono az containerapp logs show polecenie, dane wyjściowe zawierają teraz co najmniej jeden wpis dziennika, jak pokazano poniżej.

{
	"TimeStamp":"2023-08-01 18:09:52 +0000 UTC",
	"Type":"Normal",
	"ContainerAppName":"my-container-app",
	"RevisionName":"my-container-app--9uj51l6",
	"ReplicaName":"my-container-app--9uj51l6-5f96557ffb-f795d",
	"Msg":"Replica 'my-container-app--9uj51l6-5f96557ffb-f795d' has been scheduled to run on a node.",
	"Reason":"AssigningReplica",
	"EventSource":"ContainerAppController",
	"Count":0
}

Wyświetlanie skalowania w witrynie Azure Portal (opcjonalnie)

  1. Zaloguj się w witrynie Azure Portal.
  2. Na pasku wyszukiwania u góry wprowadź ciąg my-container-app.
  3. W wynikach wyszukiwania w obszarze Zasoby wybierz pozycję my-container-app.
  4. Na pasku nawigacyjnym po lewej stronie rozwiń węzeł Aplikacja i wybierz pozycję Skaluj i repliki.
  5. Na stronie Skalowanie i repliki wybierz pozycję Repliki.
  6. Aplikacja kontenera ma teraz uruchomioną więcej niż jedną replikę.

Zrzut ekranu przedstawiający repliki aplikacji kontenera.

Może być konieczne wybranie pozycji Odśwież , aby wyświetlić nowe repliki.

  1. Na pasku nawigacyjnym po lewej stronie rozwiń węzeł Monitorowanie i wybierz pozycję Metryki.

  2. Na stronie Metryki ustaw wartość Metryka na Żądania.

  3. Wybierz pozycję Zastosuj podział.

  4. Rozwiń listę rozwijaną Wartości i zaznacz pozycję Replika.

  5. Wybierz niebieską ikonę znacznika wyboru, aby zakończyć edytowanie podziału.

  6. Wykres przedstawia żądania odebrane przez aplikację kontenera podzielone przez replikę.

    Wykres metryk aplikacji kontenera przedstawiający żądania podzielone przez replikę.

  7. Domyślnie skala grafu jest ustawiona na ostatnie 24 godziny, a stopień szczegółowości czasu wynosi 15 minut. Wybierz skalę i zmień ją na ostatnie 30 minut, a stopień szczegółowości czasu to jedna minuta. Naciśnij przycisk Zastosuj.

  8. Wybierz wykres i przeciągnij, aby wyróżnić ostatni wzrost liczby żądań odebranych przez aplikację kontenera.

Zrzut ekranu przedstawiający wykres metryk aplikacji kontenera przedstawiający żądania podzielone według repliki z skalę 30 minut i stopień szczegółowości czasu jednej minuty.

Poniższy zrzut ekranu przedstawia powiększy widok sposobu dzielenia żądań odebranych przez aplikację kontenera między repliki.

Zrzut ekranu przedstawiający wykres metryk aplikacji kontenera przedstawiający żądania podzielone według repliki w widoku powiększenia.

Czyszczenie zasobów

Jeśli nie zamierzasz nadal korzystać z tej aplikacji, uruchom następujące polecenie, aby usunąć grupę zasobów wraz ze wszystkimi zasobami utworzonymi w tym samouczku.

Uwaga

Następujące polecenie usuwa określoną grupę zasobów i wszystkie zawarte w niej zasoby. Jeśli zasoby spoza zakresu tego samouczka istnieją w określonej grupie zasobów, zostaną również usunięte.

az group delete --name my-container-apps

Napiwek

Masz problemy? Poinformuj nas o usłudze GitHub, otwierając problem w repozytorium usługi Azure Container Apps.

Następne kroki