Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 z Az.App modulu v 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 truená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í kontejnerovou aplikaci pomocí veřejného obrazu kontejneru, mcr.microsoft.com/dotnet/samples:aspnetapp. Tato image slouží k aktivaci pravidel škálování, která vytvoříte v tomto článku. K dokončení tohoto postupu nemusíte vědět ani používat .NET.
az containerapp up \
--name my-container-app \
--resource-group my-container-apps \
--location centralus \
--environment 'my-container-apps' \
--image mcr.microsoft.com/dotnet/samples:aspnetapp \
--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 --ingressmožnosti external 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 \
--min-replicas 1 \
--max-replicas 10 \
--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://[::]:80"
}
{
"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--00001111",
"ReplicaName":"my-container-app--00001111-aaaaa22222-bbbb",
"Msg":"Replica 'my-container-app--00001111-aaaaa22222-bbbb' 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.
Škálování procesoru a paměti
Měli byste preferovat pravidla škálování HTTP před pravidly škálování podle procesoru nebo paměti, kdykoli je to možné. Škálování procesoru a paměti neumožňuje vaší aplikaci kontejneru škálovat na nulu.
Po přidání pravidla škálování procesoru nebo paměti ho můžete otestovat odesláním požadavků do aplikace kontejneru a zobrazením škálování na webu Azure Portal.
Po odeslání požadavků do škálovací aplikace může trvat minutu, než se pravidlo škálování aktivuje a vytvoří se nové repliky.
Škálování procesoru
Škálování CPU umožňuje vaší aplikaci škálovat dovnitř nebo ven v závislosti na tom, jak moc se CPU používá.
Pokud například vytvoříte pravidlo škálování procesoru s hodnotou 50využití , Azure Container Apps vytvoří více replik vaší aplikace kontejneru, když průměrné využití procesoru pro všechny repliky dosáhne 50%.
Škálování procesoru neumožňuje vaší aplikaci kontejneru škálovat na nulu. Další informace o tomto triggeru najdete v tématu KeDA Cpu Scale Trigger.
Spuštěním příkazu přidejte do aplikace kontejneru pravidlo škálování procesoru az containerapp update .
Poznámka:
Když použijete Azure CLI k přidání pravidla škálování do aplikace kontejneru, která už má pravidlo škálování, nahradí nové pravidlo škálování staré pravidlo škálování. Pokud chcete zjistit, jak přidat více pravidel škálování, přečtěte si téma Více pravidel škálování.
Před spuštěním následujícího příkazu nahraďte <PLACEHOLDERS> svými hodnotami. Pro účely tohoto kurzu nahraďte <UTILIZATION> s 1. To způsobí, že se vaše aplikace kontejneru škáluje, když průměrné využití procesoru pro všechny repliky dosáhne 1%. Tato hodnota je určena pouze pro ukázku. Maximální počet replik je omezen na 10 podle --max-replicas 10, který jste určili při spuštění az containerapp update.
az containerapp update \
--name my-container-app \
--resource-group my-container-apps \
--min-replicas 1 \
--max-replicas 10 \
--scale-rule-name my-cpu-scale-rule \
--scale-rule-type cpu \
--scale-rule-metadata type=Utilization value=<UTILIZATION>
Škálování paměti
Škálování paměti umožňuje vaší aplikaci škálovat nebo zmenšit kapacitu v závislosti na tom, kolik paměti se používá.
Pokud například vytvoříte pravidlo škálování paměti s hodnotou 50využití , Azure Container Apps vytvoří více replik vaší aplikace kontejneru, když průměrné využití paměti pro všechny repliky dosáhne 50%.
Škálování paměti neumožňuje vaší aplikaci kontejneru škálovat na nulu. Další informace o tomto triggeru najdete v tématu KeDA trigger škálování paměti.
Spuštěním az containerapp update příkazu přidejte do aplikace kontejneru pravidlo škálování paměti.
Poznámka:
Když použijete Azure CLI k přidání pravidla škálování do aplikace kontejneru, která už má pravidlo škálování, nahradí nové pravidlo škálování staré pravidlo škálování. Pokud chcete zjistit, jak přidat více pravidel škálování, přečtěte si téma Více pravidel škálování.
Před spuštěním následujícího příkazu nahraďte <PLACEHOLDERS> svými hodnotami. Pro účely tohoto kurzu nahraďte <UTILIZATION> s 1. To způsobí, že se aplikace kontejneru škáluje, když průměrné využití paměti pro všechny repliky dosáhne 1%. Tato hodnota je určena pouze pro ukázku. Maximální počet replik je omezen na 10 podle --max-replicas 10, který jste určili při spuštění az containerapp update.
az containerapp update \
--name my-container-app \
--resource-group my-container-apps \
--min-replicas 1 \
--max-replicas 10 \
--scale-rule-name my-memory-scale-rule \
--scale-rule-type memory \
--scale-rule-metadata type=Utilization value=<UTILIZATION>
Více pravidel škálování
Pokud chcete do aplikace kontejneru přidat více pravidel škálování pomocí Azure CLI, musíte použít YAML.
Pomocí příkazu exportujte konfiguraci aplikace kontejneru
az containerapp showdo YAML.az containerapp show \ --name my-container-app \ --resource-group my-container-apps \ --output yaml > app.yamlproperties>template>scale>rulesV částiapp.yamlpřidejte následující vlastnosti. Nahraďte<PLACEHOLDERS>vlastními hodnotami.... properties: ... template: ... scale: ... rules: - name: cpu-scaling-rule custom: type: cpu metadata: type: "Utilization" value: "<CPU_UTILIZATION>" - name: memory-scaling-rule custom: type: memory metadata: type: "Utilization" value: "<MEMORY_UTILIZATION>" ...Naimportujte konfiguraci své kontejnerové aplikace z
app.yamlpomocí příkazuaz containerapp update.az containerapp update \ --name my-container-app \ --resource-group my-container-apps \ --yaml app.yaml
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