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 verziójának horizontális felskálázása során a verzió új példányai igény szerint jönnek létre. Ezeket a példányokat replikáknak nevezzük.
Ennek a skálázási viselkedésnek a támogatásához Azure Container Apps a KEDA (Kubernetes eseményvezérelt automatikus skálázás) működteti. 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.
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 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 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" díjszabással 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.
- 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 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.
Megjegyzés
Ha a Functionst a Container Appsben használja, a skálázási szabályok automatikusan konfigurálódnak a függvény eseményindítói és kötései alapján. Ennek eredményeképpen az Azure portal "Méretezési szabályok hozzáadása" gombja le lesz tiltva ezekhez az alkalmazásokhoz. Ebben a forgatókönyvben a manuális méretezési szabály konfigurálása nem kötelező vagy támogatott.
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á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, a rendszer hozzáad egy másik replikát. A replikák továbbra is növelik a készletet az maxReplicas összeg erejéig. |
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 tulajdonságát a tárolóalkalmazásban single-ra/ré, amikor nem HTTP eseményméretezési szabályokat használ.
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 növelik a készletet az maxReplicas összeg erejéig. |
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 tulajdonságát a tárolóalkalmazásban single-ra/ré, amikor nem HTTP eseményméretezési szabályokat használ.
HTTP-méretezési szabály definiálása a --scale-rule-http-concurrency vagy create parancsok update paraméterével.
| 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, a rendszer hozzáad egy másik replikát. A replikák továbbra is növelik a készletet az max-replicas összeg erejéig. |
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
Lépjen be a tárolóalkalmazásához 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 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 folyamatosan hozzáadják, amíg el nem érik az maxReplicas mennyiségét, mivel az egyidejű kapcsolatok száma növekszik. |
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, egy másik replika lesz hozzáadva. A replikákat folyamatosan hozzáadják, amíg el nem érik az maxReplicas mennyiségét, mivel az egyidejű kapcsolatok száma növekszik. |
10 | 1 | n.a. |
{
...
"resources": {
...
"properties": {
...
"template": {
...
"scale": {
"minReplicas": 0,
"maxReplicas": 5,
"rules": [{
"name": "tcp-rule",
"tcp": {
"metadata": {
"concurrentConnections": "100"
}
}
}]
}
}
}
}
}
TCP-méretezési szabály definiálása a --scale-rule-tcp-concurrency vagy create parancsok update paraméterével.
| 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, egy másik replika lesz hozzáadva. Az egyidejű kapcsolatok számának növekedésével a replikák folyamatosan hozzáadódnak a 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 \
--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 portálon nem támogatott. TCP-méretezési szabály konfigurálásához használja a Azure CLI, Azure Resource Manager vagy Bicep.
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:
| Alapértelmezések | 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 az utolsó másolatról 0-ra leskálázás történik. 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 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 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
Ha titkos kulcsokat szeretne használni a hitelesítéshez, létre kell hoznia egy titkos kulcsot a tárolóalkalmazás tömbjében secrets . A titkos érték a auth méretezési szabály tömbjében használatos.
A KEDA-skálázók titkokat használhatnak egy TriggerAuthentication-ban, 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
Ha titkos kulcsokat szeretne használni a hitelesítéshez, létre kell hoznia egy titkos kulcsot a tárolóalkalmazás tömbjében secrets . A titkos érték a auth méretezési szabály tömbjében használatos.
A KEDA-skálázók titkokat használhatnak egy TriggerAuthentication-ban, 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-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 felügyelt identitással hitelesíthetnek az Azure-szolgáltatásokkal. A következő ARM-sablon rendszeralapú felügyelt identitást használ hitelesítéshez egy Azure Üzenetsor skálázóhoz.
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.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 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 felügyelt identitással hitelesítéshez használhatóak 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 a bejövő forgalom le van tiltva, és nem határoz meg minReplicas vagy egyéni méretezési szabályt, akkor a tárolóalkalmazás nullára skálázható, és nem tud újraindulni.
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é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 az az időtartam, amelyet várni kell, mielőtt felskálázási döntést hozunk, ha a felskálázási feltételek teljesülnek.
- A leskálázási stabilizálási időablak azt az időtartamot jelenti, ameddig várni kell, mielőtt a leskálázási feltételek teljesülése után döntés születik a leskálázás végrehajtásáról.
- 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. 100% a leállításra szoruló replikák törlődnek.
- 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 a sor hossza 0, menj vissza az (1) ponthoz.
- Ha az üzenetsor hossza > 0, skálázza az alkalmazást 1-re.
- Ha a várakozási sor hossza 50, számítsa
desiredReplicas = ceil(50/5) = 10. - Alkalmazás méretezése
min(maxReplicaCount, desiredReplicas, max(4, 2*currentReplicaCount)) - Menj vissza az (1) ponthoz.
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
"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.
Nem merülnek fel használati díjak, ha egy alkalmazás nullára skáláz. 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 proxy beállítások általi módosítása nem támogatott. Fontolja meg a Workload Profiler használatát NAT-átjáróval vagy felhasználói útvonallal (UDR), hogy a forgalmat egy hálózati eszközhöz irányítsa, ahol a forgalom megvizsgálható vagy proxyn keresztül továbbítható.