0

假设我从一个包含 5 个 VM 的映像创建了一个规模集。

现在假设我的应用程序有更新,我如何推送此更新,以便使用最新的应用程序代码更新映像,并将更新推送到 ScaleSet 中的所有当前正在运行的 Vm,同样下次 ScaleSet 带来新的vm 会使用更新后的 IMAGE 来执行此操作

谢谢你

4

1 回答 1

2

如果您使用的是自定义图像,您将执行以下操作:

$rgname = "resourceGroupName"
$vmssname = "vmssName"
$instanceid = "1" # How Many instances we update simultaneously

$vmss = Get-AzureRmVmss -ResourceGroupName $rgname `
  -VMScaleSetName $vmssname
$vmss.virtualMachineProfile.storageProfile.osDisk.image.uri `
  = $newURI #update image URI
Update-AzureRmVmss -ResourceGroupName $rgname -Name $vmssname `
  -VirtualMachineScaleSet $vmss # push changes
Update-AzureRmVmssInstance -ResourceGroupName $rgname `
  -VMScaleSetName $vmssname -InstanceId $instanceId # start update

因此,通常您需要向 VMSS 提供新的或更新的映像,然后调用更新。

一些阅读:
https ://msftstack.wordpress.com/2016/05/17/how-to-upgrade-an-azure-vm-scale-set-without-shutting-it-down/

于 2017-06-16T06:31:48.900 回答