Schaalregels instellen in Azure Container Apps

Azure Container Apps beheert automatisch horizontaal schalen via een set declaratieve schaalregels. Naarmate de revisie van een container-app wordt uitgeschaald, worden nieuwe exemplaren van de revisie op aanvraag gemaakt. Deze exemplaren worden replica's genoemd.

Door schaalregels toe te voegen of te bewerken, wordt een nieuwe revisie van uw container-app gemaakt. Een revisie is een onveranderbare momentopname van uw container-app. Zie Revisiewijzigingstypen voor meer informatie over welke typen wijzigingen een nieuwe revisie activeren.

Gebeurtenisgestuurde Container Apps-taken maken gebruik van schaalregels om uitvoeringen te activeren op basis van gebeurtenissen.

Schaaldefinitie

Schalen is de combinatie van limieten, regels en gedrag.

  • Limieten definiëren het minimum- en maximumaantal replica's per revisie wanneer uw container-app wordt geschaald.

    Schaallimiet Default value Minimumwaarde Maximumwaarde
    Minimum aantal replica's per revisie 0 0 Het maximum aantal replica's dat kan worden geconfigureerd, is 300 in Azure Portal en 1000 in Azure CLI.
    Maximum aantal replica's per revisie 10 1 Het maximum aantal replica's dat kan worden geconfigureerd, is 300 in Azure Portal en 1000 in Azure CLI.
  • Regels zijn de criteria die door Container Apps worden gebruikt om te bepalen wanneer replica's moeten worden toegevoegd of verwijderd.

    Schaalregels worden geïmplementeerd als HTTP, TCP (Transmission Control Protocol) of aangepast.

  • Gedrag is de combinatie van regels en limieten om schaalbeslissingen in de loop van de tijd te bepalen.

    In schaalgedrag wordt uitgelegd hoe schaalbeslissingen worden genomen.

Wanneer u uw schaalregels definieert, is het belangrijk om rekening te houden met de volgende items:

  • Er worden geen gebruikskosten in rekening gebracht als uw container-app wordt geschaald naar nul.
  • Replica's die niet worden verwerkt, maar die in het geheugen blijven, worden mogelijk gefactureerd met een lager 'niet-actief' tarief. Zie Facturering voor meer informatie.
  • Als u ervoor wilt zorgen dat een exemplaar van uw revisie altijd wordt uitgevoerd, stelt u het minimum aantal replica's in op 1 of hoger.

Regels schalen

Schalen wordt aangestuurd door drie verschillende categorieën triggers:

  • HTTP: Op basis van het aantal gelijktijdige HTTP-aanvragen voor uw revisie.
  • TCP: Op basis van het aantal gelijktijdige TCP-verbindingen met uw revisie.
  • Aangepast: op basis van CPU, geheugen of ondersteunde gebeurtenisgestuurde gegevensbronnen, zoals:
    • Azure Service Bus
    • Azure Event Hubs
    • Apache Kafka
    • Redis

Als u meer dan één schaalregel definieert, begint de container-app te schalen zodra aan de eerste voorwaarde van regels wordt voldaan.

HTTP

Met een HTTP-schaalregel hebt u controle over de drempelwaarde van gelijktijdige HTTP-aanvragen die bepalen hoe de revisie van uw container-app wordt geschaald. Elke 15 seconden wordt het aantal gelijktijdige aanvragen berekend als het aantal aanvragen in de afgelopen 15 seconden gedeeld door 15. Container Apps-taken bieden geen ondersteuning voor HTTP-schaalregels.

In het volgende voorbeeld wordt de revisie uitgeschaald tot vijf replica's en kan worden ingeschaald naar nul. De schaaleigenschap is ingesteld op 100 gelijktijdige aanvragen per seconde.

Opmerking

In de http sectie wordt een HTTP-schaalregel gedefinieerd.

