Perbaikan instans otomatis untuk Azure Virtual Machine Scale Sets

Mengaktifkan perbaikan instans otomatis untuk Azure Virtual Machine Scale Sets membantu mencapai ketersediaan tinggi untuk aplikasi dengan mempertahankan serangkaian instans yang sehat. Ekstensi Application Health atau Pemeriksaan kesehatan load balancer mungkin menemukan bahwa instans tidak sehat. Perbaikan instans otomatis akan secara otomatis melakukan perbaikan instans dengan menghapus instans yang tidak sehat dan membuat instans baru untuk menggantikannya.

Persyaratan untuk menggunakan perbaikan instans otomatis

Aktifkan pemantauan kesehatan aplikasi untuk set skala

Set skala harus sudah mengaktifkan pemantauan kesehatan aplikasi untuk instans. Pemantauan kesehatan dapat dilakukan menggunakan ekstensi Application Health atau pemeriksaan kesehatan load balancer, di mana hanya satu yang dapat diaktifkan pada satu waktu. Ekstensi kondisi aplikasi atau pemeriksaan load balancer melakukan ping titik akhir aplikasi yang dikonfigurasi di instans komputer virtual untuk menentukan status kesehatan aplikasi. Status kesehatan ini digunakan oleh orkestrator set skala untuk memantau kesehatan instans dan melakukan perbaikan jika diperlukan.

Mengonfigurasi titik akhir untuk menyediakan status kesehatan

Sebelum mengaktifkan kebijakan perbaikan instans otomatis, pastikan instans set skala Anda memiliki titik akhir aplikasi yang dikonfigurasi untuk memancarkan status kesehatan aplikasi. Untuk mengonfigurasi status kesehatan pada ekstensi Application Health, Anda dapat menggunakan Status Kesehatan Biner atau Status Kesehatan Kaya. Untuk mengonfigurasi status kesehatan menggunakan pemeriksaan kesehatan load balancer, lihat perilaku pemeriksaan.

Misalnya yang ditandai sebagai "Tidak Sehat" atau "Tidak Diketahui" (Status tidak diketahui hanya tersedia dengan ekstensi Kesehatan Aplikasi - Status Kesehatan Kaya), perbaikan otomatis dipicu oleh set skala. Pastikan titik akhir aplikasi dikonfigurasi dengan benar sebelum mengaktifkan kebijakan perbaikan otomatis untuk menghindari perbaikan instans yang tidak diinginkan, sementara titik akhir sedang dikonfigurasi.

Versi API

Kebijakan perbaikan otomatis didukung untuk API komputasi versi 2018-10-01 atau lebih tinggi.

Pembatasan pada sumber daya atau pemindahan langganan

Pemindahan sumber daya atau langganan saat ini tidak didukung untuk set skala saat fitur perbaikan otomatis diaktifkan.

Pembatasan untuk set skala fabric layanan

Fitur ini saat ini tidak didukung untuk set skala fabric layanan.

Pembatasan untuk VM dengan kesalahan provisi

Perbaikan otomatis saat ini tidak mendukung skenario di mana instans VM ditandai Tidak Sehat karena kegagalan provisi. VM harus berhasil diinisialisasi untuk mengaktifkan pemantauan kesehatan dan kemampuan perbaikan otomatis.

Bagaimana cara kerja perbaikan instans otomatis?

Fitur perbaikan instans otomatis bergantung pada pemantauan kesehatan instans individual dalam satu set skala. Instans VM dalam set skala dapat dikonfigurasi untuk memancarkan status kesehatan aplikasi menggunakan Ekstensi Application Health atau Pemeriksaan kesehatan load balancer. Jika instans ditemukan tidak sehat, set skala akan melakukan tindakan perbaikan dengan menghapus instans yang tidak sehat dan membuat yang baru untuk menggantikannya. Model Virtual Machine Scale Set terbaru digunakan untuk membuat instans baru. Fitur ini dapat diaktifkan dalam model Virtual Machine Scale Set dengan menggunakan objek automaticRepairsPolicy .

