Bagikan melalui


Tutorial: Mengubah Virtual Machine Scale Set menggunakan PowerShell

Sepanjang siklus hidup aplikasi, Anda mungkin perlu memodifikasi atau memperbarui Set Skala Komputer Virtual Anda. Pembaruan ini dapat mencakup cara memperbarui konfigurasi set skala, atau mengubah konfigurasi aplikasi. Artikel ini menjelaskan cara mengubah set skala yang sudah ada menggunakan PowerShell.

Memperbarui model set skala

Set skala memiliki "model set skala" yang menangkap keadaan set skala yang diinginkan yang ditetapkan secara keseluruhan. Untuk mengkueri model untuk set skala, Anda bisa menggunakan Get-AzVmss.

Get-AzVmss -ResourceGroupName myResourceGroup -Name myScaleSet

Presentasi output yang tepat tergantung pada opsi yang Anda berikan ke perintah. Contoh berikut menunjukkan output sampel ringkas dari PowerShell:

Sku                                         : 
  Name                                      : Standard_DS1_v2
  Tier                                      : Standard
  Capacity                                  : 2
ProvisioningState                           : Succeeded
SinglePlacementGroup                        : False
Id                                          : /subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet
Name                                        : myScaleSet
Type                                        : Microsoft.Compute/virtualMachineScaleSets
Location                                    : eastus
VirtualMachineProfile                       : 
    ComputerNamePrefix                      : myScaleSe
      ProvisionVMAgent                      : True
      EnableAutomaticUpdates                : True
        PatchMode                           : AutomaticByOS
        AssessmentMode                      : ImageDefault
      EnableVMAgentPlatformUpdates          : False
    AllowExtensionOperations                : True
  StorageProfile                            : 
      Publisher                             : MicrosoftWindowsServer
      Offer                                 : WindowsServer
      Sku                                   : 2016-Datacenter
      Version                               : latest
    OsDisk                                  : 
      Caching                               : None
      CreateOption                          : FromImage
      DiskSizeGB                            : 127
      OsType                                : Windows
        StorageAccountType                  : Premium_LRS
      DeleteOption                          : Delete
  NetworkProfile                            : 
    NetworkInterfaceConfigurations[0]       : 
      Name                                  : myScaleSet
      Primary                               : True
      DisableTcpStateTracking               : False
        Name                                : myScaleSet
        Subnet                              : 
          Id                                : /subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myScaleSet/subnets/myScaleSet
        PrivateIPAddressVersion             : IPv4
        LoadBalancerBackendAddressPools[0]  : 
/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myScaleSet/backendAddressPools/myScaleSet
      EnableIPForwarding                    : False
      DeleteOption                          : Delete
    NetworkApiVersion                       : 2020-11-01
OrchestrationMode                           : Flexible
TimeCreated                                 : 12/2/2022 5:41:21 PM

Anda juga dapat menggunakan Update-AzVmss untuk memperbarui berbagai properti set skala Anda. Misalnya, memperbarui jenis lisensi Anda.

$myVmss = Get-AzVmss -ResourceGroupName myResourceGroup -Name myScaleSet
Update-AzVmss -ResourceGroupName myResourceGroup -VirtualMachineScaleSet $myVMss -VMScaleSetName myScaleSet -LicenseType Windows_Server

Memperbarui instans VM individual dalam set skala

Mirip dengan bagaimana set skala memiliki tampilan model, setiap instans VM dalam set skala memiliki tampilan modelnya sendiri. Untuk mengkueri tampilan model untuk instans VM tertentu dalam set skala, Anda dapat menggunakan Get-AzVM.

