Mengatur aturan penskalaan di Azure Container Apps

Azure Container Apps mengelola penskalaan horizontal otomatis melalui set aturan penskalaan deklaratif. Saat revisi aplikasi kontainer diskalakan, instans baru revisi dibuat sesuai permintaan. Instans ini dikenal sebagai replika.

Menambahkan atau mengedit aturan penskalaan membuat revisi baru aplikasi kontainer Anda. Revisi adalah rekam jepret yang tidak dapat diubah dari aplikasi kontainer Anda. Lihat jenis perubahan revisi untuk meninjau jenis perubahan mana yang memicu revisi baru.

Pekerjaan Container Apps berbasis peristiwa menggunakan aturan penskalaan untuk memicu eksekusi berdasarkan peristiwa.

Definisi skala

Penskalaan didefinisikan oleh kombinasi batas, aturan, dan perilaku.

  • Batas adalah jumlah replika minimum dan maksimum yang mungkin per revisi saat aplikasi kontainer Anda diskalakan.

    Batas skala Nilai default Nilai min Nilai maks
    Jumlah minimum replika per revisi 0 0 Replika maksimum yang dapat dikonfigurasi adalah 300 dalam portal Azure dan 1.000 di Azure CLI.
    Jumlah maksimum replika per revisi 10 1 Replika maksimum yang dapat dikonfigurasi adalah 300 dalam portal Azure dan 1.000 di Azure CLI.

    Untuk informasi selengkapnya, lihat Kuota untuk Azure Container Apps.

  • Aturan adalah kriteria yang digunakan oleh Container Apps untuk memutuskan kapan harus menambahkan atau menghapus replika.

    Aturan skala diimplementasikan sebagai HTTP, TCP, atau kustom.

  • Perilaku adalah bagaimana aturan dan batas digabungkan bersama-sama untuk menentukan keputusan skala dari waktu ke waktu.

    Perilaku skala menjelaskan bagaimana keputusan skala dihitung.

Saat Anda menentukan aturan penskalakan, ingatlah item berikut:

  • Anda tidak ditagih biaya penggunaan jika aplikasi kontainer Anda diskalakan ke nol.
  • Replika yang tidak diproses, tetapi tetap dalam memori dapat ditagih dengan tingkat "menganggur" yang lebih rendah. Untuk mengetahui informasi lebih lanjut, lihat Penagihan.
  • Jika Anda ingin memastikan bahwa instans revisi Anda selalu berjalan, atur jumlah minimum replika ke 1 atau lebih tinggi.

Aturan skala

Penskalaan didorong oleh tiga kategori pemicu yang berbeda:

  • HTTP: Berdasarkan jumlah permintaan HTTP bersamaan ke revisi Anda.
  • TCP: Berdasarkan jumlah koneksi TCP bersamaan ke revisi Anda.
  • Kustom: Berdasarkan CPU, memori, atau sumber data berbasis peristiwa yang didukung seperti:
    • Azure Service Bus
    • Azure Event Hubs
    • Apache Kafka
    • Redis

Jika Anda menentukan lebih dari satu aturan skala, aplikasi kontainer mulai menskalakan setelah kondisi pertama aturan apa pun terpenuhi.

HTTP

Dengan aturan penskalaan HTTP, Anda memiliki kontrol atas ambang permintaan HTTP bersamaan yang menentukan bagaimana revisi aplikasi kontainer Anda diskalakan. Setiap 15 detik, jumlah permintaan bersamaan dihitung sebagai jumlah permintaan dalam 15 detik terakhir dibagi 15. Pekerjaan Container Apps tidak mendukung aturan penskalakan HTTP.

Dalam contoh berikut, revisi menskalakan hingga lima replika dan dapat menskalakan ke nol. Properti penskalaan diatur ke 100 permintaan bersamaan per detik.

Contoh

Bagian menentukan http aturan skala HTTP.

