Azure Container Apps'te ölçeklendirme kurallarını ayarlama
Azure Container Apps, bir dizi bildirim temelli ölçeklendirme kuralı aracılığıyla otomatik yatay ölçeklendirmeyi yönetir. Kapsayıcı uygulaması düzeltmesi ölçeği genişletildikçe, düzeltmenin yeni örnekleri isteğe bağlı olarak oluşturulur. Bu örnekler çoğaltma olarak bilinir.
Ölçeklendirme kurallarını eklemek veya düzenlemek, kapsayıcı uygulamanızın yeni bir düzeltmesini oluşturur. Düzeltme, kapsayıcı uygulamanızın sabit bir anlık görüntüsüdür. Yeni bir düzeltmeyi tetikleyen değişiklik türlerini öğrenmek için bkz. düzeltme değişiklik türleri.
Olay temelli Container Apps işleri , olaylara göre yürütmeleri tetikleme amacıyla ölçeklendirme kurallarını kullanır.
Ölçek tanımı
Ölçeklendirme, sınırların, kuralların ve davranışın birleşimidir.
Sınırlar , kapsayıcı uygulamanız ölçeklendikçe düzeltme başına mümkün olan en düşük ve en fazla çoğaltma sayısını tanımlar.
Ölçeklendirme sınırı Default value En düşük değer En yüksek değer Düzeltme başına en az çoğaltma sayısı 0 0 Yapılandırılabilir çoğaltma sayısı üst sınırı Azure portalında 300 ve Azure CLI'da 1.000'tir. Düzeltme başına en fazla çoğaltma sayısı 10 1 Yapılandırılabilir çoğaltma sayısı üst sınırı Azure portalında 300 ve Azure CLI'da 1.000'tir. Kurallar , Container Apps tarafından çoğaltmaların ne zaman ekleneceğine veya kaldırılacağına karar vermek için kullanılan ölçütlerdir.
Ölçek kuralları HTTP, TCP (İletim Denetimi Protokolü) veya özel olarak uygulanır.
Davranış , zaman içindeki ölçek kararlarını belirlemek için kurallar ve sınırların birleşimidir.
Ölçek davranışı , ölçek kararlarının nasıl alınıyor olduğunu açıklar.
Ölçeklendirme kurallarınızı tanımlarken aşağıdaki öğeleri göz önünde bulundurmanız önemlidir:
- Kapsayıcı uygulamanız sıfıra ölçeklendirilirse kullanım ücretleri faturalandırılamaz.
- İşlemez ancak bellekte kalan çoğaltmalar daha düşük bir "boşta" hızda faturalandırılabilir. Daha fazla bilgi için bkz . Faturalama.
- Düzeltmenizin bir örneğinin her zaman çalıştığından emin olmak istiyorsanız, en az çoğaltma sayısını 1 veya daha yüksek olarak ayarlayın.
Ölçek kuralları
Ölçeklendirme üç farklı tetikleyici kategorisi tarafından yönlendirilir:
- HTTP: Düzeltmenize yönelik eşzamanlı HTTP isteklerinin sayısına göre.
- TCP: Düzeltmenize yönelik eşzamanlı TCP bağlantılarının sayısına göre.
- Özel: CPU' ya, belleğe veya desteklenen olay temelli veri kaynaklarına göre:
- Azure Service Bus
- Azure Event Hubs
- Apache Kafka
- Redis
Birden fazla ölçek kuralı tanımlarsanız, herhangi bir kuralın ilk koşulu karşılandığında kapsayıcı uygulaması ölçeklendirmeye başlar.
HTTP
HTTP ölçeklendirme kuralıyla, kapsayıcı uygulamanızın düzeltmesinin nasıl ölçeklendirileceğini belirleyen eşzamanlı HTTP isteklerinin eşiği üzerinde denetime sahipsiniz. Her 15 saniyede bir eşzamanlı istek sayısı, son 15 saniye içindeki isteklerin sayısı 15'e bölünerek hesaplanır. Container Apps işleri HTTP ölçeklendirme kurallarını desteklemez.
Aşağıdaki örnekte, düzeltme beş çoğaltmaya kadar ölçeklendirilir ve ölçeği sıfıra ölçeklendirebilir. Ölçeklendirme özelliği saniyede 100 eşzamanlı istek olarak ayarlanır.
Örnek
http
bölümü bir HTTP ölçek kuralı tanımlar.
Ölçek özelliği | Açıklama | Default value | En düşük değer | En yüksek değer |
---|---|---|---|---|
concurrentRequests |
HTTP isteklerinin sayısı bu değeri aştığında başka bir çoğaltma eklenir. Çoğaltmalar, miktara kadar havuza eklemeye maxReplicas devam eder. |
10 | 1 | yok |
{
...
"resources": {
...
"properties": {
...
"template": {
...
"scale": {
"minReplicas": 0,
"maxReplicas": 5,
"rules": [{
"name": "http-rule",
"http": {
"metadata": {
"concurrentRequests": "100"
}
}
}]
}
}
}
}
}
Not
properties.configuration.activeRevisionsMode
HTTP olmayan olay ölçeği kurallarını kullanırken kapsayıcı uygulamasının özelliğini olarak single
ayarlayın.
veya update
komutlarındaki create
parametresini --scale-rule-http-concurrency
kullanarak bir HTTP ölçek kuralı tanımlayın.
CLI parametresi | Açıklama | Default value | En düşük değer | En yüksek değer |
---|---|---|---|---|
--scale-rule-http-concurrency |
Eşzamanlı HTTP isteklerinin sayısı bu değeri aştığında başka bir çoğaltma eklenir. Çoğaltmalar, miktara kadar havuza eklemeye max-replicas devam eder. |
10 | 1 | yok |
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
Azure portalında kapsayıcı uygulamanıza gidin
Ölçek'i seçin.
Düzenle ve dağıt'ı seçin.
Ölçek sekmesini seçin.
En düşük ve en yüksek çoğaltma aralığını seçin.
Ekle'yi seçin.
Kural adı kutusuna bir kural adı girin.
Tür açılan listesinde HTTP Ölçeklendirme'yi seçin.
Eşzamanlı istekler kutusuna kapsayıcı uygulamanız için istediğiniz eşzamanlı istek sayısını girin.
TCP
TCP ölçeklendirme kuralıyla, uygulamanızın nasıl ölçeklendirileceğini belirleyen eş zamanlı TCP bağlantılarının eşiği üzerinde denetiminiz vardır. Her 15 saniyede bir eşzamanlı bağlantı sayısı, son 15 saniyedeki bağlantıların sayısı 15'e bölünerek hesaplanır. Container Apps işleri TCP ölçeklendirme kurallarını desteklemez.
Aşağıdaki örnekte kapsayıcı uygulaması düzeltmesi beş çoğaltmaya kadar ölçeklendirilir ve ölçeği sıfıra kadar genişletebilir. Ölçeklendirme eşiği saniyede 100 eşzamanlı bağlantı olarak ayarlanır.
Örnek
tcp
bölümü bir TCP ölçek kuralı tanımlar.
Ölçek özelliği | Açıklama | Default value | En düşük değer | En yüksek değer |
---|---|---|---|---|
concurrentConnections |
Eş zamanlı TCP bağlantılarının sayısı bu değeri aştığında başka bir çoğaltma eklenir. Eş zamanlı bağlantı sayısı arttıkça çoğaltmalar miktarına kadar maxReplicas eklenmeye devam eder. |
10 | 1 | yok |
{
...
"resources": {
...
"properties": {
...
"template": {
...
"scale": {
"minReplicas": 0,
"maxReplicas": 5,
"rules": [{
"name": "tcp-rule",
"tcp": {
"metadata": {
"concurrentConnections": "100"
}
}
}]
}
}
}
}
}
veya update
komutlarındaki create
parametresini --scale-rule-tcp-concurrency
kullanarak bir TCP ölçek kuralı tanımlayın.
CLI parametresi | Açıklama | Default value | En düşük değer | En yüksek değer |
---|---|---|---|---|
--scale-rule-tcp-concurrency |
Eş zamanlı TCP bağlantılarının sayısı bu değeri aştığında başka bir çoğaltma eklenir. Eş zamanlı bağlantı sayısı arttıkça çoğaltmalar miktarına kadar max-replicas eklenmeye devam eder. |
10 | 1 | yok |
az containerapp create \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--environment <ENVIRONMENT_NAME> \
--image <CONTAINER_IMAGE_LOCATION>
--min-replicas 0 \
--max-replicas 5 \
--scale-rule-name azure-tcp-rule \
--scale-rule-type tcp \
--scale-rule-tcp-concurrency 100
Azure portalında desteklenmez. TCP ölçek kuralını yapılandırmak için Azure CLI veya Azure Resource Manager'ı kullanın.
Özel
Aşağıdaki varsayılan değerlerle Herhangi bir ScaledObject tabanlı KEDA ölçeklendiricisini temel alan özel bir Container Apps ölçeklendirme kuralı oluşturabilirsiniz:
Defaults | Saniye |
---|---|
Yoklama aralığı | 30 |
Bekleme süresi | 300 |
Olay temelli Container Apps işleri için Herhangi bir ScaledJob tabanlı KEDA ölçeklendiricisini temel alan özel bir ölçeklendirme kuralı oluşturabilirsiniz.
Aşağıdaki örnekte özel ölçek kuralının nasıl oluşturulacağı gösterilmektedir.
Örnek
Bu örnekte, Azure Service Bus ölçekleyicisini Container Apps ölçek kuralına nasıl dönüştürdüğünüz gösterilir, ancak diğer ScaledObject tabanlı KEDA ölçekleyici belirtimleri için aynı işlemi kullanırsınız.
Kimlik doğrulaması için KEDA ölçeklendiricisi kimlik doğrulama parametreleri Container Apps gizli dizilerine dönüştürülür.
Aşağıdaki yordamda KEDA ölçekleyicisini Kapsayıcı Uygulaması ölçek kuralına dönüştürme işlemi gösterilmektedir. Bu kod parçacığı, bir ARM şablonunun, her bölümün genel şablon bağlamında nereye uyduğunu gösteren bir alıntıdır.
{
...
"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>"
}
]
}
}
]
}
}
}
}
}
Aşağıdaki örneklerin ARM şablonuna nasıl uyduklarına ilişkin bağlam için bu alıntıya bakın.
İlk olarak, ölçek kuralının türünü ve meta verilerini tanımlarsınız.
KEDA ölçeklendirici belirtiminden
type
değerini bulun.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
ARM şablonunda ölçekleyici
type
değerini ölçek kuralınıncustom.type
özelliğine girin.... "rules": [ { "name": "azure-servicebus-queue-rule", "custom": { "type": "azure-servicebus", "metadata": { "queueName": "my-queue", "namespace": "service-bus-namespace", "messageCount": "5" } } } ] ...
KEDA ölçekleyici belirtiminden
metadata
değerleri bulun.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
ARM şablonunda, ölçek kuralının
custom.metadata
bölümüne tüm meta veri değerlerini ekleyin.... "rules": [ { "name": "azure-servicebus-queue-rule", "custom": { "type": "azure-servicebus", "metadata": { "queueName": "my-queue", "namespace": "service-bus-namespace", "messageCount": "5" } } } ] ...
Kimlik Doğrulaması
KEDA ölçeklendiricisi, özelliği tarafından authenticationRef
başvurulan bir TriggerAuthentication içinde gizli dizilerin kullanılmasını destekler. TriggerAuthentication nesnesini Container Apps ölçek kuralına eşleyebilirsiniz.
Not
Container Apps ölçek kuralları yalnızca gizli dizi başvurularını destekler. Pod kimliği gibi diğer kimlik doğrulama türleri desteklenmez.
TriggerAuthentication
KEDAScaledObject
belirtimi tarafından başvurulan nesneyi bulun.KEDA belirtiminden nesnenin
TriggerAuthentication
hersecretTargetRef
birini ve ilişkili gizli dizisini bulun.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
ARM şablonunda tüm girişleri ölçek kuralının
auth
dizisine ekleyin.Kapsayıcı uygulamasının
secrets
dizisine gizli dizi değerini içeren bir gizli dizi ekleyin.özelliğinin
triggerParameter
değerini 'skey
özelliğininTriggerAuthentication
değerine ayarlayın.özelliğinin
secretRef
değerini Container Apps gizli dizisinin adına ayarlayın.
{ ... "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" } ] } } ] } } } } }
Bazı ölçekleyiciler, ortam değişkenindeki
FromEnv
bir değere başvurmak için sonek içeren meta verileri destekler. Container Apps, ortam değişkeni için ARM şablonunda listelenen ilk kapsayıcıya bakar.Güvenlikle ilgili daha fazla bilgi için dikkat edilmesi gerekenler bölümüne bakın.
KEDA ölçeklendirici belirtiminden
type
değerini bulun.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
CLI komutunda parametresini
--scale-rule-type
belirtimtype
değerine ayarlayın.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"
KEDA ölçekleyici belirtiminden
metadata
değerleri bulun.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
CLI komutunda parametresini
--scale-rule-metadata
meta veri değerlerine ayarlayın.Değerleri yaml biçiminden komut satırında kullanmak üzere anahtar/değer çiftine dönüştürmeniz gerekir. Her anahtar/değer çiftlerini bir boşlukla ayırın.
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"
Kimlik Doğrulaması
KEDA ölçeklendiricisi authenticationRef özelliği tarafından başvurulan bir TriggerAuthentication içinde gizli dizilerin kullanılmasını destekler. TriggerAuthentication nesnesini Container Apps ölçek kuralına eşleyebilirsiniz.
Not
Container Apps ölçek kuralları yalnızca gizli dizi başvurularını destekler. Pod kimliği gibi diğer kimlik doğrulama türleri desteklenmez.
TriggerAuthentication
KEDAScaledObject
belirtimi tarafından başvurulan nesneyi bulun. NesneninTriggerAuthentication
hersecretTargetRef
birini tanımlayın.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
Kapsayıcı uygulamanızda özelliklerle eşleşen gizli dizileri
secretTargetRef
oluşturun.CLI komutunda, her
secretTargetRef
girdi için parametreleri ayarlayın.parametresiyle
--secrets
bir gizli dizi girişi oluşturun. Birden çok gizli dizi varsa, bunları bir boşlukla ayırın.parametresiyle bir kimlik doğrulama girdisi
--scale-rule-auth
oluşturun. Birden çok girdi varsa, bunları bir boşlukla ayırın.
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"
Azure portalında kapsayıcı uygulamanıza gidin.
Ölçek'i seçin.
Düzenle ve dağıt'ı seçin.
Ölçek ve çoğaltmalar sekmesini seçin.
En düşük ve en yüksek çoğaltma aralığını seçin.
Ekle'yi seçin.
Kural adı kutusuna bir kural adı girin.
Tür açılan listesinde Özel'i seçin.
KEDA ölçeklendirici belirtiminden
type
değerini bulun.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
Özel kural türü kutusuna ölçekleyici
type
değerini girin.KEDA ölçekleyici belirtiminden
metadata
değerleri bulun.triggers: - type: azure-servicebus metadata: queueName: my-queue namespace: service-bus-namespace messageCount: "5"
Portalda Meta Veriler bölümünü bulun ve Ekle'yi seçin. KEDA
ScaledObject
belirtimi meta verileri bölümünde her öğenin adını ve değerini girin.
Kimlik Doğrulaması
KEDA ölçeklendiricisi authenticationRef özelliği tarafından başvurulan bir TriggerAuthentication içinde gizli dizilerin kullanılmasını destekler. TriggerAuthentication nesnesini Container Apps ölçek kuralına eşleyebilirsiniz.
Not
Container Apps ölçek kuralları yalnızca gizli dizi başvurularını destekler. Pod kimliği gibi diğer kimlik doğrulama türleri desteklenmez.
Kapsayıcı uygulamanızda, başvurmak istediğiniz gizli dizileri oluşturun.
TriggerAuthentication
KEDAScaledObject
belirtimi tarafından başvurulan nesneyi bulun. NesneninTriggerAuthentication
hersecretTargetRef
birini tanımlayın.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
Kimlik Doğrulaması bölümünde Ekle'yi seçerek her KEDA
secretTargetRef
parametresi için bir girdi oluşturun.
Varsayılan ölçek kuralı
Ölçek kuralı oluşturmazsanız, varsayılan ölçek kuralı kapsayıcı uygulamanıza uygulanır.
Tetikle | En az çoğaltma | En fazla çoğaltma |
---|---|---|
HTTP | 0 | 10 |
Önemli
Girişi etkinleştirmediyseniz bir ölçek kuralı oluşturduğunuzdan veya 1 veya daha fazla olarak ayarladığınızdan minReplicas
emin olun. Giriş devre dışı bırakılırsa ve bir minReplicas
veya özel ölçek kuralı tanımlamazsanız kapsayıcı uygulamanız sıfıra ölçeklendirilir ve yedeklemeyi başlatmanın hiçbir yolu yoktur.
Ölçeklendirme davranışı
Ölçeklendirme davranışı aşağıdaki varsayılan değerlere sahiptir:
Parametre | Value |
---|---|
Yoklama aralığı | 30 saniye |
Bekleme süresi | 300 saniye |
Dengeleme penceresinin ölçeğini artırma | 0 saniye |
Dengeleme penceresinin ölçeğini azaltma | 300 saniye |
Ölçeği artırma adımı | 1, 4, %100 akım |
Ölçeği azaltma adımı | Akımın %100'ünün |
Ölçeklendirme algoritması | desiredReplicas = ceil(currentMetricValue / targetMetricValue) |
- Yoklama aralığı , olay kaynaklarının KEDA tarafından ne sıklıkta sorgulandığıdır. Bu değer HTTP ve TCP ölçek kuralları için geçerli değildir.
- Seyrek erişim süresi , uygulama en düşük çoğaltma sayısına ölçeklendirilmeden önce son olayın ne kadar süreyle gözlemlendiğidir.
- Ölçeği artırma dengeleme penceresi , ölçeği artırma koşulları karşılandıktan sonra ölçeği artırma kararı vermeden önce ne kadar beklenmesi gerektiğini gösterir.
- Ölçeği azaltma dengeleme penceresi , ölçeği azaltma koşulları karşılandıktan sonra ölçeği azaltma kararı vermeden önce ne kadar beklenmesi gerektiğini gösterir.
- Ölçeği artırma adımı , yeni örneklerin eklenme oranıdır. 1, 4, 8, 16, 32, ... yapılandırılan en fazla çoğaltma sayısına kadar.
- Ölçeği azaltma adımı , çoğaltmaların kaldırılma hızıdır. Varsayılan olarak kapatılması gereken çoğaltmaların %100'ünün kaldırılması gerekir.
- Ölçeklendirme algoritması , istenen geçerli çoğaltma sayısını hesaplamak için kullanılan formüldür.
Örnek
Aşağıdaki ölçek kuralı için:
"minReplicas": 0,
"maxReplicas": 20,
"rules": [
{
"name": "azure-servicebus-queue-rule",
"custom": {
"type": "azure-servicebus",
"metadata": {
"queueName": "my-queue",
"namespace": "service-bus-namespace",
"messageCount": "5"
}
}
}
]
Uygulamanızın ölçeği genişlettikten sonra KEDA boş bir kuyrukla başlar ve aşağıdaki adımları gerçekleştirir:
- 30 saniyede bir kontrol edin
my-queue
. - Kuyruk uzunluğu 0'a eşitse (1) bölümüne geri dönün.
- Kuyruk uzunluğu 0 ise > , uygulamayı 1'e ölçeklendirin.
- Kuyruk uzunluğu 50 ise değerini hesaplayın
desiredReplicas = ceil(50/5) = 10
. - Uygulamayı şu şekilde ölçeklendirin:
min(maxReplicaCount, desiredReplicas, max(4, 2*currentReplicaCount))
- (1) sayfasına geri dönün.
Uygulama en fazla 20 çoğaltma sayısına ölçeklendirildiyse ölçeklendirme aynı önceki adımlardan geçer. Ölçeği azaltma yalnızca koşul 300 saniye boyunca karşılandığında gerçekleşir (ölçeği azaltma sabitleme penceresi). Kuyruk uzunluğu 0 olduğunda, KEDA uygulamayı 0'a ölçeklendirmeden önce 300 saniye (bekleme süresi) bekler.
Dikkat edilmesi gereken noktalar
"Birden çok düzeltme" modunda, yeni bir ölçek tetikleyicisi eklemek uygulamanızın yeni bir düzeltmesini oluşturur, ancak eski düzeltmeniz eski ölçek kurallarıyla kullanılabilir durumda kalır. Trafik ayırmalarını yönetmek için Düzeltme yönetimi sayfasını kullanın.
Bir uygulama sıfıra ölçeklendiğinde kullanım ücreti uygulanmaz. Daha fazla fiyatlandırma bilgisi için bkz . Azure Container Apps'te faturalama.
Azure Container Apps'te tüm .NET uygulamaları için veri korumayı etkinleştirmeniz gerekir. Ayrıntılar için bkz . Azure Container Apps'te ASP.NET Core uygulamasını dağıtma ve ölçeklendirme.
Bilinen sınırlamalar
Dikey ölçeklendirme desteklenmez.
Çoğaltma miktarları bir garanti değil, hedef tutardır.
Durumları yönetmek için Dapr aktörleri kullanıyorsanız, sıfıra ölçeklendirmenin desteklenmediğini unutmayın. Dapr, zaman uyumsuz çağrıları yönetmek için sanal aktörleri kullanır; bu da bellek içi gösterimlerinin kimliklerine veya yaşam sürelerine bağlı olmadığı anlamına gelir.