В этой статье приводятся ответы на часто задаваемые вопросы о том, что происходит, когда образы в Azure Marketplace устарели.
Я получил сообщение электронной почты о том, что мое изображение запланировано на отмену. Что это значит?
Возможно, вы получили сообщение электронной почты о том, что виртуальная машина запущена на образах, запланированных для отмены или уже устаревших. Существует несколько причин, по которым изображение может быть нерекомендуемо издателем, что может быть вызвано проблемами безопасности или изображением, достигающими конца жизни.
Изображение можно не рекомендуется использовать на уровне версии, плана или предложения:
- Отмена версии образа — удаление отдельной версии образа виртуальной машины
- Отмена плана или номера SKU — удаление плана или номера SKU и всех образов в плане
- Отмена предложения — удаление всего предложения виртуальной машины, включая все планы в предложении и все образы в каждом плане.
Я получил сообщение электронной почты о том, что мои рабочие нагрузки выполняются на образах, запланированных для отмены. Что это означает и влияет на существующие рабочие нагрузки?
До запланированной даты отмены можно продолжить развертывание новых экземпляров виртуальной машины или масштабируемого набора до даты отмены.
После запланированной даты отмены вы не сможете развертывать новые экземпляры с помощью затронутых образов. Если план запланирован на отмену, все версии образа в плане больше не будут доступны. Если все предложение запланировано на отмену, все планы в предложении больше не будут доступны после отмены.
- Активные экземпляры виртуальных машин не будут затронуты.
- Новые экземпляры виртуальных машин не могут быть созданы из любого из затронутых образов.
- Существующие развертывания масштабируемых наборов виртуальных машин нельзя масштабировать при настройке любого из затронутых образов. Если план или предложение устарели, все существующие масштабируемые наборы развертываний, закрепленных на любом изображении плана или предложения соответственно, нельзя масштабировать.
Что нужно сделать?
Если вы хотите, чтобы масштабируемый набор масштабировался после даты отмены, необходимо определить масштабируемый набор, запущенный на нерекомендуемом образе, а затем перенести рабочую нагрузку в поддерживаемый образ. Если вы хотите остаться на изображении после отмены, можно создать собственный пользовательский образ и перенести его (описанные ниже действия). Если у вас уже есть автоматические обновления, настроенные для виртуальной машины или масштабируемого набора, вы будете влиять только на то, что версия предложения или плана устарела (не влияет на версию образа).
Как определить виртуальные машины и масштабируемые наборы виртуальных машин в подписке, которые выполняются на образах, запланированных для отмены?
Использование графа ресурсов Azure:
Вы можете искать масштабируемые наборы виртуальных машин или виртуальных машин, закрепленные на изображении, выполнив следующие запросы в графе ресурсов Azure:
- Чтобы найти виртуальные машины, работающие на любом снятом образе, укажите устаревший образ, как показано ниже, и выполните запрос в Azure Resource Graph, заменив приведенные ниже значения следующим образом:
resources
|where type == "microsoft.compute/virtualmachines"
//| where properties.storageProfile.imageReference.publisher =~ 'Windows' //optional filter, uncomment this line to filter for a specific publisher.
//| where properties.storageProfile.imageReference.sku =~ '2016-Datacenter' //optional filter, uncomment this line to filter for a specific deprecated SKU (Plan).
//| where properties.storageProfile.imageReference.version == '14393.4467.2106061537' //optional filter, uncomment this line to filter for a specific deprecated version.
|project name, subscriptionId, resourceGroup, ImagePublisher=properties.storageProfile.imageReference.publisher,ImageOffer=properties.storageProfile.imageReference.offer,imageSku=properties.storageProfile.imageReference.sku, imageVersion=properties.storageProfile.imageReference.exactVersion
- Чтобы найти масштабируемый набор, работающий на любом снятом образе, укажите отставной образ, как показано ниже, и выполните запрос в Azure Resource Graph, заменив приведенные ниже значения следующим образом:
resources
|where type == "microsoft.compute/virtualmachinescalesets"
//| where properties.virtualMachineProfile.storageProfile.imageReference.publisher =~ 'Windows' //optional filter, uncomment this line to filter for a specific publisher.
//| where properties.virtualMachineProfile.storageProfile.imageReference.sku =~ '2016-Datacenter' //optional filter, uncomment this line to filter for a specific deprecated SKU (Plan).
//| where properties.virtualMachineProfile.storageProfile.imageReference.version == '14393.4467.2106061537' //optional filter, uncomment this line to filter for a specific deprecated version.
//| where properties.virtualMachineProfile.storageProfile.imageReference.version != "latest" //optional filter, uncomment this line to filter out scale sets that aren't using "latest version" in the model.
|project name, subscriptionId, resourceGroup, ImagePublisher=properties.virtualMachineProfile.storageProfile.imageReference.publisher,ImageOffer=properties.virtualMachineProfile.storageProfile.imageReference.offer,imageSku=properties.virtualMachineProfile.storageProfile.imageReference.sku, imageVersion=properties.virtualMachineProfile.storageProfile.imageReference.version
В Azure CLI:
- Вывод списка виртуальных машин с устаревшим образом на уровне plan/SKU.
az vm show --resource-group $rgName --name $vmName --query "storageProfile.imageReference.exactVersion
az vm list --query "[?storageProfile.imageReference.sku=='2016-Datacenter'].{VM:id, imageOffer:storageProfile.imageReference.offer, imagePublisher:StorageProfile.imageReference.publisher, imageSku: storageProfile.imageReference.sku, imageVersion:storageProfile.imageReference.version}"
- Вывод списка виртуальных машин с устаревшим образом на уровне версии.
az vm list --query "[?storageProfile.imageReference.version=='14393.4402.2105052108'].{VM:id, imageOffer:storageProfile.imageReference.offer, imagePublisher:StorageProfile.imageReference.publisher, imageSku: storageProfile.imageReference.sku, imageVersion:storageProfile.imageReference.version}"
Использование PowerShell.
- Вывод списка виртуальных машин с устаревшими образами на уровне версии.
(Get-AzVM -ResourceGroupName $rgname -Name $vmname).StorageProfile.ImageReference.ExactVersion
- Чтобы найти масштабируемый набор с использованием устаревшей версии.
$vmsslist = Get-AzVmss
$vmsslist | where {$_.virtualMachineProfile.storageProfile.imageReference.Version -eq '14393.4402.2105052108'} | Select-Object -Property ResourceGroupName, Name, @{label='imageOffer'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Offer}}, @{label='imagePublisher'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Publisher}}, @{label='imageSKU'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Sku}}, @{label='imageVersion'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Version}}
- Вывод списка масштабируемых наборов с устаревшими изображениями на уровне плана или номера SKU.
$vmsslist = Get-AzVmss
$vmsslist | where {$_.virtualMachineProfile.storageProfile.imageReference.Sku -eq '2016-Datacenter'} | Select-Object -Property ResourceGroupName, Name, @{label='imageOffer'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Offer}}, @{label='imagePublisher'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Publisher}}, @{label='imageSKU'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Sku}}, @{label='imageVersion'; expression={$_.virtualMachineProfile.storageProfile.imageReference.Version}}
- Запустите Get-AzVMImageDeprecationStatus.ps1 , чтобы получить список, если какие-либо виртуальные машины или масштабируемые наборы виртуальных машин в подписке были созданы на основе образов виртуальных машин, запланированных для отмены.
Если образ не рекомендуется, не влияет на существующие виртуальные машины и никаких действий не требуется. Если образ не рекомендуется, влияют только операции горизонтального масштабирования VMSS и новые операции создания виртуальных машин и VMSS.
Разделы справки перенести рабочие нагрузки на другой образ?
Возможно, вы хотите сохранить использование образа, запланированного для нерекомендуемого по определенным причинам, или вы можете перенести рабочие нагрузки в другое предложение или план или версию.
Если вы хотите продолжать использовать образ, запланированный для отмены, обобщайте виртуальную машину, отмените размещение виртуальной машины, а затем создайте пользовательский образ для виртуальной машины или масштабируемого набора. Затем измените развертывание виртуальной машины или масштабируемого набора, чтобы указать на пользовательский образ. Дополнительные сведения см. в разделе "Запись образа виртуальной машины" на портале.
Примечание. Если вы используете нерекомендуемый платный образ Marketplace с определенными сведениями о плане покупки (объект "план" на изображении), если этот образ не рекомендуется создавать новые рабочие нагрузки Виртуальные машины или выполнять операции azure Site Recovery (ASR) или операции резервного копирования с этим изображением из-за отсутствия сведений о плане.
Вы хотите перейти на другое предложение или план или версию:
Сначала найдите другие предложения, планы или версии от того же издателя.
Чтобы перейти к другому предложению, выполните следующее:
С помощью Azure CLI.
az vm image list --location "west europe" --publisher "MicrosoftWindowsServer"
Использование PowerShell:
Get-AzVMImage -Location "west europe" -PublisherName “MicrosoftWindowsServer”
Чтобы перейти к другому плану, выполните следующее:
Найдите другие планы в том же предложении, а затем перейдите в этот план.
Azure CLI:
az vm image list --location "west europe" --publisher "MicrosoftWindowsServer" --offer "WindowsServer"
PowerShell.
Get-AzVMImage -Location "west europe" -PublisherName “MicrosoftWindowsServer” -Offer “WindowsServer”
Чтобы выполнить миграцию в другую версию, выполните следующее:
Найдите другую версию. Мы рекомендуем перейти на последнюю версию.
Azure CLI:
az vm image list --location "west europe" --publisher "MicrosoftWindowsServer" --offer "WindowsServer" --sku "2019-Datacenter-with-Containers" --all"
PowerShell.
Get-AzVMImage -Location "west europe" -PublisherName "MicrosoftWindowsServer” -Offer “WindowsServer” -Skus "2019-Datacenter-with-Containers"
Перед переносом рабочих нагрузок на новый образ необходимо убедиться, что рабочие нагрузки поддерживаются и будут правильно работать на новом образе.
Масштабируемые наборы, как правило, поддерживают замену ссылок на образы, но виртуальные машины не поддерживают.
Перенос рабочих нагрузок масштабируемого набора на более новый образ с минимальным временем простоя
Масштабируемый набор, предложения по обновлению версии должны включать:
Чтобы избежать простоя, убедитесь, что политика обновления настроена вручную или переключится.
- Если задано значение вручную, существующие экземпляры не будут переосмыслены до тех пор, пока они не будут обновлены вручную.
- Если задано значение скользящего, существующие экземпляры будут автоматически обновлены и переимыслятся пакетом.
Обновите ссылку на образ, выполнив действия, описанные в разделе "Изменение масштабируемого набора виртуальных машин Azure".
Убедитесь, что все существующие экземпляры обновлены и в последней модели. Вы также можете масштабировать и перенести рабочую нагрузку на новые экземпляры, а затем удалить старые экземпляры вместо обновления существующих экземпляров.
После обновления существующих экземпляров до нового образа измените политику обновления на то, что было необходимо.
При использовании VMSS рекомендуется включить автоматическое обновление образа ОС, чтобы последний образ, опубликованный издателями образов, автоматически применялся к масштабируемой группе или VMSS без вмешательства пользователя вручную. Узнайте, как включить автоматическое обновление образа ОС
Что происходит, когда платный образ Marketplace с информацией о плане покупки не рекомендуется?
Если вы используете платный образ Marketplace, если образ не рекомендуется восстанавливать виртуальную машину из резервных копий, может завершиться сбоем для образов с сведениями о плане после удаления или отмены использования образа из Marketplace. Рекомендуется создавать виртуальные машины и переносить рабочую нагрузку на этот образ, если вы используете образ Платной Платформы с сведениями о плане. Если образ виртуальной машины является бесплатным (не требует сведений о плане), вы сможете продолжить использование одной виртуальной машины и сможете восстановить данные из резервных копий. Обратите внимание, что это влияет только на отдельные виртуальные машины, а не на рабочие нагрузки VMSS.
Что происходит, когда не рекомендуется использовать бесплатный образ Marketplace?
Не влияет на существующие рабочие нагрузки виртуальной машины или VMSS, если бесплатный образ Marketplace не рекомендуется. Однако нельзя создавать новые виртуальные машины или рабочие нагрузки VMSS из устаревшего бесплатного образа Marketplace.
Не рекомендуется ли использовать все версии образа, чем указанная версия?
Как правило, да. Однако рекомендуется подтвердить список допустимых версий в плане с помощью образов виртуальных машин — List.
Как проверить, является ли определенный образ устаревшим или запланированным для отмены?
Можно проверить, не рекомендуется ли использовать образ или не рекомендуется использовать REST API.
Если образ не рекомендуется, вы получите нерекомендуемый ответ на образ виртуальной машины. Если изображение запланировано на отмену, ответ будет отображать дату запланированного отмены.
Примечание.
Вы можете запустить Get-AzVMImageDeprecationStatus.ps1 в Cloud Shell или локально в Azure PowerShell, чтобы показать, были ли виртуальные машины в подписке созданы на основе образов виртуальных машин, запланированных для отмены. Этот скрипт поддерживает экземпляры масштабируемого набора виртуальных машин и виртуальных машин.
Ответ указывает, что это не рекомендуется:
{
"error": {
"code": "ImageVersionDeprecated",
"message": "VM Image from publisher: MicrosoftWindowsServer with - Offer: WindowsServer, Sku: 2016-Datacenter, Version: 14393.4169.2101090332 is deprecated."
}
}
Чтобы проверить, не рекомендуется ли использовать образ с помощью Azure CLI или PowerShell:
Azure CLI:
az vm image show --location eastus --urn <MicrosoftWindowsServer:WindowsServer:2016-Datacenter:14393.4169.2101090332> --query [imageDeprecationStatus]
PowerShell.
Get-AzVMImage -Location "eastus" -PublisherName <MicrosoftWindowsServer> -Offer "WindowsServer" -Skus <2016-Datacenter> -Version <14393.4169.2101090332> | Select-Object -ExpandProperty "ImageDeprecationStatus"
Ответ указывает, что этот образ не рекомендуется:
Get-AzVMImage: VM Image from publisher: MicrosoftWindowsServer with - Offer: WindowsServer, Sku: 2016-Datacenter, Version: 14393.4169.2101090332 is deprecated.
ErrorCode: ImageVersionDeprecated
ErrorMessage: VM Image from publisher: MicrosoftWindowsServer with - Offer: WindowsServer, Sku: 2016-Datacenter, Version: 14393.4169.2101090332 is deprecated.
ErrorTarget:
StatusCode: 404
ReasonPhrase: Not Found