Megosztás a következőn keresztül:


Skálázási szabályok beállítása az Azure Container Appsben

Az Azure Container Apps deklaratív skálázási szabályokon keresztül kezeli az automatikus horizontális skálázást. A tárolóalkalmazások változatának vertikális felskálázása során a változat új példányai igény szerint jönnek létre. Ezeket a példányokat replikáknak nevezzük.

A skálázási szabályok hozzáadása vagy szerkesztése a tárolóalkalmazás új változatát hozza létre. A változat a tárolóalkalmazás nem módosítható pillanatképe. Ha tudni szeretné, hogy mely típusú módosítások váltanak ki új változatot, tekintse meg a változatmódosítások típusait.

Az eseményvezérelt Container Apps-feladatok skálázási szabályokkal aktiválják az eseményeken alapuló végrehajtásokat.

Méretezési definíció

A skálázás a korlátok, szabályok és viselkedés kombinációja.

  • A korlátok határozzák meg a replikák minimális és maximális számát változatonként a tárolóalkalmazás skálázása során.

    Méretkorlát Alapértelmezett érték Minimális érték Maximális érték
    Replikák minimális száma változatonként 0 0 A maximálisan konfigurálható replikák száma 300 az Azure Portalon és 1000 az Azure CLI-ben.
    Replikák maximális száma változatonként 10 0 A maximálisan konfigurálható replikák száma 300 az Azure Portalon és 1000 az Azure CLI-ben.
  • A Container Apps által használt szabályok határozzák meg, hogy mikor kell replikákat hozzáadni vagy eltávolítani.

    A méretezési szabályok HTTP, TCP (Transmission Control Protocol) vagy egyéniként vannak implementálva.

  • A viselkedés a szabályok és korlátok kombinációja, amelyek meghatározzák a skálázási döntéseket az idő függvényében.

    A méretezési viselkedés ismerteti a méretezési döntések meghozatalát.

A méretezési szabályok meghatározásakor fontos figyelembe venni a következő elemeket:

  • Nem számítunk fel használati díjakat, ha a tárolóalkalmazás nullára van skálázva.
  • Előfordulhat, hogy a nem feldolgozott, de a memóriában maradó replikák számlázása alacsonyabb "tétlenségi" sebességgel történik. További információ: Számlázás.
  • Ha meg szeretné győződni arról, hogy a változat egy példánya mindig fut, állítsa a replikák minimális számát 1-re vagy magasabbra.

Skálázási szabályok

A skálázást az eseményindítók három különböző kategóriája vezérli:

  • HTTP: A korrektúra egyidejű HTTP-kéréseinek száma alapján.
  • TCP: A korrektúra egyidejű TCP-kapcsolatainak száma alapján.
  • Egyéni: Processzor, memória vagy támogatott eseményvezérelt adatforrások, például:
    • Azure Service Bus
    • Azure-eseményközpontok
    • Apache Kafka
    • Redis

Ha több skálázási szabályt határoz meg, a tárolóalkalmazás a szabályok első feltételének teljesülése után elkezd skálázni.

HTTP

HTTP-skálázási szabály esetén szabályozhatja az egyidejű HTTP-kérések küszöbértékét, amely meghatározza a tárolóalkalmazás változatának méretezését. Az egyidejű kérések száma 15 másodpercenként az elmúlt 15 másodperc kéréseinek 15-ével osztva. A Container Apps-feladatok nem támogatják a HTTP-skálázási szabályokat.

A következő példában a változat akár öt replikát is felskálázhat, és nullára skálázható. A méretezési tulajdonság másodpercenként 100 egyidejű kérésre van beállítva.

Példa

A http szakasz egy HTTP-méretezési szabályt határoz meg.