Eigenschap schalen Beschrijving Default value Minimumwaarde Maximumwaarde
concurrentRequests Wanneer het aantal HTTP-aanvragen deze waarde overschrijdt, wordt er een andere replica toegevoegd. Replica's blijven tot aan de hoeveelheid toevoegen aan de maxReplicas pool. 10 1 N.v.t.
{
  ...
  "resources": {
    ...
    "properties": {
      ...
      "template": {
        ...
        "scale": {
          "minReplicas": 0,
          "maxReplicas": 5,
          "rules": [{
            "name": "http-rule",
            "http": {
              "metadata": {
                "concurrentRequests": "100"
              }
            }
          }]
        }
      }
    }
  }
}

Notitie

Stel de properties.configuration.activeRevisionsMode eigenschap van de container-app in op single, wanneer u niet-HTTP-regels voor gebeurtenisschaal gebruikt.

Definieer een HTTP-schaalregel met behulp van de --scale-rule-http-concurrency parameter in de create of update opdrachten.

CLI-parameter Beschrijving Default value Minimumwaarde Maximumwaarde
--scale-rule-http-concurrency Wanneer het aantal gelijktijdige HTTP-aanvragen deze waarde overschrijdt, wordt er een andere replica toegevoegd. Replica's blijven tot aan de hoeveelheid toevoegen aan de max-replicas pool. 10 1 N.v.t.
az containerapp create \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --environment <ENVIRONMENT_NAME> \
  --image <CONTAINER_IMAGE_LOCATION>
  --min-replicas 0 \
  --max-replicas 5 \
  --scale-rule-name azure-http-rule \
  --scale-rule-type http \
  --scale-rule-http-concurrency 100
  1. Ga naar uw container-app in Azure Portal

  2. Selecteer Schalen.

  3. Selecteer Bewerken en implementeren.

  4. Selecteer het tabblad Schaal .

  5. Selecteer het minimum- en maximumreplicabereik.

    Schermopname van de schuifregelaar voor het schaalbereik van Azure Container Apps.

  6. Selecteer Toevoegen.

  7. Voer in het vak Regelnaam een regelnaam in.

  8. Selecteer HTTP-schaling in de vervolgkeuzelijst Type.

  9. Voer in het vak Gelijktijdige aanvragen het gewenste aantal gelijktijdige aanvragen voor uw container-app in.

TCP

Met een TCP-schaalregel hebt u controle over de drempelwaarde van gelijktijdige TCP-verbindingen die bepalen hoe uw app wordt geschaald. Elke 15 seconden wordt het aantal gelijktijdige verbindingen berekend als het aantal verbindingen in de afgelopen 15 seconden gedeeld door 15. Container Apps-taken bieden geen ondersteuning voor TCP-schaalregels.

In het volgende voorbeeld wordt de revisie van de container-app uitgeschaald naar maximaal vijf replica's en kan inschalen naar nul. De drempelwaarde voor schalen wordt ingesteld op 100 gelijktijdige verbindingen per seconde.

Opmerking

In de tcp sectie wordt een TCP-schaalregel gedefinieerd.

Eigenschap schalen Beschrijving Default value Minimumwaarde Maximumwaarde
concurrentConnections Wanneer het aantal gelijktijdige TCP-verbindingen deze waarde overschrijdt, wordt er een andere replica toegevoegd. Replica's worden nog steeds opgeteld tot de maxReplicas hoeveelheid naarmate het aantal gelijktijdige verbindingen toeneemt. 10 1 N.v.t.
{
  ...
  "resources": {
    ...
    "properties": {
      ...
      "template": {
        ...
        "scale": {
          "minReplicas": 0,
          "maxReplicas": 5,
          "rules": [{
            "name": "tcp-rule",
            "tcp": {
              "metadata": {
                "concurrentConnections": "100"
              }
            }
          }]
        }
      }
    }
  }
}

