Aracılığıyla paylaş


Öğretici: Azure CLI ile sanal makine ölçek kümesini otomatik olarak ölçeklendirme

Ölçek kümesi oluşturduğunuzda, çalıştırmak istediğiniz sanal makine örneği sayısını tanımlarsınız. Uygulamanızın talebi değiştikçe, sanal makine örneklerinin sayısını otomatik olarak artırabilir veya azaltabilirsiniz. Otomatik ölçeklendirme özelliği, uygulamanızın yaşam döngüsü boyunca uygulama performansındaki değişikliklere veya müşteri taleplerine ayak uydurmanıza olanak tanır. Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • Ölçek kümesiyle otomatik ölçeklendirmeyi kullanma
  • Otomatik ölçeklendirme kuralları oluşturma ve kullanma
  • Sanal makine örneklerinde stres testi yapma ve otomatik ölçeklendirme kurallarını tetikleme
  • Talep düştüğünde geriye doğru otomatik ölçeklendirme

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

  • Bu öğretici, Azure CLI'nın 2.0.32 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

Ölçek kümesi oluşturma

az group create ile bir kaynak grubu oluşturun.

az group create --name myResourceGroup --location eastus

Şimdi az vmss create ile bir Sanal Makine Ölçek Kümesi oluşturun. Aşağıdaki örnek, örnek sayısı 2 olan bir ölçek kümesi oluşturur ve yoksa SSH anahtarları oluşturur.

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image <SKU image> \
  --orchestration-mode Flexible \
  --instance-count 2 \
  --admin-username azureuser \
  --generate-ssh-keys

Otomatik ölçeklendirme profilini tanımlama

Bir ölçek kümesinde otomatik ölçeklendirmeyi etkinleştirmek için ilk olarak bir otomatik ölçeklendirme profili tanımlamanız gerekir. Bu profil varsayılan, en düşük ve en yüksek ölçek kümesi kapasitesini tanımlar. Bu sınırlar sürekli VM örnekleri oluşturmayarak maliyeti denetlemenize ve kabul edilebilir performansı bir ölçekleme olayında kalan en az sayıda örnekle dengelemenize olanak tanır. az monitor autoscale create komutu ile bir otomatik ölçeklendirme profili oluşturun. Aşağıdaki örnekte, varsayılan ve en düşük sanal makine örneği kapasitesi 2 ve en yüksek kapasite de 10 olarak ayarlanır:

az monitor autoscale create \
  --resource-group myResourceGroup \
  --resource myScaleSet \
  --resource-type Microsoft.Compute/virtualMachineScaleSets \
  --name autoscale \
  --min-count 2 \
  --max-count 10 \
  --count 2

Otomatik ölçeklendirme ölçeğini genişletmek için kural oluşturma

Uygulamanızın talebi artarsa, ölçek kümenizdeki sanal makine örneklerinde üzerindeki yük de artar. Bu kısa süreli bir talep olmayıp tutarlı şekilde yük artıyorsa, ölçek kümesindeki sanal makine örneği sayısını artırmak için otomatik ölçeklendirme kuralları yapılandırabilirsiniz. Bu sanal makine örnekleri oluşturulduğunda ve uygulamalarınız dağıtıldığında ölçek kümesi, yük dengeleyici aracılığıyla bunlara trafiği dağıtmaya başlar. Hangi ölçümlerin izleneceğini, uygulama yükünün belirli bir eşiğe ne kadar süreyle uyması gerektiğini ve ölçek kümesine kaç VM örneği ekleneceğini denetlersiniz.

Ortalama CPU yükü 5 dakikalık bir süre boyunca %70'in üzerinde olduğunda ölçek kümesindeki VM örneklerinin sayısını artıran az monitor autoscale rule create ile bir kural oluşturun. Kural tetiklendiğinde, sanal makine örneği sayısı üç artırılır.

az monitor autoscale rule create \
  --resource-group myResourceGroup \
  --autoscale-name autoscale \
  --condition "Percentage CPU > 70 avg 5m" \
  --scale out 3

Otomatik ölçeklendirme ölçeğini daraltmak için kural oluşturma

Bir akşam veya hafta sonu uygulama talebiniz azalabilir. Yük belirli bir süreye yayılarak tutarlı şekilde azalıyorsa, ölçek kümesindeki sanal makine örneği sayısını azaltmak için otomatik ölçeklendirme kuralları yapılandırabilirsiniz. Mevcut talebi karşılamak için gerekli örnek sayısını yalnızca siz çalıştırdığınızdan, bu ölçeği daraltma eylemi, ölçek kümenizi çalıştırma maliyetini azaltır.

az monitor autoscale rule create komutu ile, ortalama CPU yükü 5 dakika boyunca %30’un altına indiğinde bir ölçek kümesindeki sanal makine örneği sayısını azaltan başka bir kural oluşturun. Aşağıdaki örnek, sanal makine örneği sayısını bir artırmak için kuralı tanımlar.

az monitor autoscale rule create \
  --resource-group myResourceGroup \
  --autoscale-name autoscale \
  --condition "Percentage CPU < 30 avg 5m" \
  --scale in 1

Ölçek kümesinde CPU yükü oluşturma

Otomatik ölçeklendirme kurallarını test etmek için, ölçek kümesindeki sanal makine örneklerinde biraz CPU yükü oluşturun. Bu benzetimi yapılan CPU yükü, otomatik ölçeklendirmenin ölçeği genişletmesine ve sanal makine örneği sayısını artırmasına neden olur. Benzetimi yapılan CPU yükü daha sonra azaldığında otomatik ölçeklendirme kuralları ölçeği daraltır ve sanal makine örneği sayısını azaltır.

Tek bir örneğe bağlanmak için bkz . Öğretici: Sanal Makine Ölçek Kümesi örneklerine bağlanma

