Nastavení pravidel škálování v Azure Container Apps
Azure Container Apps spravuje automatické horizontální škálování prostřednictvím sady deklarativních pravidel škálování. Při horizontálním navýšení kapacity revizí aplikace kontejneru se vytvoří nové instance revize na vyžádání. Tyto instance se označují jako repliky.
Přidání nebo úprava pravidel škálování vytvoří novou revizi vaší aplikace kontejneru. Revize je neměnný snímek vaší aplikace kontejneru. Informace o typech změn, které aktivují novou revizi, najdete v tématu Typy změn revizí.
Úlohy Container Apps řízené událostmi používají pravidla škálování k aktivaci spouštění na základě událostí.
Definice škálování
Škálování je kombinace omezení, pravidel a chování.
Omezení definují minimální a maximální možný počet replik na revizi při škálování vaší aplikace kontejneru.
Limit škálování Default value Min. hodnota Max. hodnota Minimální počet replik na revizi 0 0 Maximální počet konfigurovatelných replik je 1 000. Maximální počet replik na revizi 10 0 Maximální počet konfigurovatelných replik je 1 000. Pravidla jsou kritéria používaná službou Container Apps k rozhodování, kdy přidat nebo odebrat repliky.
Pravidla škálování se implementují jako HTTP, TCP (Transmission Control Protocol) nebo vlastní.
Chování je kombinace pravidel a omezení k určení rozhodnutí o škálování v průběhu času.
Chování škálování vysvětluje, jak se provádějí rozhodnutí o škálování.
Při definování pravidel škálování je důležité vzít v úvahu následující položky:
- Pokud se vaše aplikace kontejneru škáluje na nulu, neúčtují se vám poplatky za využití.
- Repliky, které se nezpracovávají, ale zůstávají v paměti, se můžou účtovat nižší sazbou nečinnosti. Další informace najdete v tématu Fakturace.
- Pokud chcete zajistit, aby byla instance revize vždy spuštěná, nastavte minimální počet replik na 1 nebo vyšší.
Pravidla škálování
Škálování je řízeno třemi různými kategoriemi triggerů:
- HTTP: Na základě počtu souběžných požadavků HTTP na vaši revizi.
- TCP: Na základě počtu souběžných připojení TCP k revizi.
- Vlastní: Na základě procesoru, paměti nebo podporovaných zdrojů dat řízených událostmi, například:
- Azure Service Bus
- Azure Event Hubs
- Apache Kafka
- Redis
Pokud definujete více než jedno pravidlo škálování, začne se aplikace kontejneru škálovat, jakmile splníte první podmínku všech pravidel.
HTTP
S pravidlem škálování HTTP máte kontrolu nad prahovou hodnotou souběžných požadavků HTTP, které určují, jak se vaše aplikace kontejneru revizí škáluje. Každých 15 sekund se počet souběžných požadavků vypočítá jako počet požadavků v posledních 15 sekundách vydělený číslem 15. Úlohy Container Apps nepodporují pravidla škálování HTTP.
V následujícím příkladu se revize škáluje až na pět replik a může se škálovat na nulu. Vlastnost škálování je nastavená na 100 souběžných požadavků za sekundu.
Příklad
Oddíl http
definuje pravidlo škálování HTTP.
Vlastnost Škálování | Popis | Default value | Min. hodnota | Max. hodnota |
---|---|---|---|---|
concurrentRequests |
Pokud počet požadavků HTTP tuto hodnotu překročí, přidá se další replika. Repliky se do fondu přidávají až do maxReplicas výše. |
10 | 0 | Není k dispozici |
{
...
"resources": {
...
"properties": {
...
"template": {
...
"scale": {
"minReplicas": 0,
"maxReplicas": 5,
"rules": [{
"name": "http-rule",
"http": {
"metadata": {
"concurrentRequests": "100"
}
}
}]
}
}
}
}
}
Poznámka:
properties.configuration.activeRevisionsMode
Při použití pravidel škálování událostí mimo HTTP nastavte vlastnost aplikace kontejneru na single
hodnotu .
Definujte pravidlo škálování HTTP pomocí parametru --scale-rule-http-concurrency
create
v příkazech nebo update
příkazech.
Parametr rozhraní příkazového řádku | Popis | Default value | Min. hodnota | Max. hodnota |
---|---|---|---|---|
--scale-rule-http-concurrency |
Pokud počet souběžných požadavků HTTP tuto hodnotu překročí, přidá se další replika. Repliky se do fondu přidávají až do max-replicas výše. |
10 | 0 | Není k dispozici |
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
Přechod do aplikace kontejneru na webu Azure Portal
Vyberte Škálovat.
Vyberte Upravit a nasadit.
Vyberte kartu Měřítko.
Vyberte minimální a maximální rozsah replik.
Vyberte Přidat.
Do pole Název pravidla zadejte název pravidla.
V rozevíracím seznamu Typ vyberte škálování HTTP.
Do pole Souběžné požadavky zadejte požadovaný počet souběžných požadavků pro vaši aplikaci kontejneru.
TCP
U pravidla škálování protokolu TCP máte kontrolu nad prahovou hodnotou souběžných připojení TCP, která určuje, jak se vaše aplikace škáluje. Každých 15 sekund se počet souběžných připojení vypočítá jako počet připojení v posledních 15 sekundách vydělený číslem 15. Úlohy Container Apps nepodporují pravidla škálování TCP.
V následujícím příkladu se revize aplikace kontejneru škáluje až na pět replik a může škálovat na nulu. Prahová hodnota škálování je nastavená na 100 souběžných připojení za sekundu.
Příklad
Oddíl tcp
definuje pravidlo škálování protokolu TCP.
Vlastnost Škálování | Popis | Default value | Min. hodnota | Max. hodnota |
---|---|---|---|---|
concurrentConnections |
Pokud počet souběžných připojení TCP tuto hodnotu překročí, přidá se další replika. Repliky se stále přidávají na částku maxReplicas , protože se zvyšuje počet souběžných připojení. |
10 | 0 | Není k dispozici |
{
...
"resources": {
...
"properties": {
...
"template": {
...
"scale": {
"minReplicas": 0,
"maxReplicas": 5,
"rules": [{
"name": "tcp-rule",
"tcp": {
"metadata": {
"concurrentConnections": "100"
}
}
}]
}
}
}
}
}
Definujte pravidlo škálování protokolu TCP pomocí parametru --scale-rule-tcp-concurrency
create
v příkazech nebo update
příkazech.
Parametr rozhraní příkazového řádku | Popis | Default value | Min. hodnota | Max. hodnota |
---|---|---|---|---|
--scale-rule-tcp-concurrency |
Pokud počet souběžných připojení TCP tuto hodnotu překročí, přidá se další replika. Repliky se stále přidávají na částku max-replicas , protože se zvyšuje počet souběžných připojení. |
10 | 0 | Není k dispozici |
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
Na webu Azure Portal se nepodporuje. Ke konfiguraci pravidla škálování protokolu TCP použijte Azure CLI nebo Azure Resource Manager.
Vlastní
Vlastní pravidlo škálování Container Apps můžete vytvořit na základě libovolného škálovače KEDA založeného na ScaledObjectu s těmito výchozími nastaveními:
Defaults | Sekundy |
---|---|
Interval dotazování | 30 |
Období chladnutí | 300 |
Pro úlohy Container Apps řízené událostmi můžete vytvořit vlastní pravidlo škálování založené na škálovacích modulech KEDA založených na škálovací službě KEDA.
Následující příklad ukazuje, jak vytvořit vlastní pravidlo škálování.
Příklad
Tento příklad ukazuje, jak převést škálovací nástroj služby Azure Service Bus na pravidlo škálování Container Apps, ale stejný postup použijete pro jakoukoli jinou specifikaci škálování KEDA založenou na Objektu ScaledObject.
Pro ověřování přebírají parametry ověřování keda scaler tajné kódy nebo spravovanou identitu Container Apps.
Následující postup ukazuje, jak převést škálovací nástroj KEDA na pravidlo škálování kontejnerové aplikace. Tento fragment kódu je výňatek šablony ARM, který vám ukáže, kde se jednotlivé oddíly vejdou do kontextu celkové šablony.
{
...
"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>"
}
]
}
}
]
}
}
}
}
}
Informace o tom, jak následující příklady odpovídají šabloně ARM, najdete v tomto výňatku.
Nejprve definujete typ a metadata pravidla škálování.
Ve specifikaci škálovače KEDA vyhledejte
type
hodnotu.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
V šabloně ARM zadejte hodnotu scaleru
type
docustom.type
vlastnosti pravidla škálování.... "rules": [ { "name": "azure-servicebus-queue-rule", "custom": { "type": "azure-servicebus", "metadata": { "queueName": "my-queue", "namespace": "service-bus-namespace", "messageCount": "5" } } } ] ...
Ve specifikaci škálování KEDA vyhledejte
metadata
hodnoty.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
V šabloně ARM přidejte do oddílu pravidla škálování všechny hodnoty
custom.metadata
metadat.... "rules": [ { "name": "azure-servicebus-queue-rule", "custom": { "type": "azure-servicebus", "metadata": { "queueName": "my-queue", "namespace": "service-bus-namespace", "messageCount": "5" } } } ] ...
Ověřování
Pravidla škálování Container Apps podporují ověřování založené na tajných kódech. Pravidla škálování pro prostředky Azure, včetně Azure Queue Storage, Azure Service Bus a Azure Event Hubs, podporují také spravovanou identitu. Pokud je to možné, použijte ověřování spravované identity, abyste se vyhnuli ukládání tajných kódů v aplikaci.
Použití tajných kódů
Pokud chcete pro ověřování používat tajné kódy, musíte v poli kontejnerové aplikace secrets
vytvořit tajný kód. Hodnota tajného kódu se používá v auth
poli pravidla škálování.
Škálovací nástroje KEDA můžou používat tajné kódy v TriggerAuthentication , na které tato authenticationRef
vlastnost odkazuje. Objekt TriggerAuthentication můžete mapovat na pravidlo škálování Container Apps.
TriggerAuthentication
Vyhledejte objekt odkazovaný specifikací KEDAScaledObject
.V objektu
TriggerAuthentication
vyhledejte každýsecretTargetRef
a jeho přidružený tajný klíč.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
V šabloně ARM pro každý tajný kód:
Přidejte tajný kód do pole aplikace
secrets
kontejneru obsahující název a hodnotu tajného kódu.Přidejte položku do
auth
pole pravidla škálování.Nastavte hodnotu
triggerParameter
vlastnosti na hodnotusecretTargetRef
vlastnosti 'sparameter
.Nastavte hodnotu
secretRef
vlastnosti na názevsecretTargetRef
vlastnosti 'skey
.
{ ... "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" } ] } } ] } } } } }
Některé škálovací nástroje podporují metadata s příponou
FromEnv
pro odkaz na hodnotu v proměnné prostředí. Container Apps se podívá na první kontejner uvedený v šabloně ARM pro proměnnou prostředí.Další informace související se zabezpečením najdete v části s aspekty.
Použití spravované identity
Pravidla škálování služby Container Apps můžou používat spravovanou identitu k ověřování pomocí služeb Azure. Následující šablona ARM předává spravovanou identitu založenou na systému, aby se ověřila pro škálovač front Azure.
"scale": {
"minReplicas": 0,
"maxReplicas": 4,
"rules": [
{
"name": "azure-queue",
"custom": {
"type": "azure-queue",
"metadata": {
"accountName": "apptest123",
"queueName": "queue1",
"queueLength": "1"
},
"identity": "system"
}
}
]
}
Další informace o používání spravované identity s pravidly škálování najdete v tématu Spravovaná identita.
Ve specifikaci škálovače KEDA vyhledejte
type
hodnotu.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
V příkazu rozhraní příkazového řádku nastavte
--scale-rule-type
parametr na hodnotu specifikacetype
.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"
Ve specifikaci škálování KEDA vyhledejte
metadata
hodnoty.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
V příkazu rozhraní příkazového řádku nastavte
--scale-rule-metadata
parametr na hodnoty metadat.Pro použití na příkazovém řádku je potřeba transformovat hodnoty z formátu YAML na pár klíč/hodnota. Jednotlivé páry klíč/hodnota oddělte mezerou.
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"
Ověřování
Pravidla škálování Container Apps podporují ověřování založené na tajných kódech. Pravidla škálování pro prostředky Azure, včetně Azure Queue Storage, Azure Service Bus a Azure Event Hubs, podporují také spravovanou identitu. Pokud je to možné, použijte ověřování spravované identity, abyste se vyhnuli ukládání tajných kódů v aplikaci.
Použití tajných kódů
Pokud chcete nakonfigurovat ověřování založené na tajných kódech pro pravidlo škálování Container Apps, nakonfigurujte tajné kódy v aplikaci kontejneru a odkazujte na ně v pravidle škálování.
Scaler KEDA podporuje tajné kódy v TriggerAuthentication , které authenticationRef
vlastnost používá pro referenci. Objekt můžete namapovat TriggerAuthentication
na pravidlo škálování Container Apps.
TriggerAuthentication
Vyhledejte objekt odkazovaný specifikací KEDAScaledObject
. Identifikujte každýsecretTargetRef
objektTriggerAuthentication
.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
V aplikaci kontejneru vytvořte tajné kódy , které odpovídají vlastnostem
secretTargetRef
.V příkazu rozhraní příkazového řádku nastavte parametry pro každou
secretTargetRef
položku.Vytvořte položku tajného kódu s parametrem
--secrets
. Pokud existuje více tajných kódů, oddělte je mezerou.Vytvořte položku ověřování s parametrem
--scale-rule-auth
. Pokud existuje více položek, oddělte je mezerou.
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"
Použití spravované identity
Pravidla škálování služby Container Apps můžou používat spravovanou identitu k ověřování pomocí služeb Azure. Následující příkaz vytvoří aplikaci kontejneru se spravovanou identitou přiřazenou uživatelem a použije ji k ověření pro službu Azure Queue Scaler.
az containerapp create \
--resource-group <RESOURCE_GROUP> \
--name <APP_NAME> \
--environment <ENVIRONMENT_ID> \
--user-assigned <USER_ASSIGNED_IDENTITY_ID> \
--scale-rule-name azure-queue \
--scale-rule-type azure-queue \
--scale-rule-metadata "accountName=<AZURE_STORAGE_ACCOUNT_NAME>" "queueName=queue1" "queueLength=1" \
--scale-rule-identity <USER_ASSIGNED_IDENTITY_ID>
Zástupné symboly nahraďte hodnotami.
Přejděte do aplikace kontejneru na webu Azure Portal.
Vyberte Škálovat.
Vyberte Upravit a nasadit.
Vyberte kartu Škálování a repliky.
Vyberte minimální a maximální rozsah replik.
Vyberte Přidat.
Do pole Název pravidla zadejte název pravidla.
V rozevíracím seznamu Typ vyberte Vlastní.
Ve specifikaci škálovače KEDA vyhledejte
type
hodnotu.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
Do pole Typ vlastního pravidla zadejte hodnotu škálovače
type
.Ve specifikaci škálování KEDA vyhledejte
metadata
hodnoty.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
Na portálu vyhledejte část Metadata a vyberte Přidat. Zadejte název a hodnotu pro každou položku v části metadat specifikace KEDA
ScaledObject
.
Ověřování
Pravidla škálování Container Apps podporují ověřování založené na tajných kódech. Pravidla škálování pro prostředky Azure, včetně Azure Queue Storage, Azure Service Bus a Azure Event Hubs, podporují také spravovanou identitu. Pokud je to možné, použijte ověřování spravované identity, abyste se vyhnuli ukládání tajných kódů v aplikaci.
Použití tajných kódů
V aplikaci kontejneru vytvořte tajné kódy , na které chcete odkazovat.
TriggerAuthentication
Vyhledejte objekt odkazovaný specifikací KEDAScaledObject
. Identifikujte každýsecretTargetRef
objektTriggerAuthentication
.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
V části Ověřování vyberte Přidat a vytvořte položku pro každý parametr KEDA
secretTargetRef
.
Použití spravované identity
Ověřování spravované identity se na webu Azure Portal nepodporuje. K ověření pomocí spravované identity použijte Azure CLI nebo Azure Resource Manager.
Výchozí pravidlo škálování
Pokud pravidlo škálování nevytvoříte, použije se ve vaší aplikaci kontejneru výchozí pravidlo škálování.
Trigger | Minimální repliky | Maximální počet replik |
---|---|---|
HTTP | 0 | 10 |
Důležité
Pokud příchozí přenos dat nepovolíte, nezapomeňte vytvořit pravidlo škálování nebo nastavit minReplicas
na 1 nebo více. Pokud je příchozí přenos dat zakázaný a nedefinujete minReplicas
ani vlastní pravidlo škálování, aplikace kontejneru se škáluje na nulu a nebude mít žádný způsob, jak spustit zálohování.
Chování škálování
Chování škálování má následující výchozí hodnoty:
Parametr | Hodnota |
---|---|
Interval dotazování | 30 sekund |
Období chladnutí | 300 sekund |
Vertikální navýšení kapacity okna stabilizace | 0 sekund |
Vertikální snížení kapacity okna stabilizace | 300 sekund |
Vertikální navýšení kapacity | 1, 4, 100 % aktuálního |
Vertikální snížení kapacity | 100 % aktuálního |
Algoritmus škálování | desiredReplicas = ceil(currentMetricValue / targetMetricValue) |
- Interval dotazování určuje, jak často se zdroje událostí dotazují nástrojem KEDA. Tato hodnota se nevztahuje na pravidla škálování HTTP a TCP.
- Doba chladnutí je doba, po které byla poslední událost pozorována před vertikálním snížením kapacity aplikace na minimální počet replik.
- Okno stabilizace vertikálního navýšení kapacity je doba čekání před provedením rozhodnutí vertikálního navýšení kapacity po splnění podmínek vertikálního navýšení kapacity.
- Okno stabilizace vertikálního snížení kapacity je doba čekání před provedením rozhodnutí o snížení kapacity po splnění podmínek vertikálního snížení kapacity.
- Krok vertikálního navýšení kapacity je rychlost přidání nových instancí. Začíná 1, 4, 8, 16, 32, ... až do nakonfigurovaného maximálního počtu replik.
- Krok vertikálního snížení kapacity je rychlost odebrání replik. Ve výchozím nastavení se odebere 100 % replik, které je potřeba vypnout.
- Algoritmus škálování je vzorec použitý k výpočtu aktuálního požadovaného počtu replik.
Příklad
Pro následující pravidlo škálová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"
}
}
}
]
Při horizontálním navýšení kapacity aplikace začne KEDA s prázdnou frontou a provede následující kroky:
- Zkontrolujte
my-queue
každých 30 sekund. - Pokud se délka fronty rovná 0, vraťte se na (1).
- Pokud je > délka fronty 0, škálujte aplikaci na 1.
- Pokud je délka fronty 50, počítejte
desiredReplicas = ceil(50/5) = 10
. - Škálování aplikace na
min(maxReplicaCount, desiredReplicas, max(4, 2*currentReplicaCount))
- Vraťte se na (1).
Pokud se aplikace škálovala na maximální počet replik 20, škálování prochází stejnými předchozími kroky. Vertikální snížení kapacity se stane pouze v případě, že podmínka byla splněna po dobu 300 sekund (okno stabilizace vertikálního snížení kapacity). Jakmile je délka fronty 0, keDA před škálováním aplikace na 0 počká 300 sekund (období ochladnutí).
Důležité informace
V režimu více revizí vytvoří přidání nové aktivační události škálování novou revizi aplikace, ale stará revize zůstane k dispozici ve starých pravidlech škálování. Ke správě přidělení provozu použijte stránku Správa revizí.
Pokud se aplikace škáluje na nulu, nebudou účtovány žádné poplatky za využití. Další informace o cenách najdete v tématu Fakturace v Azure Container Apps.
Potřebujete povolit ochranu dat pro všechny aplikace .NET v Azure Container Apps. Podrobnosti najdete v tématu Nasazení a škálování aplikace ASP.NET Core v Azure Container Apps .
Známá omezení
Vertikální škálování se nepodporuje.
Množství repliky představují cílovou částku, nikoli záruku.
Pokud ke správě stavů používáte aktéry Dapr, měli byste mít na paměti, že škálování na nulu se nepodporuje. Dapr používá virtuální aktéry ke správě asynchronních volání, což znamená, že jejich reprezentace v paměti není svázaná s jejich identitou nebo životností.