Aracılığıyla paylaş


Öğretici: Kapsayıcı uygulamasını ölçeklendirme

Azure Container Apps, bir dizi bildirim temelli ölçeklendirme kuralı aracılığıyla otomatik yatay ölçeklendirmeyi yönetir. Kapsayıcı uygulamasının ölçeği genişletildikçe, kapsayıcı uygulamasının yeni örnekleri isteğe bağlı olarak oluşturulur. Bu örnekler çoğaltma olarak bilinir.

Bu öğreticide kapsayıcı uygulamanıza bir HTTP ölçek kuralı ekleyecek ve uygulamanızın ölçeklendirilişini gözlemleyeceksiniz.

Önkoşullar

Gereksinim Yönergeler
Azure hesabı Azure hesabınız yoksa ücretsiz olarak bir hesap oluşturabilirsiniz.

Devam etmek için Azure aboneliğinde Katkıda Bulunan iznine sahip olmanız gerekir. Ayrıntılar için Bkz. Azure portalını kullanarak Azure rolleri atama.
GitHub Hesabı Ücretsiz bir tane edinin.
Azure CLI Azure CLI’yi yükleyin.

Ayarlama

CLI'dan Azure'da oturum açmak için aşağıdaki komutu çalıştırın ve istemleri izleyerek kimlik doğrulama işlemini tamamlayın.

az login

CLI'nın en son sürümünü çalıştırdığınızdan emin olmak için yükseltme komutunu çalıştırın.

az upgrade

Ardından CLI için Azure Container Apps uzantısını yükleyin veya güncelleştirin.

Azure CLI'da komutları veya Azure PowerShell'deki modülden Az.App cmdlet'leri çalıştırdığınızda az containerapp eksik parametrelerle ilgili hatalar alırsanız, Azure Container Apps uzantısının en son sürümünü yüklediğinizden emin olun.

az extension add --name containerapp --upgrade

Not

Mayıs 2024'den itibaren Azure CLI uzantıları artık önizleme özelliklerini varsayılan olarak etkinleştirmez. Container Apps önizleme özelliklerine erişmek için ile --allow-preview trueContainer Apps uzantısını yükleyin.

az extension add --name containerapp --upgrade --allow-preview true

Geçerli uzantı veya modül yüklendikten sonra ve Microsoft.OperationalInsights ad alanlarını kaydedinMicrosoft.App.

Not

Azure Container Apps kaynakları ad alanından Microsoft.Web ad alanına Microsoft.App geçirildi. Daha fazla ayrıntı için Microsoft.Web'den Mart 2022'de Microsoft.App ad alanı geçişi bölümüne bakın.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Kapsayıcı uygulamasını oluşturma ve dağıtma

komutuyla kapsayıcı uygulamanızı oluşturun ve dağıtın containerapp up . Bu komut bir oluşturur:

  • Kaynak grubu
  • Container Apps ortamı
  • Log Analytics çalışma alanı

Bu kaynaklardan herhangi biri zaten varsa, komut yenilerini oluşturmak yerine mevcut kaynakları kullanır.

Son olarak, komutu bir genel kapsayıcı görüntüsü kullanarak kapsayıcı uygulamasını oluşturur ve dağıtır.

az containerapp up \
  --name my-container-app \
  --resource-group my-container-apps \
  --location centralus \
  --environment 'my-container-apps' \
  --image mcr.microsoft.com/k8se/quickstart:latest \
  --target-port 8080 \
  --ingress external \
  --query properties.configuration.ingress.fqdn \

Not

parametresinin değerinin --image küçük harf olduğundan emin olun.

olarak ayarlayarak --ingress externalkapsayıcı uygulamasını genel istekler için kullanılabilir hale getirirsiniz.

komut, up kapsayıcı uygulaması için tam etki alanı adını (FQDN) döndürür. Bu FQDN'yi bir metin dosyasına kopyalayın. İstekleri gönder bölümünde kullanacaksınız. FQDN'niz aşağıdaki örneğe benzer:

https://my-container-app.icydune-96848328.centralus.azurecontainerapps.io

Ölçek kuralı ekleme

komutunu çalıştırarak az containerapp update kapsayıcı uygulamanıza bir HTTP ölçek kuralı ekleyin.

az containerapp update \
	--name my-container-app \
	--resource-group my-container-apps \
    --scale-rule-name my-http-scale-rule \
    --scale-rule-http-concurrency 1

Bu komut, kapsayıcı uygulamanıza adı my-http-scale-rule ve eşzamanlılık ayarıyla 1bir HTTP ölçek kuralı ekler. Uygulamanız birden fazla eşzamanlı HTTP isteği alıyorsa, çalışma zamanı istekleri işlemek için uygulamanızın çoğaltmalarını oluşturur.

Komut, update isteğinizin başarılı olduğunu doğrulamak için yeni yapılandırmayı JSON yanıtı olarak döndürür.

Günlük çıkışını başlatma

Container Apps çalışma zamanı tarafından oluşturulan günlükleri görüntüleyerek uygulama ölçeklendirmenizin etkilerini gözlemleyebilirsiniz. az containerapp logs show Günlük girdilerini dinlemeye başlamak için komutunu kullanın.

az containerapp logs show \
	--name my-container-app \
	--resource-group my-container-apps \
	--type=system \
	--follow=true

Komut, show kapsayıcı uygulamanız için sistem günlüklerindeki girişleri gerçek zamanlı olarak döndürür. Aşağıdaki örneğe benzer bir yanıt bekleyebilirsiniz:

{
	"TimeStamp":"2023-08-01T16:49:03.02752",
	"Log":"Connecting to the container 'my-container-app'..."
}
{
	"TimeStamp":"2023-08-01T16:49:03.04437",
	"Log":"Successfully Connected to container:
	'my-container-app' [Revision: 'my-container-app--9uj51l6',
	Replica: 'my-container-app--9uj51l6-5f96557ffb-5khg9']"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9480811+00:00",
	"Log":"Microsoft.Hosting.Lifetime[14]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9481264+00:00",
	"Log":"Now listening on: http://[::]:8080"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9490917+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9491036+00:00",
	"Log":"Application started. Press Ctrl+C to shut down."
}
{
	"TimeStamp":"2023-08-01T16:47:31.949723+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497292+00:00",
	"Log":"Hosting environment: Production"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497325+00:00",
	"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
	"TimeStamp":"2023-08-01T16:47:31.9497367+00:00",
	"Log":"Content root path: /app/"
}

Daha fazla bilgi için bkz . az containerapp logs.

İstek gönderme

Yeni bir bash kabuğu açın. Öğesini Kapsayıcı uygulamasını oluşturma ve dağıtma bölümünden kaydettiğiniz kapsayıcı uygulamanızın tam etki alanı adıyla değiştirerek <YOUR_CONTAINER_APP_FQDN> aşağıdaki komutu çalıştırın.

seq 1 50 | xargs -Iname -P10 curl "<YOUR_CONTAINER_APP_FQDN>"

Bu komutlar, kapsayıcı uygulamanıza her biri 10 isteğin eşzamanlı toplu işlemleri halinde 50 istek gönderir.

Komut veya bağımsız değişken Açıklama
seq 1 50 1'den 50'ye kadar bir sayı dizisi oluşturur.
| Kanal işleci, diziyi komutuna xargs gönderir.
xargs Belirtilen URL ile çalışır curl
-Iname çıktısı seqiçin yer tutucu işlevi görür. Bu bağımsız değişken, dönüş değerinin komuta gönderilmesini curl engeller.
curl Verilen URL'yi çağırır.
-P10 Bir kerede en fazla 10 işlem çalıştırma yönergelerini xargs sağlar.

Daha fazla bilgi için şu belgelere bakın:

komutu çalıştırdığınız az containerapp logs show ilk kabukta çıkışta aşağıdaki gibi bir veya daha fazla günlük girdisi bulunur.