Pembuatan batch

Operasi perbaikan instans otomatis dilakukan dalam batch. Pada waktu tertentu, tidak lebih dari 5% instans dalam set skala diperbaiki melalui kebijakan perbaikan otomatis. Proses ini membantu menghindari penghapusan simultan dan pembuatan ulang sejumlah besar instans jika ditemukan tidak sehat pada saat yang sama.

Masa tenggang

Ketika instans melalui operasi perubahan status karena tindakan PUT, PATCH, atau POST yang dilakukan pada set skala, maka tindakan perbaikan apa pun pada instans tersebut dilakukan hanya setelah masa tenggang berakhir. Masa tenggang adalah jumlah waktu untuk memungkinkan instans kembali ke keadaan sehat. Masa tenggang dimulai setelah perubahan status selesai, yang membantu menghindari operasi perbaikan dini atau tidak disengaja. Masa tenggang dihormati untuk setiap instans yang baru dibuat dalam set skala, termasuk yang dibuat sebagai hasil dari operasi perbaikan. Masa tenggang ditentukan dalam menit dalam format ISO 8601 dan dapat diatur menggunakan properti automaticRepairsPolicy.gracePeriod. Masa tenggang dapat berkisar antara 10 menit dan 90 menit, dan memiliki nilai default 30 menit.

Penangguhan Perbaikan

Virtual Machine Scale Sets menyediakan kemampuan untuk menangguhkan sementara perbaikan instans otomatis jika diperlukan. ServiceState untuk perbaikan otomatis di bawah orkestrasi propertiServices dalam tampilan instans Set Skala Komputer Virtual menunjukkan status perbaikan otomatis saat ini. Jika set skala diikut sertakan dalam perbaikan otomtis, nilai parameter serviceState diatur ke Dijalankan. Jika perbaikan otomatis ditangguhkan untuk set skala, parameter serviceState diatur ke Ditangguhkan. Jika automaticRepairsPolicy ditentukan pada set skala tetapi fitur perbaikan otomatis tidak diaktifkan, maka parameter serviceState diatur ke Tidak Berjalan.

Jika instans yang baru dibuat untuk mengganti yang tidak sehat dalam set skala tetap tidak sehat bahkan setelah berulang kali melakukan operasi perbaikan, sebagai langkah keamanan, platform memperbarui serviceState untuk perbaikan otomatis ke Ditangguhkan. Anda dapat melanjutkan perbaikan otomatis lagi dengan mengatur nilai serviceState untuk perbaikan otomatis ke Dijalankan. Petunjuk terperinci disediakan di bagian tentang melihat dan memperbarui status layanan kebijakan perbaikan otomatis untuk set skala.

Proses perbaikan instans otomatis adalah sebagai berikut:

  1. Ekstensi Application Health atau pemeriksaan kesehatan load balancer melakukan ping titik akhir aplikasi di dalam setiap komputer virtual dalam set skala untuk mendapatkan status kesehatan aplikasi setiap instans.
  2. Jika titik akhir merespons dengan status 200 (OK), instans akan ditandai sebagai "Sehat". Dalam kasus lain (termasuk jika titik akhir tidak dapat dijangkau), instans akan ditandai sebagai "Tidak Sehat".
  3. Ketika instans ditemukan tidak sehat, set skala memicu tindakan perbaikan dengan menghapus instans yang tidak sehat, dan membuat yang baru untuk menggantinya.
  4. Perbaikan instans dilakukan dalam batch. Pada waktu tertentu, tidak lebih dari 5% dari total instans dalam set skala diperbaiki. Jika set skala memiliki kurang dari 20 instans, perbaikan dilakukan untuk satu instans yang tidak sehat pada satu waktu.
  5. Proses di atas berlanjut hingga semua instans yang tidak sehat dalam set skala diperbaiki.

