Azure Sanal Makine Ölçek Kümeleri ile özel ölçeklendirme ilkeleri kullanma

Sanal Makine Ölçek Kümesi dağıtımı, platform ve kullanıcı tanımlı özel ölçümler de dahil olmak üzere bir ölçüm dizisine göre ölçeklendirilebilir veya ölçeklendirilebilir. Ölçeği genişletme işlemi ölçek kümesi modeli temelinde yeni sanal makineler oluştururken, ölçeği daraltma işlemi ölçek kümesi iş yükü geliştikçe farklı yapılandırmalara ve/veya işlevlere sahip olabilen çalışır durumdaki sanal makineleri etkiler.

Ölçeği daraltma ilkesi özelliği, kullanıcılara üç ölçek genişletme yapılandırması yoluyla sanal makinelerin ölçeklendirilme sırasını yapılandırmanın bir yolunu sağlar:

  1. Varsayılan
  2. NewestVM
  3. OldestVM

Varsayılan ölçeklendirme ilkesi

Esnek düzenleme

Bu ilkeyle, kullanılabilirlik alanları arasında dengelemeden sonra sanal makineler ölçeklendirilir (ölçek kümesi bölgesel yapılandırmadaysa) ve en eski sanal makine createdTime ilk olarak ölçeklendirilir. Hata etki alanı genelinde dengeleme, esnek düzenleme moduyla Varsayılan ilkede kullanılamaz.

Tekdüzen düzenleme

Varsayılan olarak, Sanal Makine Ölçek Kümesi hangi örneklerin ölçeklendirileceğini belirlemek için bu ilkeyi uygular. Varsayılan ilke ile VM'ler ölçeklendirilmeleri için aşağıdaki sırayla seçilir:

  1. Kullanılabilirlik alanları arasında sanal makineleri dengeleme (ölçek kümesi bölgesel yapılandırmada dağıtıldıysa)
  2. Sanal makineleri hata etki alanları arasında dengeleme (en iyi çaba)
  3. En yüksek örnek kimliğine sahip sanal makineyi silme

Yalnızca varsayılan sıralamanın izlenmesini isteyen kullanıcıların bir ölçek daraltma ilkesi belirtmesi gerekmez.

Kullanılabilirlik alanları veya hata etki alanları arasında dengeleme, örnekleri kullanılabilirlik alanları veya hata etki alanları arasında taşımaz. Dengeleme, sanal makinelerin dağıtılması dengelenene kadar dengesiz kullanılabilirlik alanlarından veya hata etki alanlarından sanal makinelerin silinmesiyle gerçekleştirilir.

YeniVM ölçeğini daraltma ilkesi

Bu ilke, vm'leri kullanılabilirlik alanları arasında dengeledikten sonra (bölgesel dağıtımlar için) ölçek kümesinde en yeni veya en son oluşturulan sanal makineyi siler. Bu ilkenin etkinleştirilmesi, Sanal Makine Ölçek Kümesi modelinde bir yapılandırma değişikliği gerektirir.

En eskiVM ölçeğini daraltma ilkesi

Bu ilke, vm'leri kullanılabilirlik alanları arasında dengeledikten sonra (bölgesel dağıtımlar için) ölçek kümesinde oluşturulan en eski sanal makineyi siler. Bu ilkenin etkinleştirilmesi, Sanal Makine Ölçek Kümesi modelinde bir yapılandırma değişikliği gerektirir.

Ölçeği daraltma ilkesini etkinleştirme

Sanal Makine Ölçek Kümesi modelinde bir ölçeklendirme ilkesi tanımlanır. Önceki bölümlerde belirtildiği gibi, 'NewestVM' ve 'OldestVM' ilkeleri kullanılırken bir ölçek daraltma ilkesi tanımı gerekir. Ölçek kümesi modelinde ölçek genişletme ilkesi tanımı bulunmazsa Sanal Makine Ölçek Kümesi otomatik olarak 'Varsayılan' ölçekleme ilkesini kullanır.

Sanal Makine Ölçek Kümesi modelinde ölçeklendirme ilkesi aşağıdaki yollarla tanımlanabilir:

Azure portalı

