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 VM örneklerinin sayısını tanımlarsınız. Uygulama talebiniz değiştikçe VM örneği sayısını otomatik olarak artırabilir veya azaltabilirsiniz. Otomatik ölçeklendirme özelliği, uygulamanızın yaşam döngüsü boyunca müşteri talebine ayak uydurmanıza veya uygulama performansı değişikliklerine yanıt vermenizi sağlar. Bu öğreticide şunların nasıl yapılacağını öğreneceksiniz:

  • Ölçek kümesiyle otomatik ölçeklendirmeyi kullanma
  • Otomatik ölçeklendirme kuralları oluşturma ve kullanma
  • Otomatik ölçeklendirme kurallarını tetikleyen CPU yükünün benzetimini gerçekleştirin
  • Talep değiştikçe otomatik ölçeklendirme eylemlerini izleme

Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun.

Önkoşullar

  • 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 komutuyla bir kaynak grubu oluşturun.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="WestUS2"
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --location $REGION

Ş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, yoksa SSH anahtarlarını oluşturur ve geçerli Ubuntu2204 görüntüsünü kullanır.

export MY_SCALE_SET_NAME="myScaleSet$RANDOM_SUFFIX"
az vmss create \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --name $MY_SCALE_SET_NAME \
  --image Ubuntu2204 \
  --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 örnek, 2 VM örneğinin varsayılan ve en düşük kapasitesini ve en fazla 10'unu ayarlar:

az monitor autoscale create \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --resource $MY_SCALE_SET_NAME \
  --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

Uygulama talebiniz artarsa ölçek kümenizdeki VM örnekleri üzerindeki yük artar. Bu artan yük yalnızca kısa bir talep yerine tutarlıysa, VM örneği sayısını artırmak için otomatik ölçeklendirme kurallarını yapılandırabilirsiniz. Bu örnekler oluşturulduğunda ve uygulamanız dağıtıldığında, ölçek kümesi trafiği yük dengeleyici aracılığıyla bunlara dağıtmaya başlar. hangi ölçümlerin izleneceğini, yükün belirli bir eşiğe ne kadar süreyle uyması gerektiğini ve kaç VM örneği ekleneceğini denetlersiniz.

Ortalama CPU yükü 5 dakikalık bir süre boyunca 70%'den fazla olduğunda 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 $MY_RESOURCE_GROUP_NAME \
  --autoscale-name autoscale \
  --condition "Percentage CPU > 70 avg 5m" \
  --scale out 3

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

Uygulama talebi azaldığında VM örnekleri üzerindeki yük düşer. Bu azaltılan yük belirli bir süre boyunca devam ederse, ölçek kümesindeki VM örneği sayısını azaltmak için otomatik ölçeklendirme kurallarını yapılandırabilirsiniz. Bu ölçeklendirme eylemi, yalnızca geçerli talebi karşılamak için gereken örnek sayısını çalıştırarak maliyetleri azaltmaya yardımcı olur.

Ortalama CPU yükü 5 dakikalık bir süre boyunca 30% altına düştüğünde VM örneği sayısını azaltan az monitor autoscale rule create ile başka bir kural oluşturun. Aşağıdaki örnek, VM örneği sayısını bire ölçeklendirir.

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

Ölçek kümesinde CPU yükünün benzetimini yapmak

Otomatik ölçeklendirme kurallarını test etmek için ölçek kümesindeki VM örneklerinde sürekli CPU yükünün benzetimini yapmanız gerekir. Bu minimalist yaklaşımda, CPU yükü oluşturmak için yerleşik yes komutunu kullanarak ek paketleri yüklemekten kaçınıyoruz. Aşağıdaki komut, 60 saniye boyunca sürekli olarak veri /dev/null çıkışı veren 3 arka plan işlemi başlatır ve bunları sonlandırır.

for i in {1..3}; do
  yes > /dev/null &
done
sleep 60
pkill yes

Bu komut, paket yükleme hatalarına neden olmadan CPU yükünün benzetimini oluşturur.

Etkin otomatik ölçeklendirme kurallarını izleme

Ölçek kümenizdeki VM örneklerinin sayısını izlemek için komutunu kullanın watch . Cpu yüküne yanıt olarak otomatik ölçeklendirme kurallarının ölçeği genişletme işlemine başlaması 5 dakika kadar sürebilir. Ancak, bu gerçekleştiğinde CTRL + C tuşlarıyla watch'dan çıkabilirsiniz.

Bu zamana kadar ölçek kümesi, talebi karşılamak için VM örneklerinin sayısını otomatik olarak artırır. Aşağıdaki komut ölçek kümesindeki VM örneklerinin listesini gösterir:

az vmss list-instances \
  --resource-group $MY_RESOURCE_GROUP_NAME \
  --name $MY_SCALE_SET_NAME \
  --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. Çıkış, yenileri oluşturulduktan sonra VM örneklerinin listesini gösterir.

  InstanceId  LatestModelApplied    Location    Name              ProvisioningState    ResourceGroup         VmId
------------  --------------------  ----------  ---------------   -------------------  --------------------  ------------------------------------
           1  True                  WestUS2     myScaleSet_1      Succeeded            myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           2  True                  WestUS2     myScaleSet_2      Succeeded            myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           4  True                  WestUS2     myScaleSet_4      Creating             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           5  True                  WestUS2     myScaleSet_5      Creating             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
           6  True                  WestUS2     myScaleSet_6      Creating             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

CPU yükü azalırsa 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çek küçültme işlemleri, önce en yüksek kimlik numaralarına sahip VM örneklerini kaldırır. Ölçek kümesi Kullanılabilirlik Kümelerini veya Kullanılabilirlik Alanlarını kullandığında, ölçek genişletme eylemleri VM örnekleri arasında eşit olarak dağıtılır. Aşağıdaki örnek çıktıda, ölçek kümesi otomatik ölçeklendikçe bir VM örneğinin silindiği gösterilmektedir:

6  True                  WestUS2     myScaleSet_6  Deleting             myResourceGroupxxxxx  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Kaynakları temizle

Ölçek kümenizi ve ilişkili kaynaklarınızı kaldırmak için lütfen tercih ettiğiniz yöntemi kullanarak kaynak grubunu el ile silin.

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
  • Otomatik ölçeklendirme kurallarını tetikleyen CPU yükünün benzetimini gerçekleştirin
  • Talep değiştikçe otomatik ölçeklendirme eylemlerini izleme