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.
Jeśli podczas uruchamiania az containerapp
poleceń w interfejsie wiersza polecenia platformy Azure lub poleceniach cmdlet z modułu Az.App
w programie Azure PowerShell wystąpią błędy dotyczące brakujących parametrów, upewnij się, że masz zainstalowaną najnowszą wersję rozszerzenia Azure Container Apps.
az extension add --name containerapp --upgrade
Uwaga
Począwszy od maja 2024 r., rozszerzenia interfejsu wiersza polecenia platformy Azure domyślnie nie włączają funkcji w wersji zapoznawczej. Aby uzyskać dostęp do funkcji usługi Container Apps w wersji zapoznawczej, zainstaluj rozszerzenie Container Apps za pomocą polecenia --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Teraz, po zainstalowaniu bieżącego rozszerzenia lub modułu Microsoft.App
, zarejestruj przestrzenie nazw i Microsoft.OperationalInsights
.
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ść --ingress
external
, 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)
- Zaloguj się w witrynie Azure Portal.
- Na pasku wyszukiwania u góry wprowadź ciąg my-container-app.
- W wynikach wyszukiwania w obszarze Zasoby wybierz pozycję my-container-app.
- Na pasku nawigacyjnym po lewej stronie rozwiń węzeł Aplikacja i wybierz pozycję Skaluj i repliki.
- Na stronie Skalowanie i repliki wybierz pozycję Repliki.
- Aplikacja kontenera ma teraz uruchomioną więcej niż jedną replikę.
Może być konieczne wybranie pozycji Odśwież , aby wyświetlić nowe repliki.
Na pasku nawigacyjnym po lewej stronie rozwiń węzeł Monitorowanie i wybierz pozycję Metryki.
Na stronie Metryki ustaw wartość Metryka na Żądania.
Wybierz pozycję Zastosuj podział.
Rozwiń listę rozwijaną Wartości i zaznacz pozycję Replika.
Wybierz niebieską ikonę znacznika wyboru, aby zakończyć edytowanie podziału.
Wykres przedstawia żądania odebrane przez aplikację kontenera podzielone przez replikę.
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.
Wybierz wykres i przeciągnij, aby wyróżnić ostatni wzrost liczby żądań odebranych przez aplikację kontenera.
Poniższy zrzut ekranu przedstawia powiększy widok sposobu dzielenia żądań odebranych przez aplikację kontenera między repliki.
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.