Aşağıdaki adımlar, yeni bir ölçek kümesi oluştururken ölçeklendirme ilkesini tanımlar.

  1. Sanal Makine Ölçek Kümeleri'a gidin.
  2. Yeni bir ölçek kümesi oluşturmak için + Ekle'yi seçin.
  3. Ölçeklendirme sekmesine gidin.
  4. Ölçek daraltma ilkesi bölümünü bulun.
  5. Açılan listeden bir ölçeklendirme ilkesi seçin.
  6. Yeni ölçek kümesini oluşturmayı bitirdiğinizde Gözden Geçir ve oluştur düğmesini seçin.

API'yi kullanma

API 2019-03-01 kullanarak Sanal Makine Ölçek Kümesinde PUT yürütme:

PUT
https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<myRG>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVMSS>?api-version=2019-03-01

{ 
"location": "<VMSS location>", 
    "properties": { 
        "scaleInPolicy": {  
            "rules": ["OldestVM"]  
        } 
    }    
} 

Azure PowerShell

Önemli

Kasım 2023'den itibaren, düzenleme modu belirtilmezse PowerShell ve Azure CLI kullanılarak oluşturulan VM ölçek kümeleri varsayılan olarak Esnek Düzenleme Modu olarak ayarlanır. Bu değişiklik ve gerçekleştirmeniz gereken eylemler hakkında daha fazla bilgi için BKZ. VMSS PowerShell/CLI Müşterileri için Yeni Değişiklik - Microsoft Community Hub

Bir kaynak grubu oluşturun, sonra da ölçeği daraltma ilkesi OldestVM olarak ayarlanmış yeni bir ölçek kümesi oluşturun.

New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "<VMSS location>"
New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "<VMSS location>" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -ScaleInPolicy “OldestVM”

Azure CLI

Önemli

Kasım 2023'den itibaren, düzenleme modu belirtilmezse PowerShell ve Azure CLI kullanılarak oluşturulan VM ölçek kümeleri varsayılan olarak Esnek Düzenleme Modu olarak ayarlanır. Bu değişiklik ve gerçekleştirmeniz gereken eylemler hakkında daha fazla bilgi için BKZ. VMSS PowerShell/CLI Müşterileri için Yeni Değişiklik - Microsoft Community Hub

Aşağıdaki örnek, yeni bir ölçek kümesi oluştururken bir ölçek daraltma ilkesi ekler. İlk olarak bir kaynak grubu oluşturun, sonra da ölçeği daraltma ilkesi Ile OldestVM olarak yeni bir ölçek kümesi oluşturun.

az group create --name <myResourceGroup> --location <VMSSLocation>
az vmss create \
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --orchestration-mode flexible \
  --image Ubuntu2204 \
  --admin-username <azureuser> \
  --generate-ssh-keys \
  --scale-in-policy OldestVM

Şablon Kullanma

Şablonunuzdaki "özellikler" bölümüne özelliğini ekleyin scaleInPolicy :

"scaleInPolicy": {  
      "rules": ["OldestVM"]  
}

Bu kod blokları, bir ölçekleme tetiklendiğinde (Otomatik Ölçeklendirme veya el ile silme yoluyla) Sanal Makine Ölçek Kümesinin bölge dengeli bir ölçek kümesindeki En Eski VM'yi sileceğini belirtir.

Bir Sanal Makine Ölçek Kümesi bölge dengeli olmadığında, ölçek kümesi önce dengesiz bölgeler arasındaki VM'leri siler. Dengesiz bölgeler içinde ölçek kümesi, hangi VM'nin ölçeklendirileceğini belirlemek için belirtilen ölçek daraltma ilkesini kullanır. Bu durumda, dengesiz bir bölge içinde ölçek kümesi silinecek bölgedeki En Eski VM'yi seçer.

Bölgesel olmayan Sanal Makine Ölçek Kümesi için ilke, ölçek kümesi genelinde silinmek üzere en eski VM'yi seçer.

'NewestVM' ölçeklendirme ilkesi kullanılırken de aynı işlem geçerlidir.

Ölçeği daraltma ilkelerini değiştirme

