假设我从一个包含 5 个 VM 的映像创建了一个规模集。
现在假设我的应用程序有更新,我如何推送此更新,以便使用最新的应用程序代码更新映像,并将更新推送到 ScaleSet 中的所有当前正在运行的 Vm,同样下次 ScaleSet 带来新的vm 会使用更新后的 IMAGE 来执行此操作
谢谢你
假设我从一个包含 5 个 VM 的映像创建了一个规模集。
现在假设我的应用程序有更新,我如何推送此更新,以便使用最新的应用程序代码更新映像,并将更新推送到 ScaleSet 中的所有当前正在运行的 Vm,同样下次 ScaleSet 带来新的vm 会使用更新后的 IMAGE 来执行此操作
谢谢你
如果您使用的是自定义图像,您将执行以下操作:
$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 提供新的或更新的映像,然后调用更新。