Skálázási tulajdonság Leírás Alapértelmezett érték Minimális érték Maximális érték
concurrentRequests Ha a HTTP-kérelmek száma meghaladja ezt az értéket, a rendszer hozzáad egy másik replikát. A replikák továbbra is felvesznek a készletbe az maxReplicas összeg erejéig. 10 0 n.a.
{
  ...
  "resources": {
    ...
    "properties": {
      ...
      "template": {
        ...
        "scale": {
          "minReplicas": 0,
          "maxReplicas": 5,
          "rules": [{
            "name": "http-rule",
            "http": {
              "metadata": {
                "concurrentRequests": "100"
              }
            }
          }]
        }
      }
    }
  }
}

Feljegyzés

Állítsa a properties.configuration.activeRevisionsMode tárolóalkalmazás singletulajdonságát a nem HTTP-eseményméretezési szabályok használatakor.

HTTP-méretezési szabály definiálása a --scale-rule-http-concurrency paraméterrel a parancsokban vagy update parancsokbancreate.

PARANCSSOR-paraméter Leírás Alapértelmezett érték Minimális érték Maximális érték
--scale-rule-http-concurrency Ha az egyidejű HTTP-kérelmek száma meghaladja ezt az értéket, a rendszer hozzáad egy másik replikát. A replikák továbbra is felvesznek a készletbe az max-replicas összeg erejéig. 10 0 n.a.
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. Ugrás a tárolóalkalmazásra az Azure Portalon

  2. Válassza a Méretezés lehetőséget.

  3. Válassza a Szerkesztés és üzembe helyezés lehetőséget.

  4. Válassza a Méretezés lapot.

  5. Válassza ki a replika minimális és maximális tartományát.

    Képernyőkép az Azure Container Apps méretezési tartomány csúszkáiról.

  6. Válassza a Hozzáadás lehetőséget.

  7. A Szabálynév mezőbe írjon be egy szabálynevet.

  8. A Típus legördülő listában válassza a HTTP-méretezés lehetőséget.

  9. Az Egyidejű kérések mezőben adja meg a tárolóalkalmazáshoz tartozó egyidejű kérések kívánt számát.

TCP

TCP-skálázási szabályokkal szabályozhatja az egyidejű TCP-kapcsolatok küszöbértékét, amely meghatározza az alkalmazás skálázását. Az egyidejű kapcsolatok száma 15 másodpercenként az elmúlt 15 másodpercben lévő kapcsolatok számának 15-ével való hányadosaként lesz kiszámítva. A Container Apps-feladatok nem támogatják a TCP-skálázási szabályokat.

A következő példában a tárolóalkalmazás változatának skálázása legfeljebb öt replikára terjed ki, és nullára skálázható. A méretezési küszöbérték másodpercenként 100 egyidejű kapcsolatra van beállítva.

Példa

A tcp szakasz egy TCP-méretezési szabályt határoz meg.

Skálázási tulajdonság Leírás Alapértelmezett érték Minimális érték Maximális érték
concurrentConnections Ha az egyidejű TCP-kapcsolatok száma meghaladja ezt az értéket, egy másik replika lesz hozzáadva. A replikákat az egyidejű kapcsolatok számának növekedésével a rendszer továbbra is hozzáadja az összeghez maxReplicas . 10 0 n.a.
{
  ...
  "resources": {
    ...
    "properties": {
      ...
      "template": {
        ...
        "scale": {
          "minReplicas": 0,
          "maxReplicas": 5,
          "rules": [{
            "name": "tcp-rule",
            "tcp": {
              "metadata": {
                "concurrentConnections": "100"
              }
            }
          }]
        }
      }
    }
  }
}

Definiáljon egy TCP-méretezési szabályt a --scale-rule-tcp-concurrency paraméterrel a create parancsokban.update

PARANCSSOR-paraméter Leírás Alapértelmezett érték Minimális érték Maximális érték
--scale-rule-tcp-concurrency Ha az egyidejű TCP-kapcsolatok száma meghaladja ezt az értéket, egy másik replika lesz hozzáadva. A replikákat az egyidejű kapcsolatok számának növekedésével a rendszer továbbra is hozzáadja az összeghez max-replicas . 10 0 n.a.
az containerapp create \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --environment <ENVIRONMENT_NAME> \
  --image <CONTAINER_IMAGE_LOCATION>
  --min-replicas 0 \
  --max-replicas 5 \
  --transport tcp \
  --ingress <external/internal> \
  --target-port <CONTAINER_TARGET_PORT> \
  --scale-rule-name azure-tcp-rule \
  --scale-rule-type tcp \
  --scale-rule-tcp-concurrency 100