Get-AzVM -ResourceGroupName myResourceGroup -name MyScaleSet_Instance1
ResourceGroupName      : myResourceGroup
Id                     : /subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_Instance1
Name                   : myScaleSet_Instance1
Type                   : Microsoft.Compute/virtualMachines
Location               : eastus
Extensions             : {MicrosoftMonitoringAgent}
HardwareProfile        : {VmSize}
NetworkProfile         : {NetworkInterfaces}
OSProfile              : {ComputerName, AdminUsername, WindowsConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState      : Succeeded
StorageProfile         : {ImageReference, OsDisk, DataDisks}
VirtualMachineScaleSet : {Id}
TimeCreated            : 12/2/2022 5:41:23 PM

Anda juga dapat menambahkan -Status bendera untuk mendapatkan Tampilan Instans, yang memberikan detail selengkapnya tentang VM.

Get-AzVM -ResourceGroupName myResourceGroup -name MyScaleSet_Instance1 -Status                                    
ResourceGroupName       : myResourceGroup
Name                    : MyScaleSet_Instance1
OsName                  : Windows Server 2016 Datacenter
OsVersion               : 10.0.14393.5501
HyperVGeneration        : V1
Disks[0]                : 
  Name                  : myScaleSet_Instance1_disk1_cab60acccff7414b81d60572eeecb9e3
  Statuses[0]           : 
    Code                : ProvisioningState/succeeded
    Level               : Info
    DisplayStatus       : Provisioning succeeded
    Time                : 12/2/2022 5:41:25 PM
Disks[1]                : 
  Name                  : disk1
  Statuses[0]           : 
    Code                : ProvisioningState/succeeded
    Level               : Info
    DisplayStatus       : Provisioning succeeded
    Time                : 12/2/2022 6:33:36 PM
Extensions[0]           : 
  Name                  : MicrosoftMonitoringAgent
  Type                  : Microsoft.EnterpriseCloud.Monitoring.MicrosoftMonitoringAgent
  TypeHandlerVersion    : 1.0.18067.0
  Statuses[0]           : 
    Code                : ProvisioningState/succeeded
    Level               : Info
    DisplayStatus       : Provisioning succeeded
    Message             : Latest configuration has been applied to the Microsoft Monitoring Agent.
VMAgent                 : 
  VmAgentVersion        : 2.7.41491.1071
  ExtensionHandlers[0]  : 
    Type                : Microsoft.EnterpriseCloud.Monitoring.MicrosoftMonitoringAgent
    TypeHandlerVersion  : 1.0.18067.0
    Status              : 
      Code              : ProvisioningState/succeeded
      Level             : Info
      DisplayStatus     : Ready
      Message           : This virtual machine has successfully connected to Azure Log Analytics.
  Statuses[0]           : 
    Code                : ProvisioningState/succeeded
    Level               : Info
    DisplayStatus       : Ready
    Message             : GuestAgent is running and processing the extensions.
    Time                : 12/2/2022 6:34:55 PM
Statuses[0]             : 
  Code                  : ProvisioningState/succeeded
  Level                 : Info
  DisplayStatus         : Provisioning succeeded
  Time                  : 12/2/2022 6:33:42 PM
Statuses[1]             : 
  Code                  : PowerState/running
  Level                 : Info
  DisplayStatus         : VM running

Properti ini menjelaskan konfigurasi instans VM dalam set skala, bukan konfigurasi set skala secara keseluruhan.

Anda dapat melakukan pembaruan pada instans VM individual dalam set skala seperti VM mandiri. Misalnya, melampirkan disk data baru ke instans 1:

$VirtualMachine = Get-AzVM -ResourceGroupName "myResourceGroup" -Name "myScaleSet_Instance1".
Add-AzVMDataDisk -VM $VirtualMachine -Name "disk1" -LUN 0 -Caching ReadOnly -DiskSizeinGB 128 -CreateOption Empty
Update-AzVM -ResourceGroupName "myResourceGroup" -VM $VirtualMachine

Menambahkan Instans ke set skala Anda

Ada kalanya Anda mungkin ingin menambahkan VM baru ke set skala Anda tetapi menginginkan opsi konfigurasi yang berbeda dari yang tercantum dalam model set skala. VM dapat ditambahkan ke set skala selama pembuatan dengan menggunakan perintah Get-AzVmss dan menentukan nama set skala yang Anda inginkan untuk ditambahkan instans.

New-AzVM -Name myNewInstance -ResourceGroupName myResourceGroup -image Ubuntu2204 -VmssId /subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet
ResourceGroupName        : myResourceGroup                                                                              
Id                       : /subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myNewInstance
Name                     : myNewInstance                                                                                
Type                     : Microsoft.Compute/virtualMachines                                                            
Location                 : eastus                                                                                       
Tags                     : {}                                                                                           
HardwareProfile          : {VmSize}                                                                                     
NetworkProfile           : {NetworkInterfaces}                                                                          
OSProfile                : {ComputerName, AdminUsername, LinuxConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState        : Succeeded                                                                                    
StorageProfile           : {ImageReference, OsDisk, DataDisks}                                                          
FullyQualifiedDomainName : mynewinstance-21bc01.eastus.cloudapp.azure.com                                               
VirtualMachineScaleSet   : {Id}                                                                                         
TimeCreated              : 12/2/2022 6:40:20 PM   

Dengan menjalankan Get-AzVM lagi, kita dapat melihat instans baru dibuat dan ditambahkan ke set skala yang ada.

Get-AzVm -ResourceGroupName myResourceGroup 
ResourceGroupName   Name                   Location   VmSize            OsType     NIC                  ProvisioningState 
-----------------   ----                   --------   ------            ------     ---                  ----------------- 
myResourceGroup     myNewInstance          eastus     Standard_D2s_v3   Linux      myNewInstance         Succeeded     
myResourceGroup     myScaleSet_Instance1   eastus     Standard_DS1_v2   Windows    myScaleSet-a9f1d54c   Succeeded     
myResourceGroup     myScaleSet_Instance2   eastus     Standard_DS1_v2   Windows    myScaleSet-4dc708e5   Succeeded   

Memperbarui VM dengan model set skala terbaru

Catatan

Mode peningkatan saat ini tidak didukung pada Virtual Machine Scale Sets menggunakan mode orkestrasi Fleksibel.

Set skala memiliki "kebijakan pemutakhiran" yang menentukan bagaimana VM diperbarui dengan model set skala terbaru. Tiga mode untuk kebijakan pemutakhiran adalah:

  • Otomatis - Dalam mode ini, set skala tidak menjaminan urutan VM yang dinonaktifkan. Set skala dapat menonaktifkan semua VM secara bersamaan.
  • Bergilir - Dalam mode ini, set skala melakukan pembaruan dalam batch dengan waktu jeda opsional di antara batch.
  • Manual - Dalam mode ini, ketika Anda memperbarui model set skala, tidak ada yang terjadi pada VM yang ada sampai pembaruan manual dipicu.

Jika set skala Anda diatur ke peningkatan manual, Anda dapat memicu peningkatan manual menggunakan Update-AzVmss.

$myVmss = Get-AzVmss -ResourceGroupName myResourceGroup -Name myScaleSet
Update-AzVmss -ResourceGroupName myResourceGroup -VirtualMachineScaleSet $myVMss -VMScaleSetName myScaleSet

Catatan

Kluster Service Fabric hanya dapat menggunakan mode Otomatis, tetapi pembaruan ditangani secara berbeda. Untuk informasi selengkapnya, lihat pemutakhiran aplikasi Service Fabric.

Gambar ulang set skala

Virtual Machine Scale Sets akan menghasilkan nama unik untuk setiap VM dalam set skala. Konvensi penamaan berbeda dengan mode orkestrasi:

  • Mode orkestrasi fleksibel: {scale-set-name}_{8-char-guid}
  • Mode orkestrasi seragam: {scale-set-name}_{instance-id}

Dalam kasus di mana Anda perlu mencitrakan ulang instans tertentu, gunakan Set-AzVmss dan tentukan nama instans .

Set-AzVmssVM -ResourceGroupName myResourceGroup -VMScaleSetName myScaleSet -InstanceId myScaleSet_Instance1 -Reimage

Untuk mencitrakan ulang semua instans dalam set skala cukup tentukan nama set skala dan hilangkan instanceID apa pun.

Set-AzVmssVM -Reimage -ResourceGroupName myResourceGroup -VMScaleSetName myScaleSet

Perbarui citra OS untuk set skala Anda

Anda mungkin memiliki set skala yang menjalankan versi lama Ubuntu LTS 18.04. Anda ingin memperbarui ke versi Ubuntu LTS 16.04 yang lebih baru, seperti versi 18.04.202210180. Properti versi referensi gambar bukan bagian dari daftar, sehingga Anda dapat langsung memodifikasi properti ini menggunakan Update-AzVmss.

$myVmss = Get-AzVmss -ResourceGroupName myResourceGroup -Name myScaleSet      
  
Update-AzVmss -ResourceGroupName myResourceGroup -VirtualMachineScaleSet $myVMss -VMScaleSetName myScaleSet -ImageReferenceVersion virtualMachineProfile.storageProfile.imageReference.version=18.04.202210180

Atau, Anda mungkin ingin mengubah citra yang digunakan set skala Anda. Misalnya, Anda mungkin ingin memperbarui atau mengubah gambar kustom yang digunakan oleh set skala Anda. Anda dapat mengubah citra yang digunakan set skala Anda dengan memperbarui properti ID referensi citra. Properti ID referensi gambar bukan bagian dari daftar, sehingga Anda dapat langsung memodifikasi properti ini menggunakan Update-AzVmss.

$myVmss = Get-AzVmss -ResourceGroupName myResourceGroup -Name myScaleSet     
   
Update-AzVmss -ResourceGroupName myResourceGroup -VirtualMachineScaleSet $myVMss -VMScaleSetName myScaleSet -ImageReferenceVersion virtualMachineProfile.storageProfile.imageReference.id=/subscriptions/{subscriptionID}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/myNewImage

Jika Anda menggunakan citra platform Azure, Anda dapat memperbarui citra dengan memodifikasi imageReference (informasi selengkapnya, lihat dokumentas REST API).

Catatan

Dengan citra platform, adalah umum untuk menentukan "terbaru" untuk versi referensi citra. Saat Anda membuat, menskalakan, dan mencitrakan ulang, VM dibuat dengan versi terbaru yang tersedia. Namun, itu tidak berarti bahwa citra OS secara otomatis diperbarui dari waktu ke waktu karena versi citra baru dirilis. Sebuah fitur terpisah menyediakan peningkatan OS otomatis. Untuk informasi selengkapnya, lihat Dokumentasi Pemutakhiran OS Otomatis.

Jika Anda menggunakan citra platform Azure, Anda dapat memperbarui citra dengan memodifikasi ID imageReference (informasi selengkapnya, lihat dokumentasi REST API).

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara memodifikasi berbagai aspek set skala dan instans individual menggunakan PowerShell.

  • Memperbarui model set skala
  • Memperbarui instans VM individual dalam set skala
  • Menambahkan instans ke set skala Anda
  • Memperbarui VM dengan model set skala terbaru
  • Gambar ulang set skala
  • Perbarui citra OS untuk set skala Anda