Perlindungan instans dan perbaikan otomatis

Jika instans dalam set skala dilindungi dengan menerapkan salah satu kebijakan perlindungan, perbaikan otomatis tidak dilakukan pada instans tersebut. Perilaku ini berlaku untuk kebijakan perlindungan: Lindungi dari tindakan skala masuk dan Lindungi dari set skala .

Menghentikan pemberitahuan perbaikan otomatis

Jika hentikan pemberitahuan penghentian diaktifkan pada set skala, selama operasi perbaikan otomatis, penghapusan instans yang tidak sehat akan mengikuti konfigurasi pemberitahuan penghentian. Pemberitahuan penghentian dikirim melalui layanan metadata Azure – peristiwa terjadwal – dan penghapusan instans tertunda selama batas waktu penundaan yang dikonfigurasi. Namun, pembuatan instans baru untuk menggantikan instans yang tidak sehat tidak menunggu batas waktu penundaan selesai.

Mengaktifkan kebijakan perbaikan otomatis saat membuat set skala baru

Untuk mengaktifkan kebijakan perbaikan otomatis saat membuat set skala baru, pastikan semua persyaratan untuk memilih fitur ini terpenuhi. Titik akhir aplikasi harus dikonfigurasi dengan benar untuk instans set skala guna menghindari terpicunya perbaikan yang tidak diinginkan saat titik akhir sedang dikonfigurasi. Untuk set skala yang baru dibuat, perbaikan instans apa pun dilakukan hanya setelah masa tenggang selesai. Untuk mengaktifkan perbaikan instans otomatis dalam set skala, gunakan objek automaticRepairsPolicy dalam model Virtual Machine Scale Set.

Anda juga dapat menggunakan templat mulai cepat ini untuk menyebarkan Virtual Machine Scale Set. Set skala memiliki pemeriksaan kesehatan load balancer dan perbaikan instans otomatis yang diaktifkan dengan masa tenggang 30 menit.

portal Microsoft Azure

Langkah-langkah berikut mengaktifkan perbaikan otomatis saat membuat set skala baru.

  1. Buka Virtual Machine Scale Sets.
  2. Pilih + Tambahkan untuk membuat set skala baru.
  3. Buka tab Kesehatan.
  4. Cari bagian Kesehatan.
  5. Aktifkan opsi Pantau kesehatan aplikasi.
  6. Cari bagian Kebijakan perbaikan otomatis.
  7. Aktifkan opsi Perbaikan otomatis.
  8. Dalam Masa Tenggang (min) , tentukan masa tenggang dalam menit, nilai yang diizinkan adalah antara 30 dan 90 menit.
  9. Setelah selesai membuat set skala baru, pilih tombol Tinjau + buat .

REST API

Contoh berikut menunjukkan cara mengaktifkan perbaikan instans otomatis dalam model set skala. Gunakan API versi 2018-10-01 atau lebih tinggi.

PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2019-07-01'
{
  "properties": {
    "automaticRepairsPolicy": {
            "enabled": "true",
            "gracePeriod": "PT30M"
        }
    }
}

Azure PowerShell

Fitur perbaikan instans otomatis dapat diaktifkan saat membuat set skala baru dengan menggunakan cmdlet New-AzVmssConfig. Contoh skrip ini berjalan melalui pembuatan set skala dan sumber daya terkait menggunakan file konfigurasi: Membuat Set Skala Komputer Virtual lengkap. Anda dapat mengonfigurasi kebijakan perbaikan instans otomatis dengan menambahkan parameter EnableAutomaticRepair dan AutomaticRepairGracePeriod ke objek konfigurasi untuk membuat set skala. Contoh berikut memungkinkan fitur dengan masa tenggang 30 menit.

