Öğ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 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 true
Container 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
.
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
external
kapsayı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 1
bir 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ı seq iç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ı)
- Azure Portal’ında oturum açın.
- Üstteki Arama çubuğuna my-container-app yazın.
- Arama sonuçlarında Kaynaklar'ın altında my-container-app öğesini seçin.
- Sol taraftaki gezinti çubuğunda Uygulama'yı genişletin ve Ölçek ve çoğaltmalar'ı seçin.
- Ölçek ve Çoğaltmalar sayfasında Çoğaltmalar'ı seçin.
- Kapsayıcı uygulamanızda artık birden fazla çoğaltma çalışıyor.
Yeni çoğaltmaları görmek için Yenile'yi seçmeniz gerekebilir.
Sol taraftaki gezinti çubuğunda İzleme'yi genişletin ve Ölçümler'i seçin.
Ölçümler sayfasında Ölçüm'leri İstekler olarak ayarlayın.
Bölme uygula'yı seçin.
Değerler açılan listesini genişletin ve Çoğaltma'ya bakın.
Bölmeyi düzenlemeyi tamamlamak için mavi onay işareti simgesini seçin.
Grafik, kapsayıcı uygulamanız tarafından alınan istekleri çoğaltmaya göre bölünmüş olarak gösterir.
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.
Kapsayıcı uygulamanız tarafından alınan isteklerdeki son artışı vurgulamak için grafikte öğesini seçin ve sürükleyin.
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.
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.