Properti skala Deskripsi Nilai default Nilai min Nilai maks
concurrentRequests Ketika jumlah permintaan HTTP melebihi nilai ini, maka replika lain ditambahkan. Replika terus menambahkan ke kumpulan hingga jumlahnya maxReplicas . 10 1 n/a
{
  ...
  "resources": {
    ...
    "properties": {
      ...
      "template": {
        ...
        "scale": {
          "minReplicas": 0,
          "maxReplicas": 5,
          "rules": [{
            "name": "http-rule",
            "http": {
              "metadata": {
                "concurrentRequests": "100"
              }
            }
          }]
        }
      }
    }
  }
}

Catatan

Atur properties.configuration.activeRevisionsMode properti aplikasi kontainer ke single, saat menggunakan aturan skala peristiwa non-HTTP.

Tentukan aturan skala HTTP menggunakan --scale-rule-http-concurrency parameter dalam create perintah atau update .

Parameter CLI Deskripsi Nilai default Nilai min Nilai maks
--scale-rule-http-concurrency Ketika jumlah permintaan HTTP bersamaan melebihi nilai ini, maka replika lain ditambahkan. Replika terus menambahkan ke kumpulan hingga jumlahnya max-replicas . 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
  1. Buka aplikasi kontainer Anda di portal Azure

  2. Pilih Skala.

  3. Pilih Edit dan sebarkan.

  4. Pilih tab Skala .

  5. Pilih rentang replika minimum dan maksimum.

    Cuplikan layar slider rentang skala Azure Container Apps.

  6. Pilih Tambahkan.

  7. Dalam kotak Nama aturan, masukkan nama aturan.

  8. Dari menu dropdown Jenis , pilih Penskalakan HTTP.

  9. Dalam kotak Permintaan bersamaan , masukkan jumlah permintaan bersamaan yang Anda inginkan untuk aplikasi kontainer Anda.

TCP

Dengan aturan penskalaan TCP, Anda memiliki kontrol atas ambang koneksi TCP bersamaan yang menentukan bagaimana aplikasi Anda diskalakan. Setiap 15 detik, jumlah koneksi bersamaan dihitung sebagai jumlah koneksi dalam 15 detik terakhir dibagi 15. Pekerjaan Container Apps tidak mendukung aturan penskalaan TCP.

Dalam contoh berikut, revisi aplikasi kontainer menskalakan hingga lima replika dan dapat menskalakan ke nol. Ambang penskalaan diatur ke 100 koneksi bersamaan per detik.

Contoh

Bagian menentukan tcp aturan skala TCP.

Properti skala Deskripsi Nilai default Nilai min Nilai maks
concurrentConnections Ketika jumlah koneksi TCP bersamaan melebihi nilai ini, maka replika lain ditambahkan. Replika akan terus ditambahkan hingga jumlah saat maxReplicas jumlah koneksi bersamaan meningkat. 10 1 n/a
{
  ...
  "resources": {
    ...
    "properties": {
      ...
      "template": {
        ...
        "scale": {
          "minReplicas": 0,
          "maxReplicas": 5,
          "rules": [{
            "name": "tcp-rule",
            "tcp": {
              "metadata": {
                "concurrentConnections": "100"
              }
            }
          }]
        }
      }
    }
  }
}

Tentukan aturan skala TCP menggunakan --scale-rule-tcp-concurrency parameter dalam create perintah atau update .

Parameter CLI Deskripsi Nilai default Nilai min Nilai maks
--scale-rule-tcp-concurrency Ketika jumlah koneksi TCP bersamaan melebihi nilai ini, maka replika lain ditambahkan. Replika akan terus ditambahkan hingga jumlah saat max-replicas jumlah koneksi bersamaan meningkat. 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-tcp-rule \
  --scale-rule-type tcp \
  --scale-rule-tcp-concurrency 100

