Azure VMSS Linux操作系统升级

时间:2018-12-02 18:51:04

标签: azure azure-vm-scale-set

我当时正在查看https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-automatic-upgrade,看是否可以将VMSS(当前使用手动升级策略模式)更改为自动滚动更新,但是发现应用程序运行状况探针无法使用我们现有的App Gateway健康探针,因为它需要专门用作LoadBalancer。闷闷不乐。

无论如何,我想我要测试一下我们的VMSS,以确保我们可以从Portal / CLI手动升级每个实例,但是故意选择一个旧的16.04 LTS映像ID(而不是“最新”版本标签)。我从“ az vm image list --location canadacentral --publisher Canonical --offer UbuntuServer --SKU 16.04-LTS --all --output table中选择了2018年发布的第一张16.04图像,即16.04.201801050。最新的是“ 16.04.201811140”

Microsoft.Compute / virtualMachineScaleSets / cluster?api-version = 2018-06-01:

"properties": { "singlePlacementGroup": false, "upgradePolicy": { "mode": "Manual", "automaticOSUpgrade": false }, ... "imageReference": { "publisher": "Canonical", "offer": "UbuntuServer", "sku": "16.04-LTS", "version": "16.04.201801050" },

我可以通过SSH确认每个新的VMSS实例确实具有所需的“ 16.04.201801050”映像(需要应用大量更新):

```
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.11.0-1016-azure x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

202 packages can be updated.
118 updates are security updates.

jiraadmin@jiranode-000001:~$ apt list linux-image-azure 
Listing... Done
linux-image-azure/xenial-updates,xenial-security 4.15.0.1032.37 amd64 [upgradable from: 4.11.0.1016.16]
N: There is 1 additional version. Please use the '-a' switch to see it
```

但是我很惊讶地看到Portal和REST API的每个实例中应用的最新模型都设置为true(显然不是)

Microsoft.Compute / virtualMachineScaleSets / cluster / virtualMachines / 0?api-version = 2018-06-01:

"properties": { "latestModelApplied": true, "vmId": "...", "hardwareProfile": {}, "storageProfile": { "imageReference": { "publisher": "Canonical", "offer": "UbuntuServer", "sku": "16.04-LTS", "version": "16.04.201801050" }

单击Azure门户中VM实例的“升级”按钮将启动一个非常短暂的任务,而无需对基础VM进行任何更改。

所以我假设以下内容:

  • 在“最新”映像之前指定较旧的映像版本,应将VMSS实例的LatestModelApplied设置为false
  • 单击Poisal的“升级”按钮应将“旧”映像版本升级到“最新”映像版本,即实质上执行“ sudo apt-get升级”或“ sudo apt dist-upgrade”。将latestModelApplied设置为false,则不会执行任何操作。
  • 从门户网站单击Reimage,您会收到有关实例恢复到其原始状态的警告,但是从https://docs.microsoft.com/en-us/rest/api/compute/virtualmachinescalesets/reimage起,它表明它将升级操作系统映像,即sudo apt dist-upgrade。它做到了前者,它重新安装了原始图像,使所有内容消失了。

因此在我看来,由于最新的ModelApplied属性错误,您无法使用Portal来维护当前正在运行的VM上的操作系统和安全更新。上面的行为和我的假设正确吗?

谢谢, 斯蒂芬。

1 个答案:

答案 0 :(得分:0)

来自MS的人在https://github.com/Azure/vm-scale-sets/issues/62整理了我的(不正确的)假设。