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.

az extension add --name containerapp --upgrade

Teď, když je nainstalované aktuální rozšíření nebo modul, zaregistrujte obory Microsoft.App názvů a Microsoft.OperationalInsights obory názvů.

Poznámka:

Prostředky Azure Container Apps se migrovaly z Microsoft.Web oboru názvů do Microsoft.App oboru názvů. Další podrobnosti najdete v tématu Migrace oboru názvů z webu Microsoft.Web na Microsoft.App v březnu 2022 .

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 externalmož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 1souběž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é)

  1. Přihlaste se k portálu Azure.
  2. Na panelu Hledání v horní části zadejte my-container-app.
  3. Ve výsledcích hledání v části Prostředky vyberte my-container-app.
  4. Na navigačním panelu vlevo rozbalte položku Aplikace a vyberte Škálovat a repliky.
  5. Na stránce Škálování a repliky vyberte Repliky.
  6. Vaše aplikace kontejneru teď má spuštěnou více než jednu repliku.

Snímek obrazovky s replikami kontejnerové aplikace

Možná budete muset vybrat Aktualizovat , aby se zobrazily nové repliky.

  1. V navigačním panelu vlevo rozbalte položku Monitorování a vyberte Metriky.

  2. Na stránce Metriky nastavte metriku na Požadavky.

  3. Vyberte možnost Použít rozdělení.

  4. Rozbalte rozevírací seznam Hodnoty a zkontrolujte repliku.

  5. Kliknutím na modrou ikonu zaškrtnutí dokončíte úpravy rozdělení.

  6. Graf zobrazuje požadavky přijaté vaší aplikací kontejneru rozdělené podle repliky.

    Graf metrik kontejnerové aplikace zobrazující požadavky rozdělené podle repliky

  7. 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.

  8. Vyberte graf a přetažením zvýrazněte nedávné zvýšení požadavků přijatých vaší aplikací kontejneru.

Snímek obrazovky s grafem metrik kontejnerové aplikace zobrazující požadavky rozdělené podle repliky s měřítkem 30 minut a časovým intervalem jedné minuty

Následující snímek obrazovky ukazuje přiblížení způsobu rozdělení požadavků přijatých vaší aplikací kontejneru mezi repliky.

Snímek obrazovky s grafem metrik kontejnerové aplikace zobrazující žádosti rozdělené podle repliky v zobrazení s přiblížením

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

Tip

Máte problémy? Dejte nám vědět na GitHubu otevřením problému v úložišti Azure Container Apps.

Další kroky