Kurz: Škálování aplikace typu kontejner
Azure Container Apps spravuje automatické horizontální škálování prostřednictvím sady deklarativních pravidel škálování. Při horizontálním navýšení kapacity aplikace typu kontejner se vytvoří nové instance aplikace kontejneru na vyžádání. Tyto instance se označují jako repliky.
V tomto kurzu přidáte do kontejnerové aplikace pravidlo škálování HTTP a zjistíte, jak se vaše aplikace škáluje.
Požadavky
Požadavek | Pokyny |
---|---|
Účet Azure | Pokud účet Azure nemáte, můžete si ho zdarma vytvořit. Abyste mohli pokračovat, potřebujete oprávnění Přispěvatel k předplatnému Azure. Podrobnosti najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal . |
Účet GitHubu | Získejte ho zdarma. |
Azure CLI | Nainstalujte rozhraní příkazového řádku Azure CLI. |
Nastavení
Pokud se chcete přihlásit k Azure z rozhraní příkazového řádku, spusťte následující příkaz a podle pokynů dokončete proces ověřování.
az login
Pokud chcete zajistit, že používáte nejnovější verzi rozhraní příkazového řádku, spusťte příkaz upgrade.
az upgrade
Dále nainstalujte nebo aktualizujte rozšíření Azure Container Apps pro rozhraní příkazového řádku.
Pokud se při spouštění az containerapp
příkazů v Azure CLI nebo rutinách Az.App
z modulu v Azure PowerShellu zobrazí chyby týkající se chybějících parametrů, ujistěte se, že máte nainstalovanou nejnovější verzi rozšíření Azure Container Apps.
az extension add --name containerapp --upgrade
Poznámka:
Od května 2024 už rozšíření Azure CLI ve výchozím nastavení nepovolují funkce ve verzi Preview. Pokud chcete získat přístup k funkcím Container Apps ve verzi Preview, nainstalujte rozšíření Container Apps pomocí --allow-preview true
nástroje .
az extension add --name containerapp --upgrade --allow-preview true
Teď, když je nainstalované aktuální rozšíření nebo modul, zaregistrujte obory Microsoft.App
názvů a Microsoft.OperationalInsights
obory názvů.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Vytvoření a nasazení aplikace typu kontejner
Pomocí příkazu vytvořte a nasaďte aplikaci kontejneru containerapp up
. Tento příkaz vytvoří:
- Skupina prostředků
- Prostředí Container Apps
- Pracovní prostor služby Log Analytics
Pokud některý z těchto prostředků již existuje, příkaz místo vytváření nových prostředků použije existující prostředky.
Nakonec příkaz vytvoří a nasadí aplikaci kontejneru pomocí veřejné image kontejneru.
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 \
Poznámka:
Ujistěte se, že hodnota parametru --image
je malá písmena.
Nastavením této external
možnosti --ingress
zpřístupníte aplikaci kontejneru pro veřejné požadavky.
Příkaz up
vrátí plně kvalifikovaný název domény (FQDN) pro aplikaci kontejneru. Zkopírujte tento plně kvalifikovaný název domény do textového souboru. Použijete ho v části Odeslat žádosti . Váš plně kvalifikovaný název domény vypadá jako v následujícím příkladu:
https://my-container-app.icydune-96848328.centralus.azurecontainerapps.io
Přidání pravidla škálování
Spuštěním az containerapp update
příkazu přidejte pravidlo škálování HTTP do kontejnerové aplikace.
az containerapp update \
--name my-container-app \
--resource-group my-container-apps \
--scale-rule-name my-http-scale-rule \
--scale-rule-http-concurrency 1
Tento příkaz přidá do aplikace kontejneru pravidlo škálování HTTP s názvem my-http-scale-rule
a nastavením 1
souběžnosti . Pokud vaše aplikace obdrží více než jeden souběžný požadavek HTTP, modul runtime vytvoří repliky vaší aplikace pro zpracování požadavků.
Příkaz update
vrátí novou konfiguraci jako odpověď JSON, aby ověřil, že váš požadavek byl úspěšný.
Spuštění výstupu protokolu
Účinky škálování aplikace můžete sledovat zobrazením protokolů generovaných modulem runtime Container Apps. az containerapp logs show
Pomocí příkazu začněte naslouchat položkám protokolu.
az containerapp logs show \
--name my-container-app \
--resource-group my-container-apps \
--type=system \
--follow=true
Příkaz show
vrátí položky ze systémových protokolů pro vaši aplikaci kontejneru v reálném čase. Můžete očekávat odpověď jako v následujícím příkladu:
{
"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/"
}
Další informace najdete v tématu az containerapp logs.
Odesílání požadavků
Otevřete nové prostředí Bash. Spusťte následující příkaz a nahraďte <YOUR_CONTAINER_APP_FQDN>
plně kvalifikovaným názvem domény aplikace kontejneru, kterou jste uložili z části Vytvořit a nasadit aplikaci kontejneru.
seq 1 50 | xargs -Iname -P10 curl "<YOUR_CONTAINER_APP_FQDN>"
Tyto příkazy odesílají do aplikace kontejneru 50 požadavků v souběžných dávkách 10 požadavků.
Příkaz nebo argument | Popis |
---|---|
seq 1 50 |
Vygeneruje sekvenci čísel od 1 do 50. |
| |
Operátor kanálu odešle sekvenci do xargs příkazu. |
xargs |
Spustí curl se se zadanou adresou URL. |
-Iname |
Slouží jako zástupný symbol pro výstup funkce seq . Tento argument zabraňuje odeslání návratové hodnoty do curl příkazu. |
curl |
Zavolá danou adresu URL. |
-P10 |
xargs Dává pokyn, aby najednou běžel až 10 procesů. |
Další informace najdete v dokumentaci pro:
V prvním prostředí, kde jste spustili az containerapp logs show
příkaz, teď výstup obsahuje jednu nebo více položek protokolu, jako je následující.
{
"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
}
Zobrazení škálování na webu Azure Portal (volitelné)
- Přihlaste se k portálu Azure.
- Na panelu Hledání v horní části zadejte my-container-app.
- Ve výsledcích hledání v části Prostředky vyberte my-container-app.
- Na navigačním panelu vlevo rozbalte položku Aplikace a vyberte Škálovat a repliky.
- Na stránce Škálování a repliky vyberte Repliky.
- Vaše aplikace kontejneru teď má spuštěnou více než jednu repliku.
Možná budete muset vybrat Aktualizovat , aby se zobrazily nové repliky.
V navigačním panelu vlevo rozbalte položku Monitorování a vyberte Metriky.
Na stránce Metriky nastavte metriku na Požadavky.
Vyberte možnost Použít rozdělení.
Rozbalte rozevírací seznam Hodnoty a zkontrolujte repliku.
Kliknutím na modrou ikonu zaškrtnutí dokončíte úpravy rozdělení.
Graf zobrazuje požadavky přijaté vaší aplikací kontejneru rozdělené podle repliky.
Ve výchozím nastavení je měřítko grafu nastavené na posledních 24 hodin s časovým intervalem 15 minut. Vyberte měřítko a změňte ho na posledních 30 minut s časovým intervalem jedné minuty. Vyberte tlačítko Použít.
Vyberte graf a přetažením zvýrazněte nedávné zvýšení požadavků přijatých vaší aplikací kontejneru.
Následující snímek obrazovky ukazuje přiblížení způsobu rozdělení požadavků přijatých vaší aplikací kontejneru mezi repliky.
Vyčištění prostředků
Pokud tuto aplikaci nebudete dál používat, spuštěním následujícího příkazu odstraňte skupinu prostředků spolu se všemi prostředky vytvořenými v tomto kurzu.
Upozornění
Následující příkaz odstraní zadanou skupinu prostředků a všechny prostředky obsažené v ní. Pokud prostředky mimo rozsah tohoto kurzu existují v zadané skupině prostředků, odstraní se také.
az group delete --name my-container-apps