Azure sanal makine ölçek kümeleri ile özel ölçeklendirme ilkeleri kullanma
uygulama hedefi: : heavy_check_mark: Linux vm 'leri: heavy_check_mark: Windows vm 'ler: heavy_check_mark: tekdüzen ölçek kümeleri
Bir 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, ölçek kümesi modeline göre yeni sanal makineler oluşturduğunda, ölçek kümesi iş yükü geliştikçe farklı yapılandırmalara ve/veya işlevlere sahip olabilecek çalışan sanal makineleri etkiler.
Ölçek genişletme İlkesi özelliği, kullanıcılara, üç ölçekli yapılandırma yoluyla sanal makinelerin ölçeklendiği sırayı yapılandırmak için bir yol sağlar:
- Varsayılan
- NewestVM
- OldestVM
Varsayılan ölçeklendirme ilkesi
Varsayılan olarak, sanal makine ölçek kümesi bu ilkeyi hangi örneklerin ölçeklendirileceğini belirleyecek şekilde uygular. Varsayılan Ilkeyle, sanal makineler aşağıdaki sırada ölçek için seçilir:
- Kullanılabilirlik alanları genelinde sanal makineleri Dengeleme (ölçek kümesi bölgesel yapılandırmasında dağıtılmışsa)
- Hata etki alanları genelinde sanal makinelerin dengelenmesi (en iyi çaba)
- En yüksek örnek KIMLIĞIYLE sanal makineyi Sil
Kullanıcıların yalnızca varsayılan sıralamayı takip etmek istiyorsanız, ölçek bir ilke belirtmeleri gerekmez.
Kullanılabilirlik alanları veya hata etki alanları genelinde dengelemenin örnekleri kullanılabilirlik alanları veya hata etki alanları arasında taşımadığını unutmayın. Dengeleme, sanal makinelerin dağıtılması dengeli hale gelene kadar, dengesiz kullanılabilirlik bölgelerinden veya hata etki alanlarından sanal makinelerin silinmesinden elde edilir.
NewestVM ölçek genişletme İlkesi
Bu ilke, kullanılabilirlik alanları genelinde VM 'leri dengeledikten sonra ölçek kümesindeki en yeni oluşturulan sanal makineyi siler (bölgesel dağıtımları için). Bu ilkeyi etkinleştirmek, sanal makine ölçek kümesi modelinde bir yapılandırma değişikliği gerektirir.
OldestVM ölçeklendirme ilkesi
Bu ilke, kullanılabilirlik alanları genelinde VM 'leri dengeledikten sonra ölçek kümesindeki en eski oluşturulan sanal makineyi siler (bölgesel dağıtımları için). Bu ilkeyi etkinleştirmek, sanal makine ölçek kümesi modelinde bir yapılandırma değişikliği gerektirir.
Ölçek Genişletme ilkesini etkinleştirme
Ölçek genişletme İlkesi, sanal makine ölçek kümesi modelinde tanımlanmıştır. Yukarıdaki bölümlerde belirtildiği gibi, ' NewestVM ' ve ' OldestVM ' ilkeleri kullanılırken bir ölçek genişletme ilke tanımı gerekir. Ölçek kümesi modelinde ölçek genişletme ilke tanımı yoksa, sanal makine ölçek kümesi otomatik olarak ' varsayılan ' ölçekleme ilkesini kullanır.
Bir ölçek genişletme İlkesi, sanal makine ölçek kümesi modelinde aşağıdaki yollarla tanımlanabilir:
Azure portal
Aşağıdaki adımlar, yeni bir ölçek kümesi oluştururken ölçek genişletme ilkesini tanımlar.
- Sanal makine ölçek kümelerine gidin.
- Yeni bir ölçek kümesi oluşturmak için + Ekle ' yi seçin.
- Ölçeklendirme sekmesine gidin.
- Ölçek genişletme İlkesi bölümünü bulun.
- Açılan listeden bir ölçek genişletme İlkesi seçin.
- Yeni ölçek kümesini oluşturmayı tamamladığınızda, gözden geçir + oluştur düğmesini seçin.
API'yi kullanma
API 2019-03-01 kullanarak sanal makine ölçek kümesinde bir PUT yürütün:
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
Bir kaynak grubu oluşturun ve ardından, Oldestvm olarak ayarlanan ölçek genişletme ilkesiyle yeni bir ölçek kümesi oluşturun.
New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "<VMSS location>"
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-Location "<VMSS location>" `
-VMScaleSetName "myScaleSet" `
-ScaleInPolicy “OldestVM”
Azure CLI 2.0
Aşağıdaki örnek, yeni bir ölçek kümesi oluştururken bir ölçek genişletme İlkesi ekler. İlk olarak bir kaynak grubu oluşturun ve ardından Oldestvm olarak ölçek genişletme ilkesiyle yeni bir ölçek kümesi oluşturun.
az group create --name <myResourceGroup> --location <VMSSLocation>
az vmss create \
--resource-group <myResourceGroup> \
--name <myVMScaleSet> \
--image UbuntuLTS \
--admin-username <azureuser> \
--generate-ssh-keys \
--scale-in-policy OldestVM
Şablon kullanma
Şablonunuzda, "Özellikler" altında aşağıdakileri ekleyin:
"scaleInPolicy": {
"rules": ["OldestVM"]
}
Yukarıdaki bloklar, sanal makine ölçek kümesinin, bir ölçek tetiklendiğinde (otomatik ölçeklendirme veya el ile silme aracılığıyla) bölge dengelenmiş ölçek kümesindeki en eski VM 'yi silemeyeceğini belirtir.
Bir sanal makine ölçek kümesi bölge dengeli olmadığında, ölçek kümesi önce sanal makineleri imdengeli bölge (lar) da siler. İmdenden dengelenmiş bölgelerde, ölçek kümesi yukarıda belirtilen ölçek genişletme ilkesini kullanarak hangi VM 'nin ölçeklendirileyeceğini tespit eder. Bu durumda, imdenden dengelenmiş bir bölgede, ölçek kümesi silinecek bu bölgedeki en eski VM 'yi seçer.
Ölçeklendirilmemiş sanal makine ölçek kümesi için ilke, ölçek kümesi genelinde silinmek üzere en eski VM 'yi seçer.
Yukarıdaki ölçek-ın ilkesinde ' NewestVM ' kullanılırken aynı işlem geçerlidir.
Ölçek Genişletme ilkelerini değiştirme
Ölçek Genişletme ilkesini değiştirmek, ölçek genişletme ilkesini uygulamayla aynı işlemi izler. Örneğin, yukarıdaki örnekte, ilkeyi ' OldestVM ' iken ' NewestVM ' olarak değiştirmek istiyorsanız şunu yaparak şunları yapabilirsiniz:
Azure portal
Mevcut bir ölçek kümesinin ölçek değiştirme ilkesini Azure portal aracılığıyla değiştirebilirsiniz.
- Var olan bir sanal makine ölçek kümesinde, sol taraftaki menüden ölçekleme ' ı seçin.
- Ölçek genişletme İlkesi sekmesini seçin.
- Açılan listeden bir ölçek genişletme İlkesi seçin.
- İşiniz bittiğinde Kaydet‘i seçin.
API'yi kullanma
API 2019-03-01 kullanarak sanal makine ölçek kümesinde bir PUT yürütün:
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
Varolan ölçek kümesinin ölçek genişletme ilkesini güncelleştirin:
Update-AzVmss `
-ResourceGroupName "myResourceGroup" `
-VMScaleSetName "myScaleSet" `
-ScaleInPolicy “OldestVM”
Azure CLI 2.0
Aşağıda, var olan bir ölçek kümesinin ölçek genişletme ilkesini güncelleştirmeye yönelik bir örnek verilmiştir:
az vmss update \
--resource-group <myResourceGroup> \
--name <myVMScaleSet> \
--scale-in-policy OldestVM
Şablon kullanma
Şablonunuzda, "Özellikler" altında, şablonu aşağıda gösterildiği gibi değiştirin ve yeniden dağıtın:
"scaleInPolicy": {
"rules": ["NewestVM"]
}
' NewestVM ' öğesini ' default ' veya ' OldestVM ' olarak değiştirmeye karar verirseniz aynı işlem geçerlidir
Örnek koruma ve ölçek genişletme İlkesi
Sanal makine ölçek kümeleri iki tür örnek korumasağlar:
- Ölçeklendirmeye karşı koruma
- Ölçek kümesi eylemlerine karşı koruma
Korunan bir sanal makine, uygulanan ölçek ilke eyleminden bağımsız olarak, ölçek temelli bir eylem aracılığıyla silinmez. Örneğin, VM_0 (ölçek kümesindeki en eski VM), ölçeklendirmeden korunuyorsa ve ölçek kümesinde ' OldestVM ' ölçeği etkinse, ölçek kümesinde en eski VM olmasına rağmen, VM_0 ölçeklendirilmez.
Korunan bir sanal makine, ölçek kümesinde etkin olan ölçek temelli ilkeden 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ümesinin, bir ölçek olayı tetiklendiğinde silinecek VM 'Leri nasıl seçdikleri gösterilmektedir. En yüksek örnek kimliğine sahip sanal makinelerin ölçek kümesindeki en yeni VM 'Ler olduğu varsayılır ve en küçük örnek kimlikleri olan VM 'Lerin ölçek kümesindeki en eski VM olarak kabul edilir.
OldestVM ölçeklendirme ilkesi
| Olay | /Ay içinde örnek kimlikleri | Bölge 2 içinde örnek kimlikleri | Bölge 3 içinde örnek kimlikleri | Ölçek seçimi |
|---|---|---|---|---|
| Başlangıç | 3, 4, 5, 10 | 2, 6, 9, 11 | 1, 7, 8 | |
| Ölçek-ın | 3, 4, 5, 10 | 2, 6, 9, 11 | 1, 7, 8 | Bölge 3 en eski VM 'ye sahip olsa bile Bölge 1 ve 2 arasında seçim yapın. Bu bölgedeki en eski VM olduğundan, VM2 Bölge 2 silin. |
| Ölçek-ın | 3, 4, 5, 10 | 6, 9, 11 | 1, 7, 8 | En Bölge 1 VM'ye sahip Bölge 3 vm'yi seçin. Vm3'ü Bölge 1 en eski VM olduğu için vm3'ü silin. |
| Ölçeğin ölçeğini indir | 4, 5, 10 | 6, 9, 11 | 1, 7, 8 | Bölgeler dengelidir. Ölçek kümesinde en Bölge 3 VM olduğu için VM1'i silin. |
| Ölçeğin ölçeğini indir | 4, 5, 10 | 6, 9, 11 | 7, 8 | İki veya Bölge 1 arasında Bölge 2. İki Bölge arasında en Bölge 1 VM olduğu için vm4'ü silin. |
| Ölçeğin ölçeğini indir | 5, 10 | 6, 9, 11 | 7, 8 | En Bölge 2 VM'ye sahip Bölge 1 vm'yi seçin. Vm6'Bölge 1 ve bu 1. bölgede yer alan en eski VM'yi silin. |
| Ölçeğin ölçeğini indir | 5, 10 | 9, 11 | 7, 8 | Bölgeler dengelidir. Ölçek kümesinde en Bölge 1 VM olduğu için vm5'i silin. |
Bölge dışı sanal makine ölçek kümeleri için ilke, silinmek üzere ölçek kümesi genelindeki en eski VM'yi seçer. Tüm "korumalı" VM'ler silinmek üzere atlanır.
NewestVM ölçeğini ölçeklendirme ilkesi
| Olay | Bölge1'de örnek kimlikleri | Bölge2'de örnek kimlikleri | Bölge3'te örnek kimlikleri | Ölçeğin Ölçeğini Seçme |
|---|---|---|---|---|
| Başlangıç | 3, 4, 5, 10 | 2, 6, 9, 11 | 1, 7, 8 | |
| Ölçeğin ölçeğini indir | 3, 4, 5, 10 | 2, 6, 9, 11 | 1, 7, 8 | İki veya Bölge 1 2 arasında seçim. VM11'i Bölge 2 iki bölge arasında en yeni VM olduğu için vm11'i silin. |
| Ölçeğin ölçeğini indir | 3, 4, 5, 10 | 2, 6, 9 | 1, 7, 8 | Diğer Bölge 1 daha fazla VM'ye sahip olduğu için Bu vm'yi seçin. Vm10'Bölge 1 bu bölgede en yeni VM olduğu için vm10'dan silin. |
| Ölçeğin ölçeğini indir | 3, 4, 5 | 2, 6, 9 | 1, 7, 8 | Bölgeler dengelidir. Ölçek kümesinde en Bölge 2 VM olduğu için vm9'daki vm9'ları silin. |
| Ölçeğin ölçeğini indir | 3, 4, 5 | 2, 6 | 1, 7, 8 | Dosya ve Bölge 1 arasında Bölge 3. Vm8'i Bölge 3 bölgesinde en yeni VM olduğu için silin. |
| Ölçeğin ölçeğini indir | 3, 4, 5 | 2, 6 | 1, 7 | En Bölge 1 VM'Bölge 3 olsa bile yeni vm'yi seçin. Vm5'i Bölge 1 vm5'i silin çünkü bu bölgede en yeni VM'dir. |
| Ölçeğin ölçeğini indir | 3, 4 | 2, 6 | 1, 7 | Bölgeler dengelidir. Ölçek kümesinde en Bölge 3 VM olduğu için VM7'yi silin. |
Bölge dışı sanal makine ölçek kümeleri için ilke, silinmek üzere ölçek kümesi genelinde en yeni VM'yi seçer. Tüm "korumalı" VM'ler silinmek üzere atlanır.
Sorun giderme
scaleInPolicy etkinleştiremedi "'özellikler' türünde nesnede 'scaleInPolicy' üyesi bulunamadı" hata iletisiyle bir 'BadRequest' hatası alırsanız, sanal makine ölçek kümesi için kullanılan API sürümünü kontrol edin. Bu özellik için API 2019-03-01 veya daha yeni bir sürüm gereklidir.
Ölçeği inen VM'ler için yanlış seçim Yukarıdaki örneklere bakın. Sanal makine ölçek kümeniz bir Bölge dağıtımı ise, ölçeği ölçeklendirme ilkesi önce dengesiz Bölgelere, sonra da bölge dengeli olduktan sonra ölçek kümesine uygulanır. Ölçeğin inme sırası yukarıdaki ö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ümelere dağıtmayı öğrenin.