Självstudie: Skala en containerapp
Azure Container Apps hanterar automatisk horisontell skalning via en uppsättning deklarativa skalningsregler. När en containerapp skalar ut skapas nya instanser av containerappen på begäran. Dessa instanser kallas repliker.
I den här självstudien lägger du till en HTTP-skalningsregel i containerappen och ser hur programmet skalar.
Förutsättningar
Krav | Instruktioner |
---|---|
Azure-konto | Om du inte har ett Azure-konto kan du skapa ett kostnadsfritt. Du behöver behörigheten Deltagare för Azure-prenumerationen för att kunna fortsätta. Mer information finns i Tilldela Azure-roller med hjälp av Azure Portal. |
GitHub-konto | Skaffa en gratis. |
Azure CLI | Installera Azure CLI. |
Ställ in
Om du vill logga in på Azure från CLI kör du följande kommando och följer anvisningarna för att slutföra autentiseringsprocessen.
az login
Kör uppgraderingskommandot för att säkerställa att du kör den senaste versionen av CLI.
az upgrade
Installera eller uppdatera sedan Azure Container Apps-tillägget för CLI.
Om du får fel om saknade parametrar när du kör az containerapp
kommandon i Azure CLI eller cmdletar från modulen Az.App
i Azure PowerShell kontrollerar du att den senaste versionen av Azure Container Apps-tillägget är installerad.
az extension add --name containerapp --upgrade
Kommentar
Från och med maj 2024 aktiverar Azure CLI-tillägg inte längre förhandsversionsfunktioner som standard. Om du vill komma åt förhandsversionsfunktioner för Container Apps installerar du containerapptillägget med --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Nu när det aktuella tillägget eller modulen har installerats registrerar du Microsoft.App
namnrymderna och Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Skapa och distribuera containerappen
Skapa och distribuera containerappen containerapp up
med kommandot . Det här kommandot skapar en:
- Resursgrupp
- Container Apps-miljö
- Log Analytics-arbetsyta
Om någon av dessa resurser redan finns använder kommandot befintliga resurser i stället för att skapa nya.
Slutligen skapar och distribuerar kommandot containerappen med hjälp av en offentlig containeravbildning.
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 \
Kommentar
Kontrollera att värdet för parametern är i gemener --image
.
Genom att ange --ingress
till external
gör du containerappen tillgänglig för offentliga begäranden.
Kommandot up
returnerar det fullständigt kvalificerade domännamnet (FQDN) för containerappen. Kopiera det här fullständiga domännamnet till en textfil. Du använder den i avsnittet Skicka begäranden . Ditt FQDN ser ut som i följande exempel:
https://my-container-app.icydune-96848328.centralus.azurecontainerapps.io
Lägg till skalningsregel
Lägg till en HTTP-skalningsregel i containerappen genom att az containerapp update
köra kommandot .
az containerapp update \
--name my-container-app \
--resource-group my-container-apps \
--scale-rule-name my-http-scale-rule \
--scale-rule-http-concurrency 1
Det här kommandot lägger till en HTTP-skalningsregel i containerappen med namnet my-http-scale-rule
och en samtidighetsinställning på 1
. Om din app tar emot mer än en samtidig HTTP-begäran skapar körningen repliker av din app för att hantera begäranden.
Kommandot update
returnerar den nya konfigurationen som ett JSON-svar för att verifiera att din begäran lyckades.
Starta loggutdata
Du kan se effekterna av din programskalning genom att visa loggarna som genereras av Container Apps-körningen. az containerapp logs show
Använd kommandot för att börja lyssna efter loggposter.
az containerapp logs show \
--name my-container-app \
--resource-group my-container-apps \
--type=system \
--follow=true
Kommandot show
returnerar poster från systemloggarna för containerappen i realtid. Du kan förvänta dig ett svar som i följande exempel:
{
"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/"
}
Mer information finns i az containerapp logs (Az containerapp logs).
Skicka begäranden
Öppna ett nytt bash-gränssnitt. Kör följande kommando och ersätt <YOUR_CONTAINER_APP_FQDN>
med det fullständigt kvalificerade domännamnet för din containerapp som du sparade från avsnittet Skapa och distribuera containerappen .
seq 1 50 | xargs -Iname -P10 curl "<YOUR_CONTAINER_APP_FQDN>"
Dessa kommandon skickar 50 begäranden till containerappen i samtidiga batchar med 10 begäranden vardera.
Kommando eller argument | beskrivning |
---|---|
seq 1 50 |
Genererar en sekvens med tal från 1 till 50. |
| |
Pipe-operatorn skickar sekvensen xargs till kommandot. |
xargs |
Körs curl med den angivna URL:en |
-Iname |
Fungerar som platshållare för utdata seq från . Det här argumentet förhindrar att returvärdet skickas till curl kommandot. |
curl |
Anropar den angivna URL:en. |
-P10 |
Instruerar xargs att köra upp till 10 processer åt gången. |
Mer information finns i dokumentationen för:
I det första gränssnittet, där du körde az containerapp logs show
kommandot, innehåller utdata nu en eller flera loggposter som följande.
{
"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
}
Visa skalning i Azure Portal (valfritt)
- Logga in på Azure-portalen.
- I sökfältet högst upp anger du my-container-app.
- I sökresultaten går du till Resurser och väljer my-container-app.
- I navigeringsfältet till vänster expanderar du Program och väljer Skala och repliker.
- På sidan Skala och repliker väljer du Repliker.
- Containerappen har nu fler än en replik som körs.
Du kan behöva välja Uppdatera för att se de nya replikerna.
I navigeringsfältet till vänster expanderar du Övervakning och väljer Mått.
På sidan Mått anger du Mått till Begäranden.
Välj Använd delning.
Expandera listrutan Värden och markera Replik.
Välj den blå bockmarkeringsikonen för att slutföra redigeringen av delningen.
Diagrammet visar de begäranden som tas emot av containerappen, uppdelade efter replik.
Som standard är grafskalan inställd på de senaste 24 timmarna, med en tidskornighet på 15 minuter. Välj skalan och ändra den till de senaste 30 minuterna, med en tidskornighet på en minut. Välj knappen Tillämpa.
Välj i diagrammet och dra för att markera den senaste ökningen av begäranden som tagits emot av containerappen.
Följande skärmbild visar en zoomad vy över hur begäranden som tas emot av containerappen delas upp mellan repliker.
Rensa resurser
Om du inte fortsätter att använda det här programmet kör du följande kommando för att ta bort resursgruppen tillsammans med alla resurser som skapats i den här självstudien.
Varning
Följande kommando tar bort den angivna resursgruppen och alla resurser som ingår i den. Om det finns resurser utanför omfånget för den här självstudien i den angivna resursgruppen tas de också bort.
az group delete --name my-container-apps
Dricks
Har du problem? Meddela oss på GitHub genom att öppna ett problem i Azure Container Apps-lagringsplatsen.