Tidak didukung dalam portal Azure. Gunakan Azure CLI atau Azure Resource Manager untuk mengonfigurasi aturan skala TCP.

Kustom

Anda dapat membuat aturan penskalakan Container Apps kustom berdasarkan scaler KEDA berbasis ScaledObject dengan default berikut:

Defaults Detik
Interval polling 30
Periode pendinginan 300

Untuk pekerjaan Container Apps berbasis peristiwa, Anda dapat membuat aturan penskalaan kustom berdasarkan penskala KEDA berbasis ScaledJob.

Contoh berikut menunjukkan cara membuat aturan skala kustom.

Contoh

Contoh ini menunjukkan cara mengonversi penskala Azure Bus Layanan ke aturan skala Container Apps, tetapi Anda menggunakan proses yang sama untuk spesifikasi penskala KEDA berbasis ScaledObject lainnya.

Untuk autentikasi, parameter autentikasi penskala KEDA dikonversi menjadi rahasia Container Apps.

Prosedur berikut menunjukkan kepada Anda cara mengonversi penskala KEDA ke aturan skala Aplikasi Kontainer. Cuplikan ini adalah kutipan templat ARM untuk menunjukkan kepada Anda di mana setiap bagian cocok dalam konteks templat keseluruhan.

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

Lihat kutipan ini untuk konteks tentang bagaimana contoh di bawah ini cocok dalam templat ARM.

Pertama, Anda akan menentukan jenis dan metadata aturan skala.

  1. Dari spesifikasi penskala KEDA, temukan nilainya type .

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  2. Di templat ARM, masukkan nilai scaler type ke custom.type dalam properti aturan skala.

    ...
    "rules": [
      {
        "name": "azure-servicebus-queue-rule",
        "custom": {
          "type": "azure-servicebus",
          "metadata": {
            "queueName": "my-queue",
            "namespace": "service-bus-namespace",
            "messageCount": "5"
          }
        }
      }
    ]
    ...
    
  3. Dari spesifikasi penskala KEDA, temukan nilainya metadata .

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  4. Di templat ARM, tambahkan semua nilai metadata ke bagian custom.metadata aturan skala.

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

Autentikasi

Penskala KEDA dapat mendukung penggunaan rahasia dalam TriggerAuthentication yang dirujuk oleh authenticationRef properti . Anda dapat memetakan objek TriggerAuthentication ke aturan skala Container Apps.

Catatan