Az Azure Portal nem támogatja. TCP-méretezési szabály konfigurálásához használja az Azure CLI-t vagy az Azure Resource Managert .

Egyéni

Létrehozhat egyéni Container Apps-méretezési szabályt bármely ScaledObject-alapú KEDA-skálázó alapján az alábbi alapértelmezett értékekkel:

Defaults Másodperc
Lekérdezési időköz 30
Lehűlési időszak 300

Eseményvezérelt Container Apps-feladatokhoz létrehozhat egy egyéni skálázási szabályt bármely ScaledJob-alapú KEDA-skálázó alapján.

Az alábbi példa bemutatja, hogyan hozhat létre egyéni méretezési szabályt.

Példa

Ez a példa bemutatja, hogyan alakíthat át Egy Azure Service Bus-skálázót Container Apps-méretezési szabálysá, de ugyanezt a folyamatot használja bármely más ScaledObject-alapú KEDA-méretezési specifikációhoz.

A hitelesítéshez a KEDA-méretezési paraméterek Container Apps-titkos kulcsokká alakulnak.

Az alábbi eljárás bemutatja, hogyan konvertálhat KEDA-skálázót tárolóalkalmazás-méretezési szabálysá. Ez a kódrészlet egy ARM-sablon részlete, amely megmutatja, hogy az egyes szakaszok hol illeszkednek a teljes sablon kontextusába.

{
  ...
  "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>"
                  }
                ]
              }
            }
          ]
        }
      }
    }
  }
}

Ebből a részletből megtudhatja, hogyan illeszkednek az alábbi példák az ARM-sablonba.

Először határozza meg a méretezési szabály típusát és metaadatait.

  1. A KEDA-méretezési specifikációban keresse meg az type értéket.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  2. Az ARM-sablonban írja be a méretezési szabály tulajdonságába a custom.type skálázási type értéket.

    ...
    "rules": [
      {
        "name": "azure-servicebus-queue-rule",
        "custom": {
          "type": "azure-servicebus",
          "metadata": {
            "queueName": "my-queue",
            "namespace": "service-bus-namespace",
            "messageCount": "5"
          }
        }
      }
    ]
    ...
    
  3. A KEDA-méretezési specifikációban keresse meg az metadata értékeket.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  4. Az ARM-sablonban adja hozzá az összes metaadat-értéket a custom.metadata méretezési szabály szakaszához.

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

Hitelesítés

A KEDA-skálázók támogatják a titkos kulcsok használatát a tulajdonság által authenticationRef hivatkozott TriggerAuthentication-ben. A TriggerAuthentication objektumot a Container Apps méretezési szabályához rendelheti.

Feljegyzés

A Container Apps skálázási szabályai csak titkos referenciákat támogatnak. Más hitelesítési típusok, például pod-identitások nem támogatottak.

  1. Keresse meg a TriggerAuthentication KEDA ScaledObject specifikációja által hivatkozott objektumot.

  2. A KEDA-specifikációban keresse meg az objektumot secretTargetRef és annak TriggerAuthentication titkos kódját.

    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. Az ARM-sablonban adja hozzá az összes bejegyzést a auth méretezési szabály tömbjéhez.

    1. Adjon hozzá egy titkos kulcsot a tárolóalkalmazás tömbhöz secrets , amely tartalmazza a titkos értéket.

    2. Állítsa a tulajdonság értékét triggerParameter a tulajdonság értékéreTriggerAuthenticationkey.

    3. Állítsa a tulajdonság értékét secretRef a Container Apps titkos kódjának nevére.

    {
      ...
      "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"
                      }
                    ]
                  }
                }
              ]
            }
          }
        }
      }
    }
    

    Egyes skálázók támogatják az FromEnv utótaggal rendelkező metaadatokat egy környezeti változó értékére való hivatkozáshoz. A Container Apps a környezeti változó ARM-sablonjában szereplő első tárolót tekinti meg.

    További biztonsági információkért tekintse meg a megfontolandó szempontokat ismertető szakaszt .

  1. A KEDA-méretezési specifikációban keresse meg az type értéket.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  2. A CLI parancsban állítsa a paramétert --scale-rule-type a specifikáció type értékére.

    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. A KEDA-méretezési specifikációban keresse meg az metadata értékeket.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  4. A CLI parancsban állítsa a paramétert --scale-rule-metadata a metaadat-értékekre.

    A parancssorban való használathoz yaML-formátumból kulcs/érték párdá kell alakítania az értékeket. Különítse el az egyes kulcs-/értékpárokat szóközzel.

    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"
    