{
	"TimeStamp":"2023-08-01 18:09:52 +0000 UTC",
	"Type":"Normal",
	"ContainerAppName":"my-container-app",
	"RevisionName":"my-container-app--9uj51l6",
	"ReplicaName":"my-container-app--9uj51l6-5f96557ffb-f795d",
	"Msg":"Replica 'my-container-app--9uj51l6-5f96557ffb-f795d' has been scheduled to run on a node.",
	"Reason":"AssigningReplica",
	"EventSource":"ContainerAppController",
	"Count":0
}

Azure portalında ölçeklendirmeyi görüntüleme (isteğe bağlı)

  1. Azure Portal’ında oturum açın.
  2. Üstteki Arama çubuğuna my-container-app yazın.
  3. Arama sonuçlarında Kaynaklar'ın altında my-container-app öğesini seçin.
  4. Sol taraftaki gezinti çubuğunda Uygulama'yı genişletin ve Ölçek ve çoğaltmalar'ı seçin.
  5. Ölçek ve Çoğaltmalar sayfasında Çoğaltmalar'ı seçin.
  6. Kapsayıcı uygulamanızda artık birden fazla çoğaltma çalışıyor.

Kapsayıcı uygulaması çoğaltmalarının ekran görüntüsü.

Yeni çoğaltmaları görmek için Yenile'yi seçmeniz gerekebilir.

  1. Sol taraftaki gezinti çubuğunda İzleme'yi genişletin ve Ölçümler'i seçin.

  2. Ölçümler sayfasında Ölçüm'leri İstekler olarak ayarlayın.

  3. Bölme uygula'yı seçin.

  4. Değerler açılan listesini genişletin ve Çoğaltma'ya bakın.

  5. Bölmeyi düzenlemeyi tamamlamak için mavi onay işareti simgesini seçin.

  6. Grafik, kapsayıcı uygulamanız tarafından alınan istekleri çoğaltmaya göre bölünmüş olarak gösterir.

    Çoğaltmaya göre bölünmüş istekleri gösteren kapsayıcı uygulaması ölçümleri grafiği.

  7. Varsayılan olarak, grafik ölçeği 15 dakikalık zaman ayrıntı düzeyiyle son 24 saat olarak ayarlanır. Ölçeği seçin ve bir dakikalık zaman ayrıntı düzeyiyle son 30 dakikaya değiştirin. Uygula düğmesini seçin.

  8. Kapsayıcı uygulamanız tarafından alınan isteklerdeki son artışı vurgulamak için grafikte öğesini seçin ve sürükleyin.

30 dakikalık bir ölçek ve bir dakikalık zaman ayrıntı düzeyine sahip istekleri çoğaltmaya göre bölen istekleri gösteren kapsayıcı uygulaması ölçümleri grafiğinin ekran görüntüsü.

Aşağıdaki ekran görüntüsünde, kapsayıcı uygulamanız tarafından alınan isteklerin çoğaltmalar arasında nasıl bölündüğüne ilişkin yakınlaştırmalı bir görünüm gösterilmektedir.

Kapsayıcı uygulaması ölçümleri grafiğinin ekran görüntüsü, isteklerin çoğaltmaya göre bölünmesini ve yakınlaştırılmış bir görünümde gösterilmesini sağlar.

Kaynakları temizleme

Bu uygulamayı kullanmaya devam etmeyecekseniz, bu öğreticide oluşturulan tüm kaynaklarla birlikte kaynak grubunu silmek için aşağıdaki komutu çalıştırın.

Dikkat

Aşağıdaki komut, belirtilen kaynak grubunu ve içindeki tüm kaynakları siler. Bu öğreticinin kapsamı dışındaki kaynaklar belirtilen kaynak grubunda varsa, bunlar da silinir.

az group delete --name my-container-apps

İpucu

Sorun mu yaşıyorsunuz? Azure Container Apps deposunda bir sorun açarak GitHub'da bize bildirin.

Sonraki adımlar