Aturan skala Container Apps hanya mendukung referensi rahasia. Jenis autentikasi lain seperti identitas pod tidak didukung.

  1. Temukan objek yang dirujuk TriggerAuthentication oleh spesifikasi KEDA ScaledObject .

  2. Dari spesifikasi KEDA, temukan masing-masing secretTargetRefTriggerAuthentication objek dan rahasia terkait.

    apiVersion: v1
    kind: Secret
    metadata:
      name: my-secrets
      namespace: my-project
    type: Opaque
    data:
      connection-string-secret: <SERVICE_BUS_CONNECTION_STRING>
    ---
    apiVersion: keda.sh/v1alpha1
    kind: TriggerAuthentication
    metadata:
      name: azure-servicebus-auth
    spec:
      secretTargetRef:
      - parameter: connection
        name: my-secrets
        key: connection-string-secret
    ---
    apiVersion: keda.sh/v1alpha1
    kind: ScaledObject
    metadata:
      name: azure-servicebus-queue-rule
      namespace: default
    spec:
      scaleTargetRef:
        name: my-scale-target
      triggers:
      - type: azure-servicebus
        metadata:
          queueName: my-queue
          namespace: service-bus-namespace
          messageCount: "5"
        authenticationRef:
            name: azure-servicebus-auth
    
  3. Di templat ARM, tambahkan semua entri ke auth array aturan skala.

    1. Tambahkan rahasia ke array aplikasi secrets kontainer yang berisi nilai rahasia.

    2. Atur nilai triggerParameter properti ke nilai TriggerAuthenticationkey properti .

    3. Atur nilai secretRef properti ke nama rahasia Container Apps.

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

    Beberapa scaler mendukung metadata dengan akhiran FromEnv untuk mereferensikan nilai dalam variabel lingkungan. Container Apps melihat kontainer pertama yang tercantum dalam templat ARM untuk variabel lingkungan.

    Lihat bagian pertimbangan untuk informasi terkait keamanan lainnya.

  1. Dari spesifikasi penskala KEDA, temukan nilainya type .

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  2. Dalam perintah CLI, atur --scale-rule-type parameter ke nilai spesifikasi type .

    az containerapp create \
      --name <CONTAINER_APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --environment <ENVIRONMENT_NAME> \
      --image <CONTAINER_IMAGE_LOCATION>
      --min-replicas 0 \
      --max-replicas 5 \
      --secrets "connection-string-secret=<SERVICE_BUS_CONNECTION_STRING>" \
      --scale-rule-name azure-servicebus-queue-rule \
      --scale-rule-type azure-servicebus \
      --scale-rule-metadata "queueName=my-queue" \
                            "namespace=service-bus-namespace" \
                            "messageCount=5" \
      --scale-rule-auth "connection=connection-string-secret"
    
  3. Dari spesifikasi penskala KEDA, temukan nilainya metadata .

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  4. Dalam perintah CLI, atur --scale-rule-metadata parameter ke nilai metadata.

    Anda harus mengubah nilai dari format YAML menjadi pasangan kunci/nilai untuk digunakan pada baris perintah. Pisahkan setiap pasangan kunci/nilai dengan spasi.

    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"
    

Autentikasi

Penskala KEDA dapat mendukung penggunaan rahasia dalam TriggerAuthentication yang dirujuk oleh properti authenticationRef. Anda dapat memetakan objek TriggerAuthentication ke aturan skala Container Apps.

Catatan

Aturan skala Container Apps hanya mendukung referensi rahasia. Jenis autentikasi lain seperti identitas pod tidak didukung.

  1. Temukan objek yang dirujuk TriggerAuthentication oleh spesifikasi KEDA ScaledObject . Identifikasi setiap secretTargetRefTriggerAuthentication objek.

    apiVersion: v1
    kind: Secret
    metadata:
      name: my-secrets
      namespace: my-project
    type: Opaque
    data:
      connection-string-secret: <SERVICE_BUS_CONNECTION_STRING>
    ---
    apiVersion: keda.sh/v1alpha1
    kind: TriggerAuthentication
    metadata:
      name: azure-servicebus-auth
    spec:
      secretTargetRef:
      - parameter: connection
        name: my-secrets
        key: connection-string-secret
    ---
    apiVersion: keda.sh/v1alpha1
    kind: ScaledObject
    metadata:
      name: azure-servicebus-queue-rule
      namespace: default
    spec:
      scaleTargetRef:
        name: my-scale-target
      triggers:
      - type: azure-servicebus
        metadata:
          queueName: my-queue
          namespace: service-bus-namespace
          messageCount: "5"
        authenticationRef:
            name: azure-servicebus-auth
    
  2. Di aplikasi kontainer Anda, buat rahasia yang cocok dengan secretTargetRef properti.

  3. Dalam perintah CLI, atur parameter untuk setiap secretTargetRef entri.

    1. Buat entri rahasia dengan --secrets parameter . Jika ada beberapa rahasia, pisahkan dengan spasi.

    2. Buat entri autentikasi dengan --scale-rule-auth parameter . Jika ada beberapa entri, pisahkan dengan spasi.

    az containerapp create \
      --name <CONTAINER_APP_NAME> \
      --resource-group <RESOURCE_GROUP> \
      --environment <ENVIRONMENT_NAME> \
      --image <CONTAINER_IMAGE_LOCATION>
      --min-replicas 0 \
      --max-replicas 5 \
      --secrets "connection-string-secret=<SERVICE_BUS_CONNECTION_STRING>" \
      --scale-rule-name azure-servicebus-queue-rule \
      --scale-rule-type azure-servicebus \
      --scale-rule-metadata "queueName=my-queue" \
                            "namespace=service-bus-namespace" \
                            "messageCount=5" \
      --scale-rule-auth "connection=connection-string-secret"
    
  1. Buka aplikasi kontainer Anda di portal Azure.

  2. Pilih Skala.

  3. Pilih Edit dan sebarkan.

  4. Pilih tab Skala dan replika .

  5. Pilih rentang replika minimum dan maksimum.

    Cuplikan layar slider rentang skala Azure Container Apps.

  6. Pilih Tambahkan.

  7. Dalam kotak Nama aturan, masukkan nama aturan.

  8. Dari menu dropdown Jenis , pilih Kustom.

  9. Dari spesifikasi penskala KEDA, temukan nilainya type .

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  10. Dalam kotak Jenis aturan kustom, masukkan nilai scaler type .

  11. Dari spesifikasi penskala KEDA, temukan nilainya metadata .

    triggers:
    - type: azure-servicebus
      metadata:
        queueName: my-queue
        namespace: service-bus-namespace
        messageCount: "5"
    
  12. Di portal, temukan bagian Metadata dan pilih Tambahkan. Masukkan nama dan nilai untuk setiap item di bagian metadata spesifikasi KEDA ScaledObject .

