Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 platform igény szerint új példányokat hoz létre a változatból. Ezeket a példányokat replikáknak nevezzük.
A skálázási viselkedés támogatásához Azure Container Apps KEDA-t (Kubernetes eseményvezérelt automatikus skálázást) használ. A KEDA számos metrika, például HTTP-kérések, üzenetsor-üzenetek, PROCESSZOR- és memóriaterhelés, valamint eseményforrások( például Azure Service Bus, Azure Event Hubs, Apache Kafka és Redis) skálázását támogatja. További információ: Skálázók a KEDA dokumentációjában.
Skálázási szabályok hozzáadásakor vagy szerkesztésekor létre kell hoznia a tárolóalkalmazás új változatát. A revízió 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 A másolatok minimális száma módosításonként 0 0 A maximálisan konfigurálható replikák száma 1000. Replikák maximális száma verziónként 10 1 A maximálisan konfigurálható replikák száma 1000. 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 vegye figyelembe 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.
- Azokért a replikákért, amelyek nem végeznek feldolgozást, de a memóriában maradnak, alacsonyabb, „üresjárati” díjat számíthatnak fel. 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.
- A platformfrissítések vagy -karbantartások során előfordulhat, hogy átmenetileg több replika jelenik meg a vártnál. A Container Apps biztosítja, hogy az üzemi munkafolyamatra ne legyen hatással az új példányok előmelegítése a forgalom áthelyezése előtt, hasonlóan a Kubernetes alapértelmezett viselkedéséhez. A további replikák a művelet befejeződése után automatikusan törlődnek.
Skálázási szabályok
Az eseményindítók három kategóriája határozza meg a skálázás módját:
- HTTP: A korrektúra egyidejű HTTP-kéréseinek száma alapján.
- TCP: A módosítás egyidejű TCP-kapcsolatainak száma alapján.
-
Egyéni: Egyéni metrikák alapján, például:
- CPU
- Memória
- Támogatott eseményvezérelt adatforrások:
- Azure Service Bus
- Azure Event Hubs
- Apache Kafka
- Redis
Ha egynél 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 skálázni kezd.
Megjegyzés
Ha a Functionst a Container Appsben használja, az alapértelmezett felület automatikusan konfigurálja a méretezési szabályokat a függvény eseményindítói és kötései alapján. A Azure portál letiltja a A méretezési szabályok hozzáadása gombot ezekhez az alkalmazásokhoz. Ha ügyfél által meghatározott szabályokra van szüksége, használja a allowScalingRuleOverride elemet az Azure Functions automatikusan létrehozott KEDA-méretezési szabályainak felülbírálása a Container Appsben című témakörben leírtak szerint.
HTTP
HTTP-skálázási szabály használatakor 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ámát 15 másodpercenként úgy számítjuk ki, hogy az elmúlt 15 másodpercben érkezett kérések számát elosztjuk 15-tel. A Container Apps-feladatok nem támogatják a HTTP-skálázási szabályokat.
A következő példában a rendszer akár öt példányig kiterjeszthető, és visszaállítható nullára. 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, az alkalmazás hozzáad egy másik replikát. Az alkalmazás továbbra is hozzáad replikákat az maxReplicas összeghez. |
10 | 1 | n.a. |
resource symbolicname 'Microsoft.App/containerApps@2025-02-02-preview' = {
...
properties: {
...
template: {
...
scale: {
maxReplicas: 0
minReplicas: 5
rules: [
{
name: 'http-rule'
http: {
metadata: {
concurrentRequests: '100'
}
}
}
]
}
}
}
}
Megjegyzés
Állítsa be a properties.configuration.activeRevisionsMode tárolóalkalmazás single tulajdonságát a nem HTTP-eseményméretezési szabályok használatakor.
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, az alkalmazás hozzáad egy másik replikát. Az alkalmazás továbbra is hozzáad replikákat az maxReplicas összeghez. |
10 | 1 | n.a. |
{
...
"resources": {
...
"properties": {
...
"template": {
...
"scale": {
"minReplicas": 0,
"maxReplicas": 5,
"rules": [{
"name": "http-rule",
"http": {
"metadata": {
"concurrentRequests": "100"
}
}
}]
}
}
}
}
}
Megjegyzés
Állítsa be a properties.configuration.activeRevisionsMode tárolóalkalmazás single tulajdonsá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 create parancsokban.update
| parancssori felület 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, az alkalmazás újabb replikát ad hozzá. Az alkalmazás továbbra is hozzáad replikákat az max-replicas összeghez. |
10 | 1 | 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
Keresse meg a tárolóalkalmazást az Azure portálon.
Válassza a Méretezés lehetőséget.
Válassza a Szerkesztés és üzembe helyezés lehetőséget.
Válassza a Méretezés lapot.
Válassza ki a replika minimális és maximális tartományát.
Az Azure Container Apps skálázási tartományának csúszkája.
Válassza a Hozzáadás lehetőséget.
A Szabálynév mezőbe írjon be egy szabálynevet.
A Típus legördülő listában válassza a HTTP-méretezés lehetőséget.
Az Egyidejű kérések mezőben adja meg a tárolóalkalmazáshoz használni kívánt egyidejű kérések számát.
TCP
TCP-skálázási szabály használatakor ön határozza meg az egyidejű TCP-kapcsolatok küszöbértékét, amely meghatározza az alkalmazás skálázását. A rendszer 15 másodpercenként kiszámítja az egyidejű kapcsolatok számát úgy, hogy az elmúlt 15 másodpercben mért kapcsolatok számát elosztja 15-tel. 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 legfeljebb öt replikára skálázódhat, és nullára is visszaskálázódhat. 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, a rendszer egy másik replikát ad hozzá. A rendszer a párhuzamos kapcsolatok számának növekedésével tovább növeli a replikák számát, egészen a(z) maxReplicas mennyiségig. |
10 | 1 | n.a. |
resource symbolicname 'Microsoft.App/containerApps@2025-02-02-preview' = {
...
properties: {
...
template: {
...
scale: {
maxReplicas: 0
minReplicas: 5
rules: [
{
name: 'tcp-rule'
http: {
metadata: {
concurrentConnections: '100'
}
}
}
]
}
}
}
}
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, a rendszer egy másik replikát ad hozzá. A rendszer a replikák számát folyamatosan növeli egészen a(z) maxReplicas mennyiségig, ahogy az egyidejű kapcsolatok száma nő. |
10 | 1 | n.a. |
{
...
"resources": {
...
"properties": {
...
"template": {
...
"scale": {
"minReplicas": 0,
"maxReplicas": 5,
"rules": [{
"name": "tcp-rule",
"tcp": {
"metadata": {
"concurrentConnections": "100"
}
}
}]
}
}
}
}
}
TCP-skálázási szabály megadása a create vagy a update parancsban a --scale-rule-tcp-concurrency paraméter használatával.
| parancssori felület 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, a rendszer egy másik replikát ad hozzá. A rendszer egyre több replikát ad hozzá egészen a(z) max-replicas mennyiségig, ahogy nő az egyidejű kapcsolatok száma. |
10 | 1 | 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
A Azure portál nem támogatja ezt a funkciót. TCP-méretezési szabály konfigurálásához használja a Azure CLI, Azure Resource Manager vagy Bicep.
Egyéni
Hozzon létre egy egyéni Container Apps skálázási szabályt bármely ScaledObject-alapúKEDA-skálázó alapján az alábbi alapértelmezett értékekkel:
| Alapértelmezett érték | Másodperc |
|---|---|
| Lekérdezési időköz | 30 |
| Lehűlési időszak | 300 |
Megjegyzés
A lehűlési időszak csak akkor lép érvénybe, ha a végső replikáról 0-ra skáláz. A lehűlési időszak nem befolyásolja a skálázást, mivel a többi replika el lesz távolítva.
Eseményvezérelt Container Apps-feladatokhoz hozzon létre 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 konvertálhat egy Azure Service Bus skálázót Tárolóalkalmazások 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ő hitelesítési paraméterei a Container Apps titkos adatait vagy a felügyelt identitást veszik figyelembe.
Az alábbi eljárás bemutatja, hogyan konvertálhat egy KEDA-skálázót egy tárolóalkalmazás-méretezési szabállyá. Ez a kódrészlet egy Bicep-sablon részlete, amely bemutatja, hogy az egyes szakaszok hol illeszkednek a teljes sablon kontextusába.
resource symbolicname 'Microsoft.App/containerApps@2025-02-02-preview' = {
...
properties: {
...
configuration: {
...
secrets: [
{
name: '<NAME>'
value: '<VALUE>'
}
]
}
template: {
...
scale: {
maxReplicas: 0
minReplicas: 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 a Bicep sablonba.
Először határozza meg a méretezési szabály típusát és metaadatait.
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"A Bicep-sablonban adja meg a skálázási
typeértéket acustom.typeméretezési szabály tulajdonságába.... rules: [ { name: 'azure-servicebus-queue-rule' custom: { type: 'azure-servicebus' ⬅️ metadata: { queueName: 'my-queue' namespace: 'service-bus-namespace' messageCount: '5' } } } ] ...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" ⬅️A Bicep-sablonban adja hozzá az összes metaadat-értéket a
custom.metadatamé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 Container Apps skálázási szabályai támogatják a titkos kódokon alapuló hitelesítést. Az Azure erőforrásokra vonatkozó skálázási szabályok , beleértve a Azure Queue Storage, a Azure Service Bus és a Azure Event Hubs, szintén támogatják a felügyelt identitást. Ha lehetséges, használjon felügyelt identitáshitelesítést a titkos kódok alkalmazáson belüli tárolásának elkerülése érdekében.
Titkos kódok használata
A titkos kódok hitelesítéshez való használatához hozzon létre egy titkos kulcsot a tárolóalkalmazás tömbjében secrets . Használja a titkos értéket a auth méretezési szabály tömbjében.
A KEDA-skálázók használhatnak titkos adatokat egy olyan TriggerAuthentication elemben, amelyre a authenticationRef tulajdonság hivatkozik. A TriggerAuthentication objektumot a Container Apps méretezési szabályához rendelheti.
Keresse meg a
TriggerAuthenticationKEDAScaledObjectspecifikációja által hivatkozott objektumot.Az
TriggerAuthenticationobjektumban keresse meg minden egyessecretTargetRefés a hozzá tartozó titkot.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-authA Bicep-sablonban minden titkos kódhoz:
Adjon hozzá egy titkos kulcsot a tárolóalkalmazás tömbhöz
secrets, amely tartalmazza a titkos kód nevét és értékét.Adjon hozzá egy elemet a
authméretezési szabály tömbjéhez.Állítsa be a
triggerParametertulajdonság értékét asecretTargetRefparametertulajdonságának értékére.Állítsa a
secretReftulajdonság értékét asecretTargetRefkeytulajdonság nevére.resource symbolicname 'Microsoft.App/containerApps@2025-02-02-preview' = { ... properties: { ... configuration: { ... secrets: [ { ⬅️ name: 'connection-string-secret' ⬅️ value: '<SERVICE_BUS_CONNECTION_STRING>' ⬅️ } ⬅️ ] } template: { ... scale: { maxReplicas: 0 minReplicas: 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
FromEnvutó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 .
Felügyelt identitás használata
A Container Apps skálázási szabályai a felügyelt identitást használják hitelesítéshez az Azure szolgáltatásokkal. Az alábbi Bicep-sablon a rendszeralapú felügyelt identitást használja az Azure-üzenetsor-skálázó hitelesítéséhez.
A következő kód használata előtt cserélje le az értékekkel körülvett <> helyőrzőket.
scale: {
minReplicas: 0
maxReplicas: 4
rules: [
{
name: 'azure-queue'
custom: {
type: 'azure-queue'
metadata: {
accountName: '<ACCOUNT_NAME>'
queueName: '<QUEUE_NAME>'
queueLength: '1'
},
identity: 'system'
}
}
]
}
A felügyelt identitás méretezési szabályokkal való használatáról további információt a Felügyelt identitás című témakörben talál.
Az alábbi eljárás bemutatja, hogyan konvertálhat egy KEDA-skálázót egy tárolóalkalmazás-méretezési szabállyá. 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.
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"Az ARM-sablonban írja be a méretezési szabály tulajdonságába a
typeskálázásicustom.typeértéket.... "rules": [ { "name": "azure-servicebus-queue-rule", "custom": { "type": "azure-servicebus", ⬅️ "metadata": { "queueName": "my-queue", "namespace": "service-bus-namespace", "messageCount": "5" } } } ] ...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" ⬅️Az ARM-sablonban adja hozzá az összes metaadat-értéket a
custom.metadatamé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 Container Apps skálázási szabályai támogatják a titkos kódokon alapuló hitelesítést. Az Azure erőforrásokra vonatkozó skálázási szabályok , beleértve a Azure Queue Storage, a Azure Service Bus és a Azure Event Hubs, szintén támogatják a felügyelt identitást. Ha lehetséges, használjon felügyelt identitáshitelesítést a titkos kódok alkalmazáson belüli tárolásának elkerülése érdekében.
Titkos kódok használata
A titkos kódok hitelesítéshez való használatához hozzon létre egy titkos kulcsot a tárolóalkalmazás tömbjében secrets . Használja a titkos értéket a auth méretezési szabály tömbjében.
A KEDA-skálázók a authenticationRef tulajdonság által hivatkozott TriggerAuthentication objektumban lévő titkos adatokat használhatják. A TriggerAuthentication objektumot a Container Apps méretezési szabályához rendelheti.
Keresse meg a
TriggerAuthenticationKEDAScaledObjectspecifikációja által hivatkozott objektumot.Az
TriggerAuthenticationobjektumban keresse meg minden egyessecretTargetRefés a hozzá tartozó titkot.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-authAz ARM-sablonban minden titkos kódhoz:
Adjon hozzá egy titkos kulcsot a tárolóalkalmazás tömbhöz
secrets, amely tartalmazza a titkos kód nevét és értékét.Adjon hozzá egy elemet a
authméretezési szabály tömbjéhez.Állítsa be a
triggerParametertulajdonság értékét asecretTargetRefparametertulajdonságának értékére.Állítsa a
secretReftulajdonság értékét asecretTargetRefkeytulajdonság 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
FromEnvutó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 .
Felügyelt identitás használata
A Container Apps skálázási szabályai a felügyelt identitást használják hitelesítéshez az Azure szolgáltatásokkal. A következő ARM-sablon az Azure Queue-skalázó hitelesítéséhez a rendszer által hozzárendelt felügyelt identitást adja meg.
A következő kód használata előtt cserélje le az értékekkel körülvett <> helyőrzőket.
"scale": {
"minReplicas": 0,
"maxReplicas": 4,
"rules": [
{
"name": "azure-queue",
"custom": {
"type": "azure-queue",
"metadata": {
"accountName": "<ACCOUNT_NAME>",
"queueName": "<QUEUE_NAME>",
"queueLength": "1"
},
"identity": "system"
}
}
]
}
A felügyelt identitás méretezési szabályokkal való használatáról további információt a Felügyelt identitás című témakörben talál.
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"A CLI parancsban állítsa a paramétert
--scale-rule-typea 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"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" ⬅️A CLI parancsban állítsa a paramétert
--scale-rule-metadataa metaadat-értékekre.Alakítsa át az értékeket YAML-formátumból kulcs/érték párká a parancssorban való használatra. 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 Container Apps skálázási szabályai támogatják a titkos kódokon alapuló hitelesítést. Az Azure erőforrásokra vonatkozó skálázási szabályok , beleértve a Azure Queue Storage, a Azure Service Bus és a Azure Event Hubs, szintén támogatják a felügyelt identitást. Ha lehetséges, használjon felügyelt identitáshitelesítést a titkos kódok alkalmazáson belüli tárolásának elkerülése érdekében.
Titkos kódok használata
A Tárolóalkalmazások méretezési szabály titkos kulcsalapú hitelesítésének konfigurálásához konfigurálja a tárolóalkalmazás titkos kulcsait, és hivatkozzon rájuk a méretezési szabályban.
A KEDA-skálázók támogatják a triggerAuthentication titkos kulcsokat, amelyeket a authenticationRef tulajdonság referenciaként használ. Az objektum megfeleltethető a TriggerAuthentication Container Apps méretezési szabályának.
Keresse meg a
TriggerAuthenticationKEDAScaledObjectspecifikációja által hivatkozott objektumot. Azonosítsa azsecretTargetRefobjektum minden egyesTriggerAuthenticationelemé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-authA CLI-parancsban állítsa be az egyes
secretTargetRefbejegyzések paramétereit.Hozzon létre egy titkos bejegyzést a
--secretsparaméterrel. Ha több titkos kulcs is van, különítse el őket egy szóközzel.Hozzon létre egy hitelesítési bejegyzést a
--scale-rule-authparamé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" ⬅️
Felügyelt identitás használata
A Container Apps skálázási szabályai a felügyelt identitást használják hitelesítéshez az Azure szolgáltatásokkal. Az alábbi parancs létrehoz egy felhasználó által hozzárendelt felügyelt identitással rendelkező tárolóalkalmazást, és azt használja a Azure Üzenetsor-skálázó hitelesítéséhez.
A következő kód használata előtt cserélje le az értékekkel körülvett <> helyőrzőket.
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>
Keresse meg a tárolóalkalmazást az Azure portálon.
Válassza a Méretezés lehetőséget.
Válassza a Szerkesztés és üzembe helyezés lehetőséget.
Válassza a Méretezés és replikák lapot.
Válassza ki a replika minimális és maximális tartományát.
Az Azure Container Apps skálázási tartományának csúszkája.
Válassza a Hozzáadás lehetőséget.
A Szabálynév mezőbe írjon be egy szabálynevet.
A Típus legördülő listában válassza az Egyéni lehetőséget.
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"Az Egyéni szabály típusa mezőbe írja be a skálázó
typeértékét.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" ⬅️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
ScaledObjectspecifikáció metaadatai szakaszban.
Hitelesítés
A Container Apps skálázási szabályai támogatják a titkos kódokon alapuló hitelesítést. Az Azure erőforrásokra vonatkozó skálázási szabályok , beleértve a Azure Queue Storage, a Azure Service Bus és a Azure Event Hubs, szintén támogatják a felügyelt identitást. Ha lehetséges, használjon felügyelt identitáshitelesítést a titkos kódok alkalmazáson belüli tárolásának elkerülése érdekében.
Titkos kódok használata
A tárolóalkalmazásban hozza létre a hivatkozni kívánt titkos kulcsokat .
Keresse meg a
TriggerAuthenticationKEDAScaledObjectspecifikációja által hivatkozott objektumot. Azonosítsa azsecretTargetRefobjektum minden egyesTriggerAuthenticationelemé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-authA Hitelesítés szakaszban válassza a Hozzáadás lehetőséget az egyes KEDA-paraméterek
secretTargetRefbejegyzésének létrehozásához.
Felügyelt identitás használata
Az Azure Portal nem támogatja a felügyelt identitás hitelesítést. A Azure CLI vagy Azure Resource Manager használatával hitelesíthet felügyelt identitással.
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 skálázási szabályt, vagy állítsa be minReplicas-t 1 vagy annál nagyobbra. Ha az ingress le van tiltva, és nem ad meg egy minReplicas elemet vagy egyéni skálázási szabályt, a tárolóalkalmazás nullára skálázódik, és nem tud újra elindulni.
Skálázási viselkedés
A skálázás a következő viselkedésekkel rendelkezik:
| Magatartás | É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 |
| Stabilizálási ablak méretének csökkentése | 300 másodperc |
| Felskálázási lépés | 1, 4, 8, 16, 32, ... a replikák maximális számának konfigurálásához |
| Leskálázási lépés | 100% a replikák közül, amelyeket le kell állítani |
| 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ési időszak az, hogy az utolsó esemény után a KEDA mennyi ideig várakozik, mielőtt az alkalmazás leskálázódik a minimális replikaszámra.
- A felskálázási stabilizálási időszak azt jelzi, hogy a KEDA mennyi ideig várakozik, mielőtt vertikális felskálázási döntést hoz a felskálázási feltételek teljesülése után.
- A leskálázási stabilizálási időszak azt jelzi, hogy a KEDA mennyi ideig várakozik, mielőtt leskálázási döntést hoz a leskálázási feltételek teljesülése után.
- A vertikális felskálázási lépés az, hogy hány replika lesz hozzáadva a tárolóalkalmazás felskálázásakor. 1-nél kezdődik, majd 4, 8, 16, 32 és így tovább, a konfigurált maximális replikaszámig.
- A leskálázási lépés azt jelzi, hogy hány replika lesz eltávolítva a tárolóalkalmazás méretezése során. A KEDA eltávolítja a leállítandó replikák 100%-át.
- 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:
- Ellenőrizze
my-queue30 másodpercenként. - Ha az üzenetsor hossza 0-val egyenlő, térjen vissza az 1. lépéshez.
- Ha az üzenetsor hossza 0-nál nagyobb, skálázza az alkalmazást 1-re.
- Ha a várakozási sor hossza 50, számítsa
desiredReplicas = ceil(50/5) = 10. - Méretezze át az alkalmazást erre:
min(maxReplicaCount, desiredReplicas, max(4, 2*currentReplicaCount)). - Térjen vissza az 1. lépéshez.
Ha az alkalmazás a 20-ra skálázható maximális replikaszámra skálázható, a skálázás ugyanazokon az előző lépéseken megy keresztül. A leskálázás csak akkor történik meg, ha a feltétel 300 másodpercig teljesül (a leskálázási stabilizációs ablak). 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
"Több változat" módban egy új méretezési eseményindító hozzáadása új változatot hoz létre az alkalmazáshoz, de a régi változat továbbra is elérhető marad a régi skálázási szabályokkal. Használja a Változatkezelés lapot a forgalomelosztások kezeléséhez.
Ha egy alkalmazás nullára skáláz, nem kell használati díjat fizetnie. További díjszabási információkért lásd: Billing in Azure Container Apps.
Engedélyeznie kell az adatvédelem használatát az Azure Container Apps összes .NET alkalmazásához. Részletekért lásd: A ASP.NET Core-alkalmazások üzembe helyezése és skálázása Azure Container Apps.
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.
A KEDA-proxyk proxies beállításokon keresztüli módosítása nem támogatott. Fontolja meg a munkaterhelési profilok NAT-átjáróval vagy felhasználó által definiált útvonallal (UDR) való használatát, hogy a forgalmat egy hálózati eszközre irányítsa, ahol ellenőrizheti vagy proxyként továbbíthatja azt.