Menggunakan kebijakan penyempurnaan skala kustom dengan Azure Virtual Machine Scale Sets

Penyebaran Virtual Machine Scale Set dapat diskalakan atau diskalakan berdasarkan array metrik, termasuk platform dan metrik kustom yang ditentukan pengguna. Peluasan skala menciptakan komputer virtual baru berdasarkan model kumpulan skala, penyempitan skala mempengaruhi komputer virtual yang berjalan yang mungkin memiliki konfigurasi dan/atau fungsi yang berbeda saat beban kerja kumpulan skala berevolusi.

Fitur kebijakan penyempitan skala memberi pengguna cara untuk mengonfigurasi urutan di mana komputer virtual dipersempit skalanya, dengan cara tiga konfigurasi penyempitan skala:

  1. Default
  2. VM Terbaru
  3. VM Terlama

Kebijakan penyempitan skala

Orkestrasi Flexible

Dengan kebijakan ini, komputer virtual diskalakan setelah penyeimbangan di seluruh zona ketersediaan (jika set skala berada dalam konfigurasi zonal), dan komputer virtual tertua sesuai createdTime yang diskalakan terlebih dahulu. Penyeimbangan di seluruh domain kesalahan tidak tersedia dalam Kebijakan default dengan mode orkestrasi yang fleksibel.

Orkestrasi Uniform

Secara default, Virtual Machine Scale Set menerapkan kebijakan ini untuk menentukan instans mana yang akan diskalakan. Dengan kebijakan Default, VM dipilih untuk penyempitan skala dalam urutan berikut:

  1. Menyeimbangkan komputer virtual di seluruh zona ketersediaan (jika kumpulan skala digunakan dalam konfigurasi zona)
  2. Menyeimbangkan komputer virtual di seluruh domain kesalahan (upaya terbaik)
  3. Menghapus komputer virtual dengan ID instans tertinggi

Pengguna tidak perlu menentukan kebijakan penyempurnaan skala jika mereka hanya ingin urutan default diikuti.

Menyeimbangkan di seluruh zona ketersediaan atau domain kesalahan tidak memindahkan instans di seluruh zona ketersediaan atau domain kesalahan. Keseimbangan dicapai melalui penghapusan komputer virtual dari zona ketersediaan yang tidak seimbang atau domain kesalahan hingga distribusi komputer virtual menjadi seimbang.

Kebijakan penyempitan skala VM Terbaru

Kebijakan ini akan menghapus komputer virtual terbaru, atau yang terakhir dibuat dalam set skala, setelah menyeimbangkan VM di seluruh zona ketersediaan (untuk penyebaran zona). Mengaktifkan kebijakan ini memerlukan perubahan konfigurasi pada model Virtual Machine Scale Set.

Kebijakan penyempitan skala VM Terlama

Kebijakan ini akan menghapus komputer virtual terlama yang dibuat dalam kumpulan skala, setelah menyeimbangkan VM di seluruh zona ketersediaan (untuk penyebaran zona). Mengaktifkan kebijakan ini memerlukan perubahan konfigurasi pada model Virtual Machine Scale Set.

Mengaktifkan kebijakan penyempitan skala

Kebijakan penyempurnaan skala didefinisikan dalam model Virtual Machine Scale Set. Seperti yang disebutkan di bagian sebelumnya, definisi kebijakan penyempitan skala diperlukan saat menggunakan kebijakan 'NewestVM' dan 'OldestVM'. Set Skala Komputer Virtual akan secara otomatis menggunakan kebijakan penyempurnaan skala 'Default' jika tidak ada definisi kebijakan penyempurnaan skala yang ditemukan pada model set skala.

Kebijakan penyempurnaan skala dapat ditentukan pada model Virtual Machine Scale Set dengan cara berikut:

Portal Azure

Langkah-langkah berikut menentukan kebijakan penyempitan skala saat membuat kumpulan skala baru.

  1. Buka Virtual Machine Scale Sets.
  2. Pilih + Tambahkan untuk membuat set skala baru.
  3. Masuk ke tab Penskalaan.
  4. Temukan bagian Kebijakan penyempitan skala.
  5. Pilih kebijakan penyempitan skala dari menu menurun.
  6. Setelah selesai membuat set skala baru, pilih tombol Tinjau + buat .

Menggunakan API

Jalankan PUT pada Virtual Machine Scale Set menggunakan API 2019-03-01:

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

Penting

Mulai November 2023, set skala VM yang dibuat menggunakan PowerShell dan Azure CLI akan default ke Mode Orkestrasi Fleksibel jika tidak ada mode orkestrasi yang ditentukan. Untuk informasi selengkapnya tentang perubahan ini dan tindakan apa yang harus Anda ambil, buka Melanggar Perubahan untuk Pelanggan VMSS PowerShell/CLI - Microsoft Community Hub