Hitelesítés

A KEDA-skálázók támogatják a titkos kulcsok használatát az authenticationRef tulajdonság által hivatkozott TriggerAuthentication-ben . A TriggerAuthentication objektumot a Container Apps méretezési szabályához rendelheti.

Feljegyzés

A Container Apps skálázási szabályai csak titkos referenciákat támogatnak. Más hitelesítési típusok, például pod-identitások nem támogatottak.

  1. Keresse meg a TriggerAuthentication KEDA ScaledObject specifikációja által hivatkozott objektumot. Azonosítsa az egyes secretTargetRef objektumokat TriggerAuthentication .

    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. A tárolóalkalmazásban hozza létre a tulajdonságoknak megfelelő secretTargetRef titkos kulcsokat.

  3. A CLI-parancsban állítsa be az egyes secretTargetRef bejegyzések paramétereit.

    1. Hozzon létre egy titkos bejegyzést a --secrets paraméterrel. Ha több titkos kulcs is van, különítse el őket egy szóközzel.

    2. Hozzon létre egy hitelesítési bejegyzést a --scale-rule-auth paraméterrel. Ha több bejegyzés is van, különítse el őket szóközzel.

    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. Nyissa meg a tárolóalkalmazást az Azure Portalon.

  2. Válassza a Méretezés lehetőséget.

  3. Válassza a Szerkesztés és üzembe helyezés lehetőséget.

  4. Válassza a Méretezés és replikák lapot.

  5. Válassza ki a replika minimális és maximális tartományát.

    Képernyőkép az Azure Container Apps méretezési tartomány csúszkáiról.

  6. Válassza a Hozzáadás lehetőséget.

  7. A Szabálynév mezőbe írjon be egy szabálynevet.

  8. A Típus legördülő listában válassza az Egyéni lehetőséget.

  9. A KEDA-méretezési specifikációban keresse meg az type értéket.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  10. Az Egyéni szabály típusa mezőbe írja be a skálázó type értékét.

  11. A KEDA-méretezési specifikációban keresse meg az metadata értékeket.

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  12. A portálon keresse meg a Metaadatok szakaszt, és válassza a Hozzáadás lehetőséget. Adja meg az egyes elemek nevét és értékét a KEDA ScaledObject specifikáció metaadatai szakaszban.

Hitelesítés

A KEDA-skálázók támogatják a titkos kulcsok használatát az authenticationRef tulajdonság által hivatkozott TriggerAuthentication-ben . A TriggerAuthentication objektumot a Container Apps méretezési szabályához rendelheti.

Feljegyzés

A Container Apps skálázási szabályai csak titkos referenciákat támogatnak. Más hitelesítési típusok, például pod-identitások nem támogatottak.

  1. A tárolóalkalmazásban hozza létre a hivatkozni kívánt titkos kulcsokat .

  2. Keresse meg a TriggerAuthentication KEDA ScaledObject specifikációja által hivatkozott objektumot. Azonosítsa az egyes secretTargetRef objektumokat TriggerAuthentication .

    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. A Hitelesítés szakaszban válassza a Hozzáadás lehetőséget az egyes KEDA-paraméterek secretTargetRef bejegyzésének létrehozásához.

Alapértelmezett méretezési szabály