Ölçek daraltma ilkesinin değiştirilmesi, ölçeklendirme ilkesinin uygulanmasıyla aynı işlemi izler. Örneğin, ilkeyi 'OldestVM' yerine 'NewestVM' olarak değiştirmek istiyorsanız, bunu şu şekilde yapabilirsiniz:

Azure portalı

Mevcut bir ölçek kümesinin ölçek genişletme ilkesini Azure portalı üzerinden değiştirebilirsiniz.

  1. Mevcut bir Sanal Makine Ölçek Kümesi'nde soldaki menüden Ölçeklendirme'yi seçin.
  2. Ölçeklendirme İlkesi sekmesini seçin.
  3. Açılan listeden bir ölçeklendirme ilkesi seçin.
  4. Bitirdiğinizde, Kaydet'i seçin.

API'yi kullanma

API 2019-03-01 kullanarak Sanal Makine Ölçek Kümesinde PUT yürütme:

PUT
https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<myRG>/providers/Microsoft.Compute/virtualMachineScaleSets/<myVMSS>?api-version=2019-03-01 

{ 
"location": "<VMSS location>", 
    "properties": { 
        "scaleInPolicy": {  
            "rules": ["NewestVM"]  
        } 
    }    
}

Azure PowerShell

Mevcut bir ölçek kümesinin ölçek daraltma ilkesini güncelleştirin:

Update-AzVmss `
 -ResourceGroupName "myResourceGroup" `
 -VMScaleSetName "myScaleSet" `
 -ScaleInPolicy “OldestVM”

Azure CLI

Aşağıda, mevcut bir ölçek kümesinin ölçek daraltma ilkesini güncelleştirmeye yönelik bir örnek verilmiştir:

az vmss update \  
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --scale-in-policy OldestVM

Şablon Kullanma

Şablonunuzdaki "özellikler" bölümünde şablonu aşağıdaki gibi değiştirin ve yeniden dağıtın:

"scaleInPolicy": {  
      "rules": ["NewestVM"]  
} 

'NewestVM' öğesini 'Varsayılan' veya 'OldestVM' olarak değiştirmeye karar verirseniz aynı işlem geçerlidir

Örnek koruma ve ölçeklendirme ilkesi

Sanal Makine Ölçek Kümeleri iki tür örnek koruması sağlar:

  1. Ölçeği daraltmadan koruma
  2. Ölçek kümesi eylemlerinden koruma

Korumalı bir sanal makine, uygulanan ölçeklendirme ilkesinden bağımsız olarak bir ölçek genişletme eylemi aracılığıyla silinmez. Örneğin, VM_0 (ölçek kümesindeki en eski VM) ölçeklemeden korunuyorsa ve ölçek kümesinde 'OldestVM' ölçekleme ilkesi etkinleştirildiyse, ölçek kümesindeki en eski VM olsa bile VM_0 ölçeklendirildiği düşünülmeyecektir.

Korumalı bir sanal makine, ölçek kümesinde etkinleştirilen ölçeklendirme ilkesinden bağımsız olarak kullanıcı tarafından herhangi bir zamanda el ile silinebilir.

Kullanım örnekleri

Aşağıdaki örneklerde, bir Sanal Makine Ölçek Kümesi'nin bir ölçekleme olayı tetiklendiğinde silinecek VM'leri nasıl seçtiği gösterilmektedir. En yüksek örnek kimliklerine sahip sanal makinelerin ölçek kümesindeki en yeni VM'ler olduğu varsayılır ve en küçük örnek kimliklerine sahip VM'lerin ölçek kümesindeki en eski VM'ler olduğu varsayılır.

En eskiVM ölçeğini daraltma ilkesi

Olay Zone1'deki Örnek Kimlikleri Zone2'deki Örnek Kimlikleri Zone3'teki Örnek Kimlikleri Ölçeği Daraltma Seçimi
Başlangıç 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8
Ölçeği daralt 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8 Bölge 3 en eski VM'ye sahip olsa bile Bölge 1 ile 2 arasında seçim yapın. Bölge 2'den VM2'yi silin çünkü bu bölgedeki en eski VM'dir.
Ölçeği daralt 3, 4, 5, 10 6, 9, 11 1, 7, 8 Bölge 3 en eski VM'ye sahip olsa bile Bölge 1'i seçin. Bu bölgedeki en eski VM olduğundan VM3'leri Bölge 1'den silin.
Ölçeği daralt 4, 5, 10 6, 9, 11 1, 7, 8 Bölgeler dengelidir. Ölçek kümesindeki en eski VM olduğundan Bölge 3'teki VM1'i silin.
Ölçeği daralt 4, 5, 10 6, 9, 11 7, 8 Bölge 1 ile Bölge 2 arasında seçim yapın. bölge 1'deki VM4'leri silin çünkü bu iki Bölgedeki en eski VM'dir.
Ölçeği daralt 5, 10 6, 9, 11 7, 8 Bölge 1 en eski VM'ye sahip olsa bile Bölge 2'yi seçin. Bölge 1'deki VM6'ları, bu bölgedeki en eski VM olduğundan silin.
Ölçeği daralt 5, 10 9, 11 7, 8 Bölgeler dengelidir. Ölçek kümesindeki en eski VM olduğundan Bölge 1'deki VM5'i silin.

Bölgesel olmayan Sanal Makine Ölçek Kümeleri için ilke, ölçek kümesi genelinde silinmek üzere en eski VM'yi seçer. Tüm "korumalı" VM'ler silinmek üzere atlanır.

YeniVM ölçeğini daraltma ilkesi

Olay Zone1'deki Örnek Kimlikleri Zone2'deki Örnek Kimlikleri Zone3'teki Örnek Kimlikleri Ölçeği Daraltma Seçimi
Başlangıç 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8
Ölçeği daralt 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8 Bölge 1 ile 2 arasında seçim yapın. İki bölgedeki en yeni VM olduğundan VM11'i Bölge 2'den silin.
Ölçeği daralt 3, 4, 5, 10 2, 6, 9 1, 7, 8 Diğer iki bölgeden daha fazla VM olduğundan Bölge 1'i seçin. Vm10'un Bölge 1'den silinmesini sağlar. Bu, o bölgedeki en yeni VM'dir.
Ölçeği daralt 3, 4, 5 2, 6, 9 1, 7, 8 Bölgeler dengelidir. Ölçek kümesindeki en yeni VM olduğundan Bölge 2'deki VM9'yi silin.
Ölçeği daralt 3, 4, 5 2, 6 1, 7, 8 Bölge 1 ile Bölge 3 arasında seçim yapın. Bölge 3'teki VM8'i, bu bölgedeki en yeni VM olduğundan silin.
Ölçeği daralt 3, 4, 5 2, 6 1, 7 Bölge 3 en yeni VM'ye sahip olsa bile Bölge 1'i seçin. Bölge 1'deki VM5'i, o Bölgedeki en yeni VM olduğundan silin.
Ölçeği daralt 3, 4 2, 6 1, 7 Bölgeler dengelidir. Ölçek kümesindeki en yeni VM olduğundan Bölge 3'teki VM7'yi silin.

Bölgesel olmayan Sanal Makine Ölçek Kümeleri için ilke, ölçek kümesi genelinde silinmek üzere en yeni VM'yi seçer. Tüm "korumalı" VM'ler silinmek üzere atlanır.

Sorun giderme

  1. scaleInPolicy'yi etkinleştirme hatası "'properties' türündeki nesnede 'scaleInPolicy' üyesi bulunamadı" hata iletisiyle 'BadRequest' hatası alırsanız, Sanal Makine Ölçek Kümesi için kullanılan API sürümünü denetleyin. Bu özellik için API sürüm 2019-03-01 veya üzeri gereklidir.

  2. Ölçek daraltma için yanlış VM seçimi Bu belgedeki örneklere bakın. Sanal Makine Ölçek Kümeniz bir Bölgesel dağıtımsa, ölçek genişletme ilkesi önce dengesiz Bölgelere, ardından bölge dengelendikten sonra ölçek kümesi genelinde uygulanır. Ölçeklendirme sırası burada belgelenen örneklerle tutarlı değilse, sorun giderme için Sanal Makine Ölçek Kümesi ekibiyle bir sorgu oluşturun.

Sonraki adımlar

Uygulamanızı Sanal Makine Ölçek Kümeleri dağıtmayı öğrenin.