Definieer een TCP-schaalregel met behulp van de --scale-rule-tcp-concurrency parameter in de create of update opdrachten.

CLI-parameter Beschrijving Default value Minimumwaarde Maximumwaarde
--scale-rule-tcp-concurrency Wanneer het aantal gelijktijdige TCP-verbindingen deze waarde overschrijdt, wordt er een andere replica toegevoegd. Replica's worden nog steeds opgeteld tot de max-replicas hoeveelheid naarmate het aantal gelijktijdige verbindingen toeneemt. 10 1 N.v.t.
az containerapp create \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --environment <ENVIRONMENT_NAME> \
  --image <CONTAINER_IMAGE_LOCATION>
  --min-replicas 0 \
  --max-replicas 5 \
  --scale-rule-name azure-tcp-rule \
  --scale-rule-type tcp \
  --scale-rule-tcp-concurrency 100

Niet ondersteund in Azure Portal. Gebruik de Azure CLI of Azure Resource Manager om een TCP-schaalregel te configureren.

Aanpassen

U kunt een aangepaste Container Apps-schaalregel maken op basis van elke KEDA-schaalder op basis van ScaledObject met de volgende standaardwaarden:

Defaults Seconden
Peilinginterval 30
Afkoelperiode 300

Voor gebeurtenisgestuurde Container Apps-taken kunt u een aangepaste schaalregel maken op basis van op ScaledJob gebaseerde KEDA-schaalders.

In het volgende voorbeeld ziet u hoe u een aangepaste schaalregel maakt.

Opmerking

In dit voorbeeld ziet u hoe u een Azure Service Bus-scaler converteert naar een Container Apps-schaalregel, maar u gebruikt hetzelfde proces voor elke andere keda-schaalspecificatie op basis van ScaledObject.

Voor verificatie worden verificatieparameters voor KEDA-schaalaanpassing geconverteerd naar Container Apps-geheimen.

In de volgende procedure ziet u hoe u een KEDA-schaalprogramma converteert naar een container-app-schaalregel. Dit fragment is een fragment van een ARM-sjabloon om aan te geven waar elke sectie in de context van de algemene sjabloon past.

{
  ...
  "resources": {
    ...
    "properties": {
      ...
      "configuration": {
        ...
        "secrets": [
          {
            "name": "<NAME>",
            "value": "<VALUE>"
          }
        ]
      },
      "template": {
        ...
        "scale": {
          "minReplicas": 0,
          "maxReplicas": 5,
          "rules": [
            {
              "name": "<RULE_NAME>",
              "custom": {
                "metadata": {
                  ...
                },
                "auth": [
                  {
                    "secretRef": "<NAME>",
                    "triggerParameter": "<PARAMETER>"
                  }
                ]
              }
            }
          ]
        }
      }
    }
  }
}

Raadpleeg dit fragment voor context over hoe de onderstaande voorbeelden in de ARM-sjabloon passen.

Eerst definieert u het type en de metagegevens van de schaalregel.

  1. Zoek type de waarde op basis van de KEDA-schaalspecificatie.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  2. Voer in de ARM-sjabloon de schaalschaalwaarde type in de custom.type eigenschap van de schaalregel in.

    ...
    "rules": [
      {
        "name": "azure-servicebus-queue-rule",
        "custom": {
          "type": "azure-servicebus",
          "metadata": {
            "queueName": "my-queue",
            "namespace": "service-bus-namespace",
            "messageCount": "5"
          }
        }
      }
    ]
    ...
    
  3. Zoek metadata de waarden op basis van de KEDA-schaalspecificatie.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  4. Voeg in de ARM-sjabloon alle metagegevenswaarden toe aan de custom.metadata sectie van de schaalregel.

    ...
    "rules": [
      {
        "name": "azure-servicebus-queue-rule",
        "custom": {
          "type": "azure-servicebus",
          "metadata": {
            "queueName": "my-queue",
            "namespace": "service-bus-namespace",
            "messageCount": "5"
          }
        }
      }
    ]
    ...
    