Ha nem hoz létre méretezési szabályt, a rendszer az alapértelmezett méretezési szabályt alkalmazza a tárolóalkalmazásra.

Eseményindító Minimális replikák Replikák maximális kihasználása
HTTP 0 10

Fontos

Ha nem engedélyezi a bejövő forgalmat, hozzon létre egy méretezési szabályt, vagy állítsa minReplicas be az 1 vagy több értéket. Ha a bejövő forgalom le van tiltva, és nem határoz meg egyéni méretezési szabályt minReplicas , akkor a tárolóalkalmazás nullára fog skálázni, és nem tud biztonsági másolatot készíteni.

Skálázási viselkedés

A skálázási viselkedés az alábbi alapértelmezett értékekkel rendelkezik:

Paraméter Érték
Lekérdezési időköz 30 másodperc
Lehűlési időszak 300 másodperc
Stabilizáló ablak vertikális felskálázása 0 másodperc
Leskálázási stabilizálási ablak 300 másodperc
Vertikális felskálázási lépés 1, 4, 100% az aktuális
Leskálázási lépés Az áram 100%-a
Skálázási algoritmus desiredReplicas = ceil(currentMetricValue / targetMetricValue)
  • A lekérdezési időköz az, hogy a KEDA milyen gyakran kérdezi le az eseményforrásokat. Ez az érték nem vonatkozik a HTTP- és TCP-méretezési szabályokra.
  • A lehűlés időtartama az utolsó esemény megfigyelése után, mielőtt az alkalmazás leskálázható a minimális replikaszámra.
  • A felskálázási stabilizálási időszak mennyi ideig vár, mielőtt vertikális felskálázási döntést hoz, ha teljesülnek a vertikális felskálázási feltételek.
  • A leskálázási stabilizálási időszak mennyi ideig vár, mielőtt a vertikális leskálázási feltételek teljesülése után dönt a vertikális leskálázásról.
  • A felskálázási lépés az új példányok hozzáadásának sebessége. Ez kezdődik 1, 4, 8, 16, 32, ... maximális replikaszámra.
  • A leskálázási lépés a replikák eltávolításának sebessége. Alapértelmezés szerint a leállításra szoruló replikák 100%-a törlődik.
  • A skálázási algoritmus a replikák aktuális kívánt számának kiszámításához használt képlet.

Példa

A következő méretezési szabály esetén:

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

Ahogy az alkalmazás felskálázható, a KEDA üres üzenetsorsal kezdődik, és végrehajtja a következő lépéseket:

  1. Ellenőrizze my-queue 30 másodpercenként.
  2. Ha az üzenetsor hossza 0, lépjen vissza az (1) helyre.
  3. Ha az üzenetsor hossza > 0, skálázza az alkalmazást 1-re.
  4. Ha az üzenetsor hossza 50, számítsa ki desiredReplicas = ceil(50/5) = 10.
  5. Alkalmazás méretezése min(maxReplicaCount, desiredReplicas, max(4, 2*currentReplicaCount))
  6. Lépjen vissza az (1) helyre.

Ha az alkalmazást a replikák maximális száma 20-ra skálázták, a skálázás ugyanazokat az előző lépéseket kell elvégeznie. A leskálázás csak akkor történik, ha a feltétel 300 másodpercig teljesült (a leskálázási stabilizálási időszak). Ha az üzenetsor hossza 0, a KEDA 300 másodpercig (lehűlési ideig) vár, mielőtt 0-ra skálázhatja az alkalmazást.

Megfontolások

Ismert korlátozások

  • A függőleges skálázás nem támogatott.

  • A replikamennyiségek célösszegek, nem garancia.

  • Ha Dapr-szereplőkkel kezeli az állapotokat, vegye figyelembe, hogy a nullára történő skálázás nem támogatott. A Dapr virtuális szereplőkkel kezeli az aszinkron hívásokat, ami azt jelenti, hogy a memóriában való ábrázolásuk nem kapcsolódik az identitásukhoz vagy az élettartamukhoz.

Következő lépések