Buat grup sumber daya, lalu buat kumpulan skala baru dengan kebijakan penyempitan skala yang ditetapkan sebagai VM Terlama.

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

Azure CLI

Penting

Mulai November 2023, set skala VM yang dibuat menggunakan PowerShell dan Azure CLI akan default ke Mode Orkestrasi Fleksibel jika tidak ada mode orkestrasi yang ditentukan. Untuk informasi selengkapnya tentang perubahan ini dan tindakan apa yang harus Anda ambil, buka Melanggar Perubahan untuk Pelanggan VMSS PowerShell/CLI - Microsoft Community Hub

Contoh berikut menambahkan kebijakan penyempitan skala sekaligus membuat kumpulan skala baru. Pertama buat grup sumber daya, lalu buat kumpulan skala baru dengan kebijakan penyempitan skala yang ditetapkan sebagai VM Terlama.

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

Menggunakan Templat

Di templat Anda, di bagian "properti", tambahkan scaleInPolicy properti :

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

Blok kode ini menentukan bahwa Set Skala Komputer Virtual akan menghapus VM Terlama dalam set skala yang seimbang zona, ketika penyempurnaan skala dipicu (melalui Skala Otomatis atau penghapusan manual).

Ketika Set Skala Komputer Virtual tidak seimbang zona, set skala akan terlebih dahulu menghapus VM di seluruh zona yang tidak seimbang. Dalam zona yang tidak seimbang, set skala menggunakan kebijakan penyempurnaan skala yang ditentukan untuk menentukan VM mana yang akan diskalakan. Dalam hal ini, dalam zona yang tidak seimbang, kumpulan skala akan memilih VM Terlama di zona tersebut untuk dihapus.

Untuk Set Skala Komputer Virtual non-zonal, kebijakan memilih VM terlama di seluruh set skala untuk dihapus.

Proses yang sama berlaku saat menggunakan kebijakan penyempurnaan skala 'NewestVM'.

Memodifikasi kebijakan penyempitan skala

Memodifikasi kebijakan penyempitan skala mengikuti proses yang sama dengan menerapkan kebijakan penyempitan skala. Misalnya, jika Anda ingin mengubah kebijakan dari 'OldestVM' menjadi 'NewestVM', Anda dapat melakukannya dengan:

Portal Azure

Anda dapat mengubah kebijakan penyempitan skala dari kumpulan skala yang ada melalui portal Microsoft Azure.

  1. Di Set Skala Komputer Virtual yang ada, pilih Penskalakan dari menu di sebelah kiri.
  2. Pilih tab Kebijakan Penyempitan Skala.
  3. Pilih kebijakan penyempitan skala dari menu menurun.
  4. Jika sudah selesai, pilih Simpan.

Menggunakan API

Jalankan PUT pada Virtual Machine Scale Set menggunakan API 2019-03-01:

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

Perbarui kebijakan penyempitan skala dari kumpulan skala yang ada:

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

Azure CLI

Berikut ini adalah contoh untuk memperbarui kebijakan penyempitan skala kumpulan skala yang ada:

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

Menggunakan Templat

Di templat Anda, di bagian "properti", ubah templat seperti di bawah ini dan sebarkan ulang:

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

Proses yang sama berlaku jika Anda memutuskan untuk mengubah 'NewestVM' menjadi 'Default' atau 'OldestVM'

Perlindungan instans dan kebijakan penyempitan skala

Virtual Machine Scale Sets menyediakan dua jenis perlindungan instans:

  1. Perlindugan dari skala masuk
  2. Perlindungan dari tindakan kumpulan skala

Komputer virtual yang dilindungi tidak dihapus melalui tindakan penyempitan skala, terlepas dari kebijakan penyempitan skala yang diterapkan. Misalnya, jika VM_0 (VM terlama dalam set skala) dilindungi dari penyempurnaan skala, dan set skala mengaktifkan kebijakan penyempurnaan skala 'OldestVM', VM_0 tidak akan dipertimbangkan untuk diskalakan, meskipun itu adalah VM tertua dalam set skala.

Komputer virtual yang dilindungi dapat dihapus secara manual oleh pengguna kapan saja, terlepas dari kebijakan penyempitan skala yang diaktifkan pada kumpulan skala.

Contoh penggunaan

Contoh di bawah ini menunjukkan bagaimana Virtual Machine Scale Set memilih VM yang akan dihapus saat peristiwa penyempurnaan skala dipicu. Komputer virtual dengan ID instans tertinggi diasumsikan sebagai VM terbaru dalam kumpulan skala dan VM dengan ID instans terkecil diasumsikan sebagai VM terlama dalam kumpulan skala.

Kebijakan penyempitan skala VM Terlama

Acara ID Instans di Zona1 ID Instans di Zona2 ID Instans di Zona3 Pilihan Penyempitan Skala
Awal 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8
Penyempitan Skala 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8 Pilih antara Zona 1 dan 2, meskipun Zona 3 memiliki VM terlama. Hapus VM2 dari Zona 2 karena ini adalah VM tertua di zona tersebut.
Penyempitan Skala 3, 4, 5, 10 6, 9, 11 1, 7, 8 Pilih Zona 1 meskipun Zona 3 memiliki VM terlama. Hapus VM3 dari Zona 1 karena ini adalah VM tertua di zona tersebut.
Penyempitan Skala 4, 5, 10 6, 9, 11 1, 7, 8 Zona seimbang. Hapus VM1 di Zona 3 karena ini adalah VM tertua dalam set skala.
Penyempitan Skala 4, 5, 10 6, 9, 11 7, 8 Pilih antara Zona 1 dan Zona 2. Hapus VM4 di Zona 1 karena ini adalah VM tertua di dua Zona.
Penyempitan Skala 5, 10 6, 9, 11 7, 8 Pilih Zona 2 meskipun Zona 1 memiliki VM terlama. Hapus VM6 di Zona 1 karena ini adalah VM tertua di zona tersebut.
Penyempitan Skala 5, 10 9, 11 7, 8 Zona seimbang. Hapus VM5 di Zona 1 karena ini adalah VM tertua dalam set skala.

Untuk Set Skala Komputer Virtual non-zonal, kebijakan memilih VM tertua di seluruh set skala untuk dihapus. VM "dilindungi" dilewati untuk dihapus.

Kebijakan penyempitan skala VM Terbaru

Acara ID Instans di Zona1 ID Instans di Zona2 ID Instans di Zona3 Pilihan Penyempitan Skala
Awal 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8
Penyempitan Skala 3, 4, 5, 10 2, 6, 9, 11 1, 7, 8 Pilih antara Zona 1 dan Zona 2. Hapus VM11 dari Zona 2 karena ini adalah VM terbaru di dua zona.
Penyempitan Skala 3, 4, 5, 10 2, 6, 9 1, 7, 8 Pilih Zona 1 karena memiliki lebih banyak VM daripada dua zona lainnya. Hapus VM10 dari Zona 1 karena ini adalah VM terbaru di Zona tersebut.
Penyempitan Skala 3, 4, 5 2, 6, 9 1, 7, 8 Zona seimbang. Hapus VM9 di Zona 2 karena ini adalah VM terbaru dalam set skala.
Penyempitan Skala 3, 4, 5 2, 6 1, 7, 8 Pilih antara Zona 1 dan Zona 3. Hapus VM8 di Zona 3 karena ini adalah VM terbaru di Zona tersebut.
Penyempitan Skala 3, 4, 5 2, 6 1, 7 Pilih Zona 1 meskipun Zona 3 memiliki VM terbaru. Hapus VM5 di Zona 1 karena ini adalah VM terbaru di Zona tersebut.
Penyempitan Skala 3, 4 2, 6 1, 7 Zona seimbang. Hapus VM7 di Zona 3 karena ini adalah VM terbaru dalam set skala.

Untuk Set Skala Komputer Virtual non-zonal, kebijakan memilih VM terbaru di seluruh set skala untuk dihapus. VM "dilindungi" dilewati untuk dihapus.

Pemecahan Masalah

  1. Kegagalan untuk mengaktifkan scaleInPolicy Jika Anda mendapatkan kesalahan 'BadRequest' dengan pesan kesalahan yang menyatakan "Tidak dapat menemukan anggota 'scaleInPolicy' pada objek jenis 'properti'", lalu periksa versi API yang digunakan untuk Virtual Machine Scale Set. Versi API 2019-03-01 atau lebih tinggi diperlukan untuk fitur ini.

  2. Pilihan VM yang salah untuk penyempurnaan skala lihat contoh dalam dokumen ini. Jika Virtual Machine Scale Set Anda adalah penyebaran Zonal, kebijakan penyempurnaan skala diterapkan terlebih dahulu ke Zona yang tidak seimbang dan kemudian di seluruh set skala setelah zona seimbang. Jika urutan penyempurnaan skala tidak konsisten dengan contoh yang didokumentasikan di sini, ajukan kueri dengan tim Virtual Machine Scale Set untuk pemecahan masalah.

Langkah berikutnya

Pelajari cara menyebarkan aplikasi Anda di Virtual Machine Scale Sets.