Verificatie

Een KEDA-schaalfunctie ondersteunt het gebruik van geheimen in een TriggerAuthentication waarnaar wordt verwezen door de authenticationRef eigenschap. U kunt het TriggerAuthentication-object toewijzen aan de container-apps-schaalregel.

Notitie

Container Apps-schaalregels ondersteunen alleen geheime verwijzingen. Andere verificatietypen, zoals podidentiteit, worden niet ondersteund.

  1. Zoek het TriggerAuthentication object waarnaar wordt verwezen door de KEDA-specificatie ScaledObject .

  2. Zoek vanuit de KEDA-specificatie elk secretTargetRef van het object en het TriggerAuthentication bijbehorende geheim.

    apiVersion: v1
    kind: Secret
    metadata:
      name: my-secrets
      namespace: my-project
    type: Opaque
    data:
      connection-string-secret: <SERVICE_BUS_CONNECTION_STRING>
    ---
    apiVersion: keda.sh/v1alpha1
    kind: TriggerAuthentication
    metadata:
      name: azure-servicebus-auth
    spec:
      secretTargetRef:
      - parameter: connection
        name: my-secrets
        key: connection-string-secret
    ---
    apiVersion: keda.sh/v1alpha1
    kind: ScaledObject
    metadata:
      name: azure-servicebus-queue-rule
      namespace: default
    spec:
      scaleTargetRef:
        name: my-scale-target
      triggers:
      - type: azure-servicebus
        metadata:
          queueName: my-queue
          namespace: service-bus-namespace
          messageCount: "5"
        authenticationRef:
            name: azure-servicebus-auth
    
  3. Voeg in de ARM-sjabloon alle vermeldingen toe aan de auth matrix van de schaalregel.

    1. Voeg een geheim toe aan de matrix van secrets de container-app die de geheime waarde bevat.

    2. Stel de waarde van de triggerParameter eigenschap in op de waarde van de TriggerAuthenticationkey eigenschap.

    3. Stel de waarde van de secretRef eigenschap in op de naam van het Container Apps-geheim.

    {
      ...
      "resources": {
        ...
        "properties": {
          ...
          "configuration": {
            ...
            "secrets": [
              {
                "name": "connection-string-secret",
                "value": "<SERVICE_BUS_CONNECTION_STRING>"
              }
            ]
          },
          "template": {
            ...
            "scale": {
              "minReplicas": 0,
              "maxReplicas": 5,
              "rules": [
                {
                  "name": "azure-servicebus-queue-rule",
                  "custom": {
                    "type": "azure-servicebus",
                    "metadata": {
                      "queueName": "my-queue",
                      "namespace": "service-bus-namespace",
                      "messageCount": "5"
                    },
                    "auth": [
                      {
                        "secretRef": "connection-string-secret",
                        "triggerParameter": "connection"
                      }
                    ]
                  }
                }
              ]
            }
          }
        }
      }
    }
    

    Sommige schaalders ondersteunen metagegevens met het FromEnv achtervoegsel om te verwijzen naar een waarde in een omgevingsvariabele. Container Apps bekijkt de eerste container die wordt vermeld in de ARM-sjabloon voor de omgevingsvariabele.

    Raadpleeg de sectie overwegingen voor meer beveiligingsgerelateerde informatie.

  1. Zoek type de waarde op basis van de KEDA-schaalspecificatie.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  2. Stel in de CLI-opdracht de --scale-rule-type parameter in op de specificatiewaarde type .

    az containerapp create \
      --name <CONTAINER_APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --environment <ENVIRONMENT_NAME> \
      --image <CONTAINER_IMAGE_LOCATION>
      --min-replicas 0 \
      --max-replicas 5 \
      --secrets "connection-string-secret=<SERVICE_BUS_CONNECTION_STRING>" \
      --scale-rule-name azure-servicebus-queue-rule \
      --scale-rule-type azure-servicebus \
      --scale-rule-metadata "queueName=my-queue" \
                            "namespace=service-bus-namespace" \
                            "messageCount=5" \
      --scale-rule-auth "connection=connection-string-secret"
    
  3. Zoek metadata de waarden op basis van de KEDA-schaalspecificatie.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  4. Stel in de CLI-opdracht de --scale-rule-metadata parameter in op de metagegevenswaarden.

    U moet de waarden transformeren van een YAML-indeling naar een sleutel-waardepaar voor gebruik op de opdrachtregel. Scheid elke sleutel/waardepaar met een spatie.

    az containerapp create \
      --name <CONTAINER_APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --environment <ENVIRONMENT_NAME> \
      --image <CONTAINER_IMAGE_LOCATION>
      --min-replicas 0 \
      --max-replicas 5 \
      --secrets "connection-string-secret=<SERVICE_BUS_CONNECTION_STRING>" \
      --scale-rule-name azure-servicebus-queue-rule \
      --scale-rule-type azure-servicebus \
      --scale-rule-metadata "queueName=my-queue" \
                            "namespace=service-bus-namespace" \
                            "messageCount=5" \
      --scale-rule-auth "connection=connection-string-secret"
    