Oturum açtıktan sonra stress veya stress-ng yardımcı programını yükleyin. CPU yükü oluşturan 10 stres çalışanı başlatın. Bu çalışanlar 420 saniye çalışır; bu, otomatik ölçeklendirme kurallarının istenen eylemi uygulamasını sağlamak için yeterlidir.

sudo apt-get update
sudo apt-get -y install stress
sudo stress --cpu 10 --timeout 420 &

stress, stress: info: [2688] dispatching hogs: 10 cpu, 0 io, 0 vm, 0 hdd benzeri bir çıktı gösterdiğinde, isteme geri dönmek için Enter tuşuna basın.

stress yardımcı programının CPU yükü oluşturduğunu onaylamak için, top yardımcı programını kullanarak etkin sistem yükünü inceleyin:

top

top yardımcı programından çıkın ve sanal makine örneğiyle bağlantınızı kapatın. stress yardımcı programı, sanal makine örneğinde çalışmaya devam eder.

Ctrl-c
exit

Önceki az vmss list-instance-connection-info komutunda yer alan bağlantı noktası numarası ile ikinci sanal makine örneğine bağlanın:

ssh azureuser@13.92.224.66 -p 50003

Stress veya stress-ng yükleyip çalıştırın, ardından bu ikinci VM örneğinde on çalışan başlatın.

sudo apt-get -y install stress
sudo stress --cpu 10 --timeout 420 &

Tekrar stress, stress: info: [2713] dispatching hogs: 10 cpu, 0 io, 0 vm, 0 hdd benzeri bir çıktı gösterdiğinde, isteme geri dönmek için Enter tuşuna basın.

İkinci sanal makine örneğiyle bağlantınızı kapatın. stress yardımcı programı, sanal makine örneğinde çalışmaya devam eder.

exit

Etkin otomatik ölçeklendirme kurallarını izleme

Ölçek kümenizdeki sanal makine örneği sayısını izlemek için watch yardımcı programını kullanın. Otomatik ölçeklendirme kurallarının, sanal makine örneklerinin her birinde stress tarafından oluşturulan CPU yüküne yanıt olarak ölçeği genişletme işlemini başlatması 5 dakika sürer:

watch az vmss list-instances \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --output table

CPU eşiği karşılandıktan sonra otomatik ölçeklendirme kuralları, ölçek kümesindeki sanal makine örneği sayısını artırır. Aşağıdaki çıkışta, ölçek kümesi ölçeği genişlettiğinde oluşturulan üç sanal makine gösterilir:

Every 2.0s: az vmss list-instances --resource-group myResourceGroup --name myScaleSet --output table

  InstanceId  LatestModelApplied    Location    Name          ProvisioningState    ResourceGroup    VmId
------------  --------------------  ----------  ------------  -------------------  ---------------  ------------------------------------
           1  True                  eastus      myScaleSet_1  Succeeded            myResourceGroup  4f92f350-2b68-464f-8a01-e5e590557955
           2  True                  eastus      myScaleSet_2  Succeeded            myResourceGroup  d734cd3d-fb38-4302-817c-cfe35655d48e
           4  True                  eastus      myScaleSet_4  Creating             myResourceGroup  061b4c90-0d73-49fc-a066-19eab0b3d95c
           5  True                  eastus      myScaleSet_5  Creating             myResourceGroup  4beff8b9-4e65-40cb-9652-43899309da27
           6  True                  eastus      myScaleSet_6  Creating             myResourceGroup  9e4133dd-2c57-490e-ae45-90513ce3b336

stress yardımcı programı ilk sanal makine örneklerinde durduğunda ortalama CPU yükü normale döner. Bir 5 dakika daha geçtikten sonra otomatik ölçeklendirme kuralları, ölçeği daraltarak sanal makine örneklerinin sayısını azaltır. Ölçeği daraltma eylemleri önce en yüksek kimliğe sahip sanal makine örneklerini kaldırır. Bir ölçek kümesi Kullanılabilirlik Kümeleri veya Kullanılabilirlik Alanları kullandığında, eylemlerdeki ölçek VM örnekleri arasında eşit olarak dağıtılır. Aşağıdaki örnek çıktıda, ölçek kümesi otomatik olarak ölçeği daralttığında tek bir sanal makine örneğinin silindiği gösterilmektedir:

6  True                  eastus      myScaleSet_6  Deleting             myResourceGroup  9e4133dd-2c57-490e-ae45-90513ce3b336

Ctrl-c ile watch yardımcı programından çıkın. Ölçek kümesi, en az örnek sayısı olan 2 örneğe ulaşılıncaya kadar her 5 dakikada bir ölçeği daraltmaya ve bir sanal makine örneğini kaldırmaya devam eder.

Kaynakları temizleme

Ölçek kümenizi ve ek kaynaklarınızı kaldırmak için az group delete komutunu kullanarak kaynak grubunu ve bu kaynak grubunun tüm kaynaklarını silin. --no-wait parametresi işlemin tamamlanmasını beklemeden denetimi komut istemine döndürür. --yes parametresi kaynakları ek bir komut istemi olmadan silmek istediğinizi onaylar.

az group delete --name myResourceGroup --yes --no-wait

Sonraki adımlar

Bu öğreticide, Azure CLI ile otomatik olarak bir ölçek kümesinin ölçeğini daraltma veya genişletme işleminin nasıl yapılacağını öğrendiniz:

  • Ölçek kümesiyle otomatik ölçeklendirmeyi kullanma
  • Otomatik ölçeklendirme kuralları oluşturma ve kullanma
  • Sanal makine örneklerinde stres testi yapma ve otomatik ölçeklendirme kurallarını tetikleme
  • Talep düştüğünde geriye doğru otomatik ölçeklendirme