Autentikasi

Penskala KEDA dapat mendukung penggunaan rahasia dalam TriggerAuthentication yang dirujuk oleh properti authenticationRef. Anda dapat memetakan objek TriggerAuthentication ke aturan skala Container Apps.

Catatan

Aturan skala Container Apps hanya mendukung referensi rahasia. Jenis autentikasi lain seperti identitas pod tidak didukung.

  1. Di aplikasi kontainer Anda, buat rahasia yang ingin Anda referensikan.

  2. Temukan objek yang dirujuk TriggerAuthentication oleh spesifikasi KEDA ScaledObject . Identifikasi setiap secretTargetRefTriggerAuthentication objek.

    apiVersion: v1
    kind: Secret
    metadata:
      name: my-secrets
      namespace: my-project
    type: Opaque
    data:
      connection-string-secret: <SERVICE_BUS_CONNECTION_STRING>
    ---
    apiVersion: keda.sh/v1alpha1
    kind: TriggerAuthentication
    metadata:
      name: azure-servicebus-auth
    spec:
      secretTargetRef:
      - parameter: connection
        name: my-secrets
        key: connection-string-secret
    ---
    apiVersion: keda.sh/v1alpha1
    kind: ScaledObject
    metadata:
      name: azure-servicebus-queue-rule
      namespace: default
    spec:
      scaleTargetRef:
        name: my-scale-target
      triggers:
      - type: azure-servicebus
        metadata:
          queueName: my-queue
          namespace: service-bus-namespace
          messageCount: "5"
        authenticationRef:
            name: azure-servicebus-auth
    
  3. Di bagian Autentikasi , pilih Tambahkan untuk membuat entri untuk setiap parameter KEDA secretTargetRef .

Aturan skala default

Jika Anda tidak membuat aturan skala, aturan skala default diterapkan ke aplikasi kontainer Anda.

Pemicu Replika Min Replika Maks
HTTP 0 10

Penting

Pastikan Anda membuat aturan skala atau diatur minReplicas ke 1 atau lebih jika Anda tidak mengaktifkan ingress. Jika ingress dinonaktifkan dan Anda tidak menentukan minReplicas atau aturan skala kustom, maka aplikasi kontainer Anda akan menskalakan ke nol dan tidak memiliki cara untuk memulai pencadangan.

Perilaku skala

Perilaku penskalakan memiliki default berikut:

Parameter Nilai
Interval polling 30 detik
Periode pendinginan 300 detik
Menskalakan jendela stabilisasi 0 detik
Menskalakan jendela stabilisasi 300 detik
Langkah peningkatan skala 1, 4, 100% dari saat ini
Turunkan skala langkah 100% dari saat ini
Algoritma penskalakan desiredReplicas = ceil(currentMetricValue / targetMetricValue)
  • Interval polling adalah seberapa sering sumber peristiwa dikueri oleh KEDA. Nilai ini tidak berlaku untuk aturan skala HTTP dan TCP.
  • Periode cool down adalah berapa lama setelah peristiwa terakhir diamati sebelum aplikasi menurunkan skala ke jumlah replika minimumnya.
  • Jendela stabilisasi peningkatan adalah berapa lama untuk menunggu sebelum melakukan keputusan peningkatan skala setelah kondisi peningkatan terpenuhi.
  • Jendela stabilisasi penurunan skala adalah berapa lama untuk menunggu sebelum melakukan keputusan penurunan skala setelah kondisi penurunan skala terpenuhi.
  • Langkah peningkatan skala adalah tingkat instans baru ditambahkan. Dimulai dengan 1, 4, 8, 16, 32, ... hingga jumlah replika maksimum yang dikonfigurasi.
  • Langkah penurunan skala adalah tingkat di mana replika dihapus. Secara default 100% replika yang perlu dimatikan dihapus.
  • Algoritma penskalaan adalah rumus yang digunakan untuk menghitung jumlah replika yang diinginkan saat ini.

Contoh

Untuk aturan skala berikut:

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

Dimulai dengan antrean kosong, KEDA mengambil langkah-langkah berikut dalam skenario peningkatan skala:

  1. Periksa my-queue setiap 30 detik.
  2. Jika panjang antrean sama dengan 0, kembali ke (1).
  3. Jika panjang antrean adalah > 0, skalakan aplikasi ke 1.
  4. Jika panjang antrean adalah 50, hitung desiredReplicas = ceil(50/5) = 10.
  5. Menskalakan aplikasi ke min(maxReplicaCount, desiredReplicas, max(4, 2*currentReplicaCount))
  6. Kembali ke (1).

Jika aplikasi diskalakan ke jumlah replika maksimum 20, penskalaan melewati langkah-langkah sebelumnya yang sama. Penurunan skala hanya terjadi jika kondisi terpenuhi selama 300 detik (jendela stabilisasi penurunan skala). Setelah panjang antrean adalah 0, KEDA menunggu selama 300 detik (periode pendinginan) sebelum menskalakan aplikasi ke 0.

Pertimbangan

  • Dalam mode "beberapa revisi", menambahkan pemicu skala baru membuat revisi baru aplikasi Anda tetapi revisi lama Anda tetap tersedia dengan aturan skala lama. Gunakan halaman Manajemen revisi untuk mengelola alokasi lalu lintas.

  • Tidak ada biaya penggunaan yang dikeluarkan ketika aplikasi menskalakan ke nol. Untuk informasi harga selengkapnya, lihat Penagihan di Azure Container Apps.

  • Anda perlu mengaktifkan perlindungan data untuk semua aplikasi .NET di Azure Container Apps. Lihat Menyebarkan dan menskalakan aplikasi ASP.NET Core di Azure Container Apps untuk detailnya.

Pembatasan yang diketahui

  • Penskalakan vertikal tidak didukung.

  • Jumlah replika adalah jumlah target, bukan jaminan.

  • Jika Anda menggunakan aktor Dapr untuk mengelola status, Anda harus ingat bahwa penskalakan ke nol tidak didukung. Dapr menggunakan aktor virtual untuk mengelola panggilan asinkron, yang berarti representasi dalam memori mereka tidak terkait dengan identitas atau masa pakainya.

Langkah berikutnya