Verificatie

Een KEDA-scaler ondersteunt het gebruik van geheimen in een TriggerAuthentication waarnaar wordt verwezen door de eigenschap authenticationRef. U kunt het TriggerAuthentication-object toewijzen aan de container-apps-schaalregel.

Notitie

Container Apps-schaalregels ondersteunen alleen geheime verwijzingen. Andere verificatietypen, zoals podidentiteit, worden niet ondersteund.

  1. Zoek het TriggerAuthentication object waarnaar wordt verwezen door de KEDA-specificatie ScaledObject . Identificeer elk secretTargetRef van het TriggerAuthentication object.

    apiVersion: v1
    kind: Secret
    metadata:
      name: my-secrets
      namespace: my-project
    type: Opaque
    data:
      connection-string-secret: <SERVICE_BUS_CONNECTION_STRING>
    ---
    apiVersion: keda.sh/v1alpha1
    kind: TriggerAuthentication
    metadata:
      name: azure-servicebus-auth
    spec:
      secretTargetRef:
      - parameter: connection
        name: my-secrets
        key: connection-string-secret
    ---
    apiVersion: keda.sh/v1alpha1
    kind: ScaledObject
    metadata:
      name: azure-servicebus-queue-rule
      namespace: default
    spec:
      scaleTargetRef:
        name: my-scale-target
      triggers:
      - type: azure-servicebus
        metadata:
          queueName: my-queue
          namespace: service-bus-namespace
          messageCount: "5"
        authenticationRef:
            name: azure-servicebus-auth
    
  2. Maak in uw container-app de geheimen die overeenkomen met de secretTargetRef eigenschappen.

  3. Stel in de CLI-opdracht parameters in voor elke secretTargetRef vermelding.

    1. Maak een geheime vermelding met de --secrets parameter. Als er meerdere geheimen zijn, scheidt u deze met een spatie.

    2. Maak een verificatievermelding met de --scale-rule-auth parameter. Als er meerdere items zijn, scheidt u deze met een spatie.

    az containerapp create \
      --name <CONTAINER_APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --environment <ENVIRONMENT_NAME> \
      --image <CONTAINER_IMAGE_LOCATION>
      --min-replicas 0 \
      --max-replicas 5 \
      --secrets "connection-string-secret=<SERVICE_BUS_CONNECTION_STRING>" \
      --scale-rule-name azure-servicebus-queue-rule \
      --scale-rule-type azure-servicebus \
      --scale-rule-metadata "queueName=my-queue" \
                            "namespace=service-bus-namespace" \
                            "messageCount=5" \
      --scale-rule-auth "connection=connection-string-secret"
    
  1. Ga naar uw container-app in Azure Portal.

  2. Selecteer Schalen.

  3. Selecteer Bewerken en implementeren.

  4. Selecteer het tabblad Schaal en replica's .

  5. Selecteer het minimum- en maximumreplicabereik.

    Schermopname van de schuifregelaar voor het schaalbereik van Azure Container Apps.

  6. Selecteer Toevoegen.

  7. Voer in het vak Regelnaam een regelnaam in.

  8. Selecteer Aangepast in de vervolgkeuzelijst Type.

  9. Zoek type de waarde op basis van de KEDA-schaalspecificatie.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  10. Voer in het vak Aangepast regeltype de waarde van de schaalschaal in type .

  11. Zoek metadata de waarden op basis van de KEDA-schaalspecificatie.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  12. Zoek in de portal de sectie Metagegevens en selecteer Toevoegen. Voer de naam en waarde in voor elk item in de sectie metagegevens van keda-specificatie ScaledObject .