New-AzVmssConfig `
 -Location "EastUS" `
 -SkuCapacity 2 `
 -SkuName "Standard_DS2" `
 -UpgradePolicyMode "Automatic" `
 -EnableAutomaticRepair $true `
 -AutomaticRepairGracePeriod "PT30M"

Azure CLI 2.0

Contoh berikut memungkinkan kebijakan perbaikan otomatis saat membuat set skala baru menggunakan az vmss create . Pertama buat grup sumber daya, lalu buat set skala baru dengan masa tenggang kebijakan perbaikan otomatis yang diatur ke 30 menit.

az group create --name <myResourceGroup> --location <VMSSLocation>
az vmss create \
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --image UbuntuLTS \
  --admin-username <azureuser> \
  --generate-ssh-keys \
  --load-balancer <existingLoadBalancer> \
  --health-probe <existingHealthProbeUnderLoaderBalancer> \
  --automatic-repairs-grace-period 30

Contoh di atas menggunakan load balancer yang sudah ada dan pemeriksaan kesehatan untuk memantau status kesehatan aplikasi instans. Jika Anda lebih suka menggunakan ekstensi kesehatan aplikasi untuk pemantauan, Anda dapat melakukan hal berikut sebagai gantinya: membuat set skala, mengonfigurasi ekstensi kesehatan aplikasi, dan mengaktifkan kebijakan perbaikan instans otomatis. Anda dapat mengaktifkan kebijakan tersebut dengan menggunakan pembaruan az vmss, seperti yang dijelaskan di bagian berikutnya.

Mengaktifkan kebijakan perbaikan otomatis saat memperbarui set skala yang ada

Untuk mengaktifkan kebijakan perbaikan otomatis saat membuat set skala baru, pastikan semua persyaratan untuk memilih fitur ini terpenuhi. Titik akhir aplikasi harus dikonfigurasi dengan benar untuk instans set skala guna menghindari terpicunya perbaikan yang tidak diinginkan saat titik akhir sedang dikonfigurasi. Untuk mengaktifkan perbaikan instans otomatis dalam set skala, gunakan objek automaticRepairsPolicy dalam model Virtual Machine Scale Set.

Setelah memperbarui model set skala yang ada, pastikan model terbaru diterapkan ke semua instans skala. Lihat petunjuk tentang cara memperbarui VM model set skala terbaru.

portal Microsoft Azure

Anda dapat mengubah kebijakan perbaikan otomatis dari set skala yang ada melalui portal Azure.

  1. Buka Set Skala Komputer Virtual yang ada.
  2. Pada bagian Pengaturan di menu di sebelah kiri, pilih Kesehatan dan perbaiki.
  3. Aktifkan opsi Pantau kesehatan aplikasi.
  4. Cari bagian Kebijakan perbaikan otomatis.
  5. Aktifkan opsi Perbaikan otomatis.
  6. Dalam Masa Tenggang (min) , tentukan masa tenggang dalam menit, nilai yang diizinkan adalah antara 30 dan 90 menit.
  7. Jika sudah selesai, pilih Simpan.

REST API

Contoh berikut memungkinkan fitur dengan masa tenggang 40 menit. Gunakan API versi 2018-10-01 atau lebih tinggi.

PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2019-07-01'
{
  "properties": {
    "automaticRepairsPolicy": {
            "enabled": "true",
            "gracePeriod": "PT40M"
        }
    }
}

Azure PowerShell

Gunakan cmdlet Update-AzVmss untuk memodifikasi konfigurasi fitur perbaikan instans otomatis dalam set skala yang ada. Contoh berikut memperbarui masa tenggang hingga 40 menit.

Update-AzVmss `
 -ResourceGroupName "myResourceGroup" `
 -VMScaleSetName "myScaleSet" `
 -EnableAutomaticRepair $true `
 -AutomaticRepairGracePeriod "PT40M"

Azure CLI 2.0

Contoh berikut menunjukkan cara memperbarui kebijakan perbaikan instans otomatis dari set skala yang ada, menggunakan pembaruan az vmss.

