Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создавая масштабируемый набор, вы указываете образ для использования при развертывании экземпляров виртуальных машин. Чтобы сократить количество задач после развертывания экземпляров виртуальных машин, можно использовать пользовательский образ виртуальной машины. Этот образ содержит все необходимые установки или конфигурации приложения. Все экземпляры виртуальных машин, созданные в масштабируемом наборе, используют пользовательский образ виртуальной машины и готовы обслуживать трафик приложения. Из этого руководства вы узнаете, как выполнить следующие задачи:
- Создание Галереи вычислений Azure
- Создание определения образа
- Создание версии образа
- Создание масштабируемого набора из образа
- Предоставление общего доступа к коллекции образов
Если у вас нет подписки на Azure, создайте бесплатную учетную запись перед началом.
Запуск Azure Cloud Shell
Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Он содержит стандартные средства Azure, предварительно установленные и настроенные для использования с вашей учетной записью.
Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода. Cloud Shell можно также запустить в отдельной вкладке браузера, перейдя на страницу https://shell.azure.com/powershell. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу "ВВОД", чтобы выполнить его.
Создание и настройка исходной виртуальной машины
Сначала создайте группу ресурсов с помощью New-AzResourceGroup, а затем создайте виртуальную машину с помощью New-AzVM. Позже эта виртуальная машина будет использована в качестве источника для образа. В следующем примере создается виртуальная машина с именем myVM в группе ресурсов с именем myResourceGroup:
New-AzResourceGroup -Name 'myResourceGroup' -Location 'EastUS'
New-AzVm `
-ResourceGroupName 'myResourceGroup' `
-Name 'myVM' `
-Location 'East US' `
-VirtualNetworkName 'myVnet' `
-SubnetName 'mySubnet' `
-SecurityGroupName 'myNetworkSecurityGroup' `
-PublicIpAddressName 'myPublicIpAddress' `
-OpenPorts 80,3389
Сохранение переменной виртуальной машины
Вы можете увидеть список виртуальных машин, доступных в группе ресурсов, с помощью Get-AzVM. После того как вы знаете имя виртуальной машины и какую группу ресурсов, вы можете снова использовать Get-AzVM , чтобы получить объект виртуальной машины и сохранить его в переменной для последующего использования. В этом примере виртуальная машина с именем myVM извлекается из группы ресурсов "myResourceGroup" и присваивается переменной $vm.
$sourceVM = Get-AzVM `
-Name myVM `
-ResourceGroupName myResourceGroup
Создание коллекции образов
Коллекция образов является основным ресурсом, который позволяет обмен изображениями. Допустимые символы для имени коллекции — прописные или строчные буквы, цифры и точки. Имя коллекции не может содержать дефисы. Имена коллекций должны быть уникальным в пределах вашей подписки.
Создайте коллекцию образов с помощью New-AzGallery. В следующем примере создается галерея myGallery в группе ресурсов myGalleryRG.
$resourceGroup = New-AzResourceGroup `
-Name 'myGalleryRG' `
-Location 'EastUS'
$gallery = New-AzGallery `
-GalleryName 'myGallery' `
-ResourceGroupName $resourceGroup.ResourceGroupName `
-Location $resourceGroup.Location `
-Description 'Azure Compute Gallery for my organization'
Создание определения образа
Образы можно объединять в логические группы с помощью определений образов. Они используются для управления сведениями о версиях образов, созданных в них. Имена определений изображений могут состоять из прописных или строчных букв, цифр, точек, дефисов и периодов. Дополнительные сведения о значениях, которые можно указать для определения образа, см. в разделе Определения образов.
Создайте определение образа с помощью New-AzGalleryImageDefinition. В этом примере изображение галереи называется myGalleryImage и создается для специализированного образа.
$galleryImage = New-AzGalleryImageDefinition `
-GalleryName $gallery.Name `
-ResourceGroupName $resourceGroup.ResourceGroupName `
-Location $gallery.Location `
-Name 'myImageDefinition' `
-OsState specialized `
-OsType Windows `
-Publisher 'myPublisher' `
-Offer 'myOffer' `
-Sku 'mySKU'
Создание версии образа
Создайте версию образа из виртуальной машины с помощью New-AzGalleryImageVersion.
Допустимые символы для версии изображения — числа и периоды. Числа должны быть в диапазоне 32-битного целого числа. Формат: основной номер версии.дополнительный номер версии.исправление.
В этом примере версия образа — 1.0.0 , и она реплицируется как в центрах обработки данных восточной части США , так и в южной части США . При выборе целевых регионов для репликации необходимо включить исходный регион в качестве целевого объекта для репликации.
Чтобы создать версию образа из виртуальной машины, используйте $vm.Id.ToString() для -Source.
$region1 = @{Name='South Central US';ReplicaCount=1}
$region2 = @{Name='East US';ReplicaCount=2}
$targetRegions = @($region1,$region2)
New-AzGalleryImageVersion `
-GalleryImageDefinitionName $galleryImage.Name`
-GalleryImageVersionName '1.0.0' `
-GalleryName $gallery.Name `
-ResourceGroupName $resourceGroup.ResourceGroupName `
-Location $resourceGroup.Location `
-TargetRegion $targetRegions `
-Source $sourceVM.Id.ToString() `
-PublishingProfileEndOfLifeDate '2023-12-01'
На репликацию изображения во все целевые регионы может уйти некоторое время.
Создание масштабируемого набора на основе образа
Теперь создайте масштабируемый набор с помощью New-AzVmss, который использует -ImageName параметр для определения пользовательского образа виртуальной машины, созданного на предыдущем шаге. Для распределения трафика между отдельными экземплярами виртуальных машин также создается подсистема балансировки нагрузки. Подсистема балансировки нагрузки включает правила для распределения трафика через TCP-порт 80, а также разрешить трафик удаленного рабочего стола через TCP-порт 3389 и удаленное взаимодействие PowerShell через TCP-порт 5985. При появлении запроса укажите необходимые административные учетные данные для экземпляров виртуальных машин в масштабируемом наборе:
Это важно
Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию будут использоваться в режиме гибкой оркестрации, если режим оркестрации не указан. Дополнительные сведения об этом изменении и о действиях, которые необходимо предпринять, см. в руководстве по критическим изменениям для клиентов VmSS PowerShell/CLI — Microsoft Community Hub
# Define variables for the scale set
$resourceGroupName = "myScaleSet"
$scaleSetName = "myScaleSet"
$location = "East US"
# Create a resource group
New-AzResourceGroup -ResourceGroupName $resourceGroupName -Location $location
# Create a configuration
$vmssConfig = New-AzVmssConfig `
-Location $location `
-OrchestrationMode Flexible `
-SkuCapacity 2 `
-SkuName "Standard_D2s_v3"
# Reference the image version
Set-AzVmssStorageProfile $vmssConfig `
-OsDiskCreateOption "FromImage" `
-ImageReferenceId $galleryImage.Id
# Create the scale set
New-AzVmss `
-ResourceGroupName $resourceGroupName `
-Name $scaleSetName `
-VirtualMachineScaleSet $vmssConfig
Создание и настройка всех ресурсов масштабируемого набора и виртуальных машин занимает несколько минут.
Предоставление общего доступа к коллекции
Рекомендуется предоставить общий доступ на уровне коллекции образов. Используйте адрес электронной почты и командлет Get-AzADUser для получения идентификатора объекта для пользователя, а затем используйте New-AzRoleAssignment , чтобы предоставить им доступ к коллекции. Замените пример электронной почты в [email protected] этом примере собственными сведениями.
# Get the object ID for the user
$user = Get-AzADUser -StartsWith [email protected]
# Grant access to the user for our gallery
New-AzRoleAssignment `
-ObjectId $user.Id `
-RoleDefinitionName Reader `
-ResourceName $gallery.Name `
-ResourceType Microsoft.Compute/galleries `
-ResourceGroupName $resourceGroup.ResourceGroupName
Очистите ресурсы
При отсутствии необходимости можно использовать командлет Remove-AzResourceGroup для удаления группы ресурсов и всех связанных ресурсов:
# Delete the gallery
Remove-AzResourceGroup -Name myGalleryRG
# Delete the scale set resource group
Remove-AzResourceGroup -Name myResoureceGroup
Дальнейшие шаги
В этом руководстве вы узнали, как создать и использовать пользовательский образ виртуальной машины для масштабируемых наборов с помощью Azure PowerShell:
- Создание Галереи вычислений Azure
- Создание определения образа
- Создание версии образа
- Создание масштабируемого набора из образа
- Предоставление общего доступа к коллекции образов
Перейдите к следующему руководству, чтобы узнать, как развертывать приложения в масштабируемый набор.