Verificatie

Een KEDA-scaler ondersteunt het gebruik van geheimen in een TriggerAuthentication waarnaar wordt verwezen door de eigenschap authenticationRef. U kunt het TriggerAuthentication-object toewijzen aan de container-apps-schaalregel.

Notitie

Container Apps-schaalregels ondersteunen alleen geheime verwijzingen. Andere verificatietypen, zoals podidentiteit, worden niet ondersteund.

  1. Maak in uw container-app de geheimen waarnaar u wilt verwijzen.

  2. Zoek het TriggerAuthentication object waarnaar wordt verwezen door de KEDA-specificatie ScaledObject . Identificeer elk secretTargetRef van het TriggerAuthentication object.

    apiVersion: v1
    kind: Secret
    metadata:
      name: my-secrets
      namespace: my-project
    type: Opaque
    data:
      connection-string-secret: <SERVICE_BUS_CONNECTION_STRING>
    ---
    apiVersion: keda.sh/v1alpha1
    kind: TriggerAuthentication
    metadata:
      name: azure-servicebus-auth
    spec:
      secretTargetRef:
      - parameter: connection
        name: my-secrets
        key: connection-string-secret
    ---
    apiVersion: keda.sh/v1alpha1
    kind: ScaledObject
    metadata:
      name: azure-servicebus-queue-rule
      namespace: default
    spec:
      scaleTargetRef:
        name: my-scale-target
      triggers:
      - type: azure-servicebus
        metadata:
          queueName: my-queue
          namespace: service-bus-namespace
          messageCount: "5"
        authenticationRef:
            name: azure-servicebus-auth
    
  3. Selecteer Toevoegen in de sectie Verificatie om een vermelding te maken voor elke KEDA-parametersecretTargetRef.

Standaardschaalregel

Als u geen schaalregel maakt, wordt de standaardschaalregel toegepast op uw container-app.

Activator Minimumaantal replica's Maximum aantal replica's
HTTP 0 10

Belangrijk

Zorg ervoor dat u een schaalregel maakt of instelt minReplicas op 1 of meer als u inkomend verkeer niet inschakelt. Als inkomend verkeer is uitgeschakeld en u geen of een aangepaste schaalregel definieert minReplicas , wordt de container-app geschaald naar nul en hoeft u geen back-up te maken.

Schaalgedrag

Het schaalgedrag heeft de volgende standaardwaarden:

Parameter Weergegeven als
Peilinginterval 30 seconden
Afkoelperiode 300 seconden
Stabilisatievenster omhoog schalen 0 seconden
Stabilisatievenster omlaag schalen 300 seconden
Stap omhoog schalen 1, 4, 100% van de huidige
Stap omlaag schalen 100% van de huidige
Algoritme voor schalen desiredReplicas = ceil(currentMetricValue / targetMetricValue)
  • Polling-interval is hoe vaak gebeurtenisbronnen worden opgevraagd door KEDA. Deze waarde is niet van toepassing op HTTP- en TCP-schaalregels.
  • Afkoelperiode is hoe lang na de laatste gebeurtenis is waargenomen voordat de toepassing omlaag wordt geschaald tot het minimale aantal replica's.
  • Het venster voor het opschalen van stabilisatie is hoe lang moet worden gewacht voordat een beslissing voor omhoog schalen wordt uitgevoerd zodra aan de voorwaarden voor omhoog schalen is voldaan.
  • Het venster voor omlaag schalen is hoe lang moet worden gewacht voordat een beslissing voor omlaag schalen wordt uitgevoerd zodra aan de voorwaarden voor omlaag schalen is voldaan.
  • Omhoog schalen is de snelheid waarmee nieuwe exemplaren worden toegevoegd. Het begint met 1, 4, 8, 16, 32, ... tot het geconfigureerde maximumaantal replica's.
  • Omlaag schalen is de snelheid waarmee replica's worden verwijderd. Standaard worden 100% van de replica's die moeten worden afgesloten, verwijderd.
  • Het algoritme voor schalen is de formule die wordt gebruikt om het huidige gewenste aantal replica's te berekenen.

Opmerking

Voor de volgende schaalregel:

"minReplicas": 0,
"maxReplicas": 20,
"rules": [
  {
    "name": "azure-servicebus-queue-rule",
    "custom": {
      "type": "azure-servicebus",
      "metadata": {
        "queueName": "my-queue",
        "namespace": "service-bus-namespace",
        "messageCount": "5"
      }
    }
  }
]

Naarmate uw app uitschaalt, begint KEDA met een lege wachtrij en voert u de volgende stappen uit:

  1. Controleer my-queue elke 30 seconden.
  2. Als de wachtrijlengte gelijk is aan 0, gaat u terug naar (1).
  3. Als de lengte van de wachtrij 0 is > , schaalt u de app naar 1.
  4. Als de lengte van de wachtrij 50 is, berekent u desiredReplicas = ceil(50/5) = 10.
  5. App schalen naar min(maxReplicaCount, desiredReplicas, max(4, 2*currentReplicaCount))
  6. Ga terug naar (1).

Als de app is geschaald naar het maximumaantal replica's van 20, doorloopt schalen dezelfde vorige stappen. Omlaag schalen gebeurt alleen als aan de voorwaarde is voldaan gedurende 300 seconden (venster voor omlaag schalen). Zodra de wachtrijlengte 0 is, wacht KEDA 300 seconden (afkoelperiode) voordat de app wordt geschaald naar 0.

Overwegingen

  • In de modus 'meerdere revisies' maakt het toevoegen van een nieuwe schaaltrigger een nieuwe revisie van uw toepassing, maar uw oude revisie blijft beschikbaar met de oude schaalregels. Gebruik de pagina Revisiebeheer om verkeerstoewijzingen te beheren.

  • Er worden geen gebruikskosten in rekening gebracht wanneer een toepassing wordt geschaald naar nul. Zie Facturering in Azure Container Apps voor meer prijsinformatie.

  • U moet gegevensbeveiliging inschakelen voor alle .NET-apps in Azure Container Apps. Zie Een ASP.NET Core-app implementeren en schalen in Azure Container Apps voor meer informatie.

Bekende beperkingen

  • Verticaal schalen wordt niet ondersteund.

  • Replicahoeveelheden zijn een doelbedrag, geen garantie.

  • Als u Dapr-actoren gebruikt om statussen te beheren, moet u er rekening mee houden dat schalen naar nul niet wordt ondersteund. Dapr maakt gebruik van virtuele actoren voor het beheren van asynchrone aanroepen, wat betekent dat hun in-memory weergave niet is gekoppeld aan hun identiteit of levensduur.

Volgende stappen