az vmss update \
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --enable-automatic-repairs true \
  --automatic-repairs-grace-period 30

Melihat dan memperbarui status layanan kebijakan perbaikan instans otomatis

REST API

Gunakan Dapatkan Tampilan Instans dengan API versi 2019-12-01 atau lebih tinggi untuk Virtual Machine Scale Set untuk melihat serviceState untuk perbaikan otomatis di bawah orkestrasi propertiServices.

GET '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2019-12-01'
{
  "orchestrationServices": [
    {
      "serviceName": "AutomaticRepairs",
      "serviceState": "Running"
    }
  ]
}

Azure CLI

Gunakan cmdlet get-instance-view untuk melihat serviceState untuk perbaikan instans otomatis.

az vmss get-instance-view \
    --name MyScaleSet \
    --resource-group MyResourceGroup

Gunakan cmdlet set-orchestration-service-state untuk memperbarui serviceState untuk perbaikan instans otomatis. Setelah set skala dipilih ke fitur perbaikan otomatis, maka Anda dapat menggunakan cmdlet ini untuk menangguhkan atau melanjutkan perbaikan otomatis untuk set skala Anda.

az vmss set-orchestration-service-state \
    --service-name AutomaticRepairs \
    --action Resume \
    --name MyScaleSet \
    --resource-group MyResourceGroup

Azure PowerShell

Gunakan cmdlet Get-AzVmss dengan parameter InstanceView untuk melihat ServiceState untuk perbaikan instans otomatis.

Get-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -VMScaleSetName "myScaleSet" `
    -InstanceView

Gunakan Set-AzVmssOrchestrationServiceState cmdlet untuk memperbarui serviceState untuk perbaikan instans otomatis. Setelah set skala dipilih ke fitur perbaikan otomatis, Anda dapat menggunakan cmdlet ini untuk menangguhkan atau melanjutkan perbaikan otomatis untuk set skala Anda.

Set-AzVmssOrchestrationServiceState `
    -ResourceGroupName "myResourceGroup" `
    -VMScaleSetName "myScaleSet" `
    -ServiceName "AutomaticRepairs" `
    -Action "Suspend"

Pecahkan masalah

Kegagalan dalam mengaktifkan kebijakan perbaikan otomatis

Jika Anda mendapatkan kesalahan 'BadRequest' dengan pesan yang menyatakan "Tidak dapat menemukan anggota 'automaticRepairsPolicy' pada objek jenis 'properti'", maka periksa versi API yang digunakan untuk Virtual Machine Scale Set. API versi 2018-10-01 atau lebih tinggi diperlukan untuk fitur ini.

Instans tidak diperbaiki bahkan ketika kebijakan diaktifkan

Instans bisa berada dalam masa tenggang. Periode ini adalah jumlah waktu untuk menunggu setelah perubahan status pada instans sebelum melakukan perbaikan, yang membantu menghindari perbaikan dini atau tidak disengaja. Tindakan perbaikan akan terjadi setelah masa tenggang selesai untuk instans tersebut.

Melihat status kesehatan aplikasi untuk instans set skala

Anda dapat menggunakan Get Instance View API untuk instans dalam Virtual Machine Scale Set untuk melihat status kesehatan aplikasi. Dengan Azure PowerShell, Anda dapat menggunakan cmdlet Get-AzVmssVM dengan bendera -InstanceView. Status kesehatan aplikasi disediakan di bagian properti vmHealth.

Di portal Azure, Anda juga dapat melihat status kesehatan. Buka set skala yang ada, pilih Instans dari menu di sebelah kiri, dan lihat kolom Status kesehatan untuk mengetahui status kesehatan setiap instans set skala.

Langkah berikutnya

Pelajari cara mengonfigurasi ekstensi Application Health atau Pemeriksaan kesehatan load balancer untuk set skala Anda.