Share via


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.

az extension add --name containerapp --upgrade

Nu de huidige extensie of module is geïnstalleerd, registreert u de Microsoft.App en Microsoft.OperationalInsights naamruimten.

Notitie

Azure Container Apps-resources zijn gemigreerd van de Microsoft.Web naamruimte naar de Microsoft.App naamruimte. Raadpleeg de naamruimtemigratie van Microsoft.Web naar Microsoft.App in maart 2022 voor meer informatie.

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 externalstellen--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)

  1. Meld u aan bij het Azure-portaal.
  2. Voer in de zoekbalk bovenaan mijn container-app in.
  3. Selecteer in de zoekresultaten onder Resources de optie my-container-app.
  4. Vouw in de navigatiebalk aan de linkerkant De toepassing uit en selecteer Schaal en replica's.
  5. Selecteer Replica's op de pagina Schaal en replica's.
  6. Uw container-app heeft nu meer dan één replica die wordt uitgevoerd.

Schermopname van container-app-replica's.

Mogelijk moet u Vernieuwen selecteren om de nieuwe replica's weer te geven.

  1. Vouw bewaking uit in de navigatiebalk aan de linkerkant en selecteer metrische gegevens.

  2. Stel op de pagina Metrische gegevens metrische gegevens in op Aanvragen.

  3. Selecteer Splitsen toepassen.

  4. Vouw de vervolgkeuzelijst Waarden uit en controleer Replica.

  5. Selecteer het blauwe vinkje om het splitsen te voltooien.

  6. In de grafiek ziet u de aanvragen die zijn ontvangen door uw container-app, gesplitst op replica.

    Grafiek met metrische gegevens van container-app, met aanvragen die zijn gesplitst op replica.

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

  8. Selecteer de grafiek en sleep om de recente toename van aanvragen te markeren die zijn ontvangen door uw container-app.

Schermopname van de grafiek met metrische gegevens van de container-app, met aanvragen die zijn gesplitst op replica, met een schaal van 30 minuten en tijdgranulariteit van één minuut.

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.

Schermopname van de grafiek met metrische gegevens van de container-app, met aanvragen die zijn gesplitst op replica, in een ingezoomde weergave.

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.

Volgende stappen