Zelfstudie: Een container-app schalen
Azure Container Apps beheert automatisch horizontaal schalen via een set declaratieve schaalregels. Als een container-app wordt uitgeschaald, worden nieuwe exemplaren van de container-app op aanvraag gemaakt. Deze exemplaren worden replica's genoemd.
In deze zelfstudie voegt u een HTTP-schaalregel toe aan uw container-app en bekijkt u hoe uw toepassing wordt geschaald.
Vereisten
Vereiste | Instructies |
---|---|
Azure-account | Als u geen Azure-account hebt, kunt u er gratis een maken. U hebt de machtiging Inzender voor het Azure-abonnement nodig om door te gaan. Raadpleeg Azure-rollen toewijzen met behulp van Azure Portal voor meer informatie. |
GitHub-account | Ontvang er gratis een. |
Azure-CLI | Installeer de Azure CLI. |
Instellingen
Als u zich wilt aanmelden bij Azure vanuit de CLI, voert u de volgende opdracht uit en volgt u de aanwijzingen om het verificatieproces te voltooien.
az login
Voer de upgradeopdracht uit om ervoor te zorgen dat u de nieuwste versie van de CLI uitvoert.
az upgrade
Installeer of werk vervolgens de Azure Container Apps-extensie voor de CLI bij.
Als u fouten ontvangt over ontbrekende parameters wanneer u opdrachten uitvoert az containerapp
in Azure CLI of cmdlets vanuit de Az.App
module in Azure PowerShell, moet u ervoor zorgen dat de nieuwste versie van de Azure Container Apps-extensie is geïnstalleerd.
az extension add --name containerapp --upgrade
Notitie
Vanaf mei 2024 schakelen Azure CLI-extensies standaard geen preview-functies meer in. Als u toegang wilt krijgen tot de preview-functies van Container Apps, installeert u de Container Apps-extensie met --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Nu de huidige extensie of module is geïnstalleerd, registreert u de Microsoft.App
en Microsoft.OperationalInsights
naamruimten.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
De container-app maken en implementeren
Maak en implementeer uw container-app met de containerapp up
opdracht. Met deze opdracht maakt u een:
- Resourcegroep
- Container Apps-omgeving
- Log Analytics-werkruimte
Als er al een van deze resources bestaat, gebruikt de opdracht de bestaande resources in plaats van nieuwe resources te maken.
Ten slotte maakt en implementeert de opdracht de container-app met behulp van een openbare containerinstallatiekopieën.
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 \
Notitie
Zorg ervoor dat de waarde voor de --image
parameter in kleine letters is.
Door deze instelling in te external
stellen--ingress
, maakt u de container-app beschikbaar voor openbare aanvragen.
De up
opdracht retourneert de FQDN (Fully Qualified Domain Name) voor de container-app. Kopieer deze FQDN naar een tekstbestand. U gebruikt deze in de sectie Aanvragen verzenden. Uw FQDN ziet er als volgt uit:
https://my-container-app.icydune-96848328.centralus.azurecontainerapps.io
Schaalregel toevoegen
Voeg een HTTP-schaalregel toe aan uw container-app door de opdracht uit te az containerapp update
voeren.
az containerapp update \
--name my-container-app \
--resource-group my-container-apps \
--scale-rule-name my-http-scale-rule \
--scale-rule-http-concurrency 1
Met deze opdracht wordt een HTTP-schaalregel toegevoegd aan uw container-app met de naam my-http-scale-rule
en een gelijktijdigheidsinstelling van 1
. Als uw app meer dan één gelijktijdige HTTP-aanvraag ontvangt, maakt de runtime replica's van uw app om de aanvragen te verwerken.
De update
opdracht retourneert de nieuwe configuratie als een JSON-antwoord om te controleren of uw aanvraag is geslaagd.
Logboekuitvoer starten
U kunt de effecten van het schalen van uw toepassing bekijken door de logboeken weer te geven die zijn gegenereerd door de Container Apps-runtime. Gebruik de az containerapp logs show
opdracht om te beginnen met luisteren naar logboekvermeldingen.
az containerapp logs show \
--name my-container-app \
--resource-group my-container-apps \
--type=system \
--follow=true
De show
opdracht retourneert vermeldingen uit de systeemlogboeken voor uw container-app in realtime. U kunt een antwoord verwachten zoals in het volgende voorbeeld:
{
"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/"
}
Zie az containerapp logs voor meer informatie.
Aanvragen verzenden
Open een nieuwe bash-shell. Voer de volgende opdracht uit en vervang deze door <YOUR_CONTAINER_APP_FQDN>
de volledig gekwalificeerde domeinnaam voor uw container-app die u hebt opgeslagen in de sectie Container-app maken en implementeren.
seq 1 50 | xargs -Iname -P10 curl "<YOUR_CONTAINER_APP_FQDN>"
Met deze opdrachten worden 50 aanvragen naar uw container-app verzonden in gelijktijdige batches van 10 aanvragen.
Opdracht of argument | Beschrijving |
---|---|
seq 1 50 |
Hiermee wordt een reeks getallen van 1 tot 50 gegenereerd. |
| |
De pipe-operator verzendt de reeks naar de xargs opdracht. |
xargs |
Wordt uitgevoerd curl met de opgegeven URL |
-Iname |
Fungeert als tijdelijke aanduiding voor de uitvoer van seq . Met dit argument voorkomt u dat de retourwaarde naar de curl opdracht wordt verzonden. |
curl |
Roept de opgegeven URL aan. |
-P10 |
Hiermee geeft u xargs de opdracht om maximaal 10 processen tegelijk uit te voeren. |
Zie de documentatie voor meer informatie voor:
In de eerste shell, waar u de az containerapp logs show
opdracht hebt uitgevoerd, bevat de uitvoer nu een of meer logboekvermeldingen zoals hieronder.
{
"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
}
Schaalaanpassing weergeven in Azure Portal (optioneel)
- Meld u aan bij het Azure-portaal.
- Voer in de zoekbalk bovenaan mijn container-app in.
- Selecteer in de zoekresultaten onder Resources de optie my-container-app.
- Vouw in de navigatiebalk aan de linkerkant De toepassing uit en selecteer Schaal en replica's.
- Selecteer Replica's op de pagina Schaal en replica's.
- Uw container-app heeft nu meer dan één replica die wordt uitgevoerd.
Mogelijk moet u Vernieuwen selecteren om de nieuwe replica's weer te geven.
Vouw bewaking uit in de navigatiebalk aan de linkerkant en selecteer metrische gegevens.
Stel op de pagina Metrische gegevens metrische gegevens in op Aanvragen.
Selecteer Splitsen toepassen.
Vouw de vervolgkeuzelijst Waarden uit en controleer Replica.
Selecteer het blauwe vinkje om het splitsen te voltooien.
In de grafiek ziet u de aanvragen die zijn ontvangen door uw container-app, gesplitst op replica.
De grafiekschaal is standaard ingesteld op de afgelopen 24 uur, met een tijdgranulariteit van 15 minuten. Selecteer de schaal en wijzig deze in de afgelopen 30 minuten, met een tijdgranulariteit van één minuut. Selecteer de knop Toepassen.
Selecteer de grafiek en sleep om de recente toename van aanvragen te markeren die zijn ontvangen door uw container-app.
In de volgende schermopname ziet u een ingezoomde weergave van hoe de aanvragen die door uw container-app worden ontvangen, worden verdeeld over replica's.
Resources opschonen
Als u deze toepassing niet wilt blijven gebruiken, voert u de volgende opdracht uit om de resourcegroep te verwijderen, samen met alle resources die in deze zelfstudie zijn gemaakt.
Let op
Met de volgende opdracht verwijdert u de opgegeven resourcegroep en alle resources erin. Als resources buiten het bereik van deze zelfstudie in de opgegeven resourcegroep bestaan, worden ze ook verwijderd.
az group delete --name my-container-apps
Tip
Ondervindt u problemen? Laat het ons weten op GitHub door een probleem te openen in de Azure Container Apps-opslagplaats.