Поделиться через


Разверните ваше приложение на масштабируемых наборах виртуальных машин

Замечание

В этом документе рассматриваются Масштабируемые наборы виртуальных машин выполнение в режиме единой оркестрации. Мы рекомендуем использовать гибкую оркестрацию для новых рабочих нагрузок. Для получения дополнительной информации см. режимы оркестрации масштабируемых наборов виртуальных машин в Azure.

Для запуска приложений в экземплярах виртуальных машин в масштабируемом наборе необходимо сначала установить компоненты и необходимые файлы этих приложений. В этой статье описаны способы создания пользовательского образа виртуальной машины для экземпляров в масштабируемом наборе или автоматического запуска скриптов установки на существующих экземплярах виртуальных машин. Вы также узнаете, как управлять обновлениями приложений или ОС в масштабируемом наборе.

Установка приложения с помощью приложений виртуальных машин

Приложения виртуальных машин Azure предоставляют упрощенный, масштабируемый и безопасный способ упаковки, управления и развертывания приложений на виртуальных машинах Azure, масштабируемых наборов виртуальных машин (VMSS). Приложения виртуальных машин — это лучший способ развертывания средств, агентов, приложений ИИ, компонентов безопасности и бизнес-приложений в Azure. Он предназначен для развертывания рабочих нагрузок, связанных с ИИ, с высоким уровнем безопасности, крупномасштабных, с низкой задержкой и соответствующих нормативным требованиям на виртуальных машинах Azure.

Основные преимущества:

  • Централизованное и гибкое управление приложениями:
    • Упакуйте приложения один раз, развертывайте где угодно: упаковывайте приложения в форматах ZIP, MSI или EXE и управляйте ими централизованно в Azure Compute Gallery.
    • Управление версиями: поддерживает несколько версий приложений, позволяя командам развертывать последнюю или определенную версию по мере необходимости.
  • Простой общий доступ и управление доступом
    • Tenant-Wide общий доступ: совместное использование приложений в командах или всей организации (клиенте).
    • Интегрированный RBAC: управление доступом к публикации и развертыванию с помощью Azure Role-Based Access Control (RBAC).
  • Надежные и настраиваемые развертывания
    • Отдельный элемент управления приложениями: установка, обновление или удаление приложений независимо от необходимости перестроить образы виртуальных машин.
    • Настраиваемые операции: настройка операций установки, обновления и удаления для приложений, включая обработку перезагрузки.
    • Built-In Обработка отказов: Обеспечьте устойчивость развертываний, связывая сбой приложения виртуальной машины с отказом виртуальной машины.
  • Масштабируемое и Low-Latency распределение
    • Глобальная и Intra-Region репликация: автоматическая репликация приложений как между регионами, так и внутри них для уменьшения задержки и повышения устойчивости — без необходимости использовать AzCopy или выполнять ручную передачу.
    • Оптимизировано для сценариев High-Scale: Обеспечивает низкую задержку при крупномасштабных развертываниях.
  • Безопасный и соответствующий требованиям по проектированию
    • Принудительное применение политик: используйте политику Azure для принудительного применения присутствия и конфигурации приложений в вашем флоте.
    • Безопасные развертывания. Избегайте загрузки на основе Интернета и сложных настроек приватного канала, идеально подходит для заблокированных сред.
  • Широкая поддержка платформы
    • Виртуальные машины и масштабируемые наборы: развертывание на отдельных виртуальных машинах, гибких масштабируемых наборах или универсальных масштабируемых наборах с полной поддержкой.
    • Поддержка Блочных BLOB-объектов: Эффективная обработка больших пакетов приложений с использованием Блочных BLOB-объектов Azure для загрузки по частям и фоновой потоковой передачи.

Создание и развертывание приложений виртуальных машин

Создание пользовательского образа виртуальной машины

Если вы используете один из образов платформы Azure для создания экземпляров в масштабируемом наборе, ни одно другое программное обеспечение не устанавливается или не настроено. Вы можете автоматизировать установку этих компонентов, однако это увеличивает время, необходимое для подготовки экземпляров виртуальных машин в ваших масштабируемых наборах. При применении большого количества изменений конфигурации к экземплярам виртуальной машины существуют затраты на управление этими скриптами и задачами конфигурации.

Чтобы сократить управление конфигурацией и время подготовки виртуальной машины, можно создать пользовательский образ виртуальной машины, готовый к запуску приложения, как только экземпляр подготовлен в масштабируемом наборе. Дополнительные сведения о создании и использовании пользовательского образа виртуальной машины с масштабируемым набором см. в следующих руководствах.

Установите приложение с помощью расширения Custom Script

Расширение настраиваемых сценариев скачивает и выполняет сценарии на виртуальных машинах Azure. Это расширение можно использовать для настройки после развертывания, установки программного обеспечения и других задач настройки или управления. Сценарии можно скачать из службы хранилища Azure или GitHub или передать на портал Azure во время выполнения расширения. Дополнительные сведения о том, как установить приложение с расширением пользовательского скрипта, см. в следующих руководствах:

Установка приложения на виртуальную машину Windows с помощью PowerShell DSC

PowerShell Desired State Configuration — это платформа управления, которая позволяет определить конфигурацию целевых виртуальных машин. Конфигурации DSC определяют компоненты, которые следует установить на виртуальной машине, а также параметры настройки узла. На каждом целевом узле, который обрабатывает запрашиваемые действия на основе отправленных конфигураций, выполняется модуль локального диспетчера конфигураций (LCM).

Расширение PowerShell DSC позволяет настраивать экземпляры виртуальных машин в масштабируемом наборе с помощью PowerShell. Следующий пример:

  • Указывает экземплярам виртуальной машины скачать пакет DSC из GitHub. https://github.com/Azure-Samples/compute-automation-configurations/raw/master/dsc.zip
  • Задает расширение для запуска скрипта установки. configure-http.ps1
  • Возвращает сведения о масштабируемом наборе, используя Get-AzVmss
  • Применяет расширение к экземплярам виртуальных машин с использованием Update-AzVmss

Расширение DSC применяется к экземплярам виртуальной машины myScaleSet в группе ресурсов с именем myResourceGroup. Введите собственные имена следующим образом:

# Define the script for your Desired Configuration to download and run
$dscConfig = @{
  "wmfVersion" = "latest";
  "configuration" = @{
    "url" = "https://github.com/Azure-Samples/compute-automation-configurations/raw/master/dsc.zip";
    "script" = "configure-http.ps1";
    "function" = "WebsiteTest";
  };
}

# Get information about the scale set
$vmss = Get-AzVmss `
                -ResourceGroupName "myResourceGroup" `
                -VMScaleSetName "myScaleSet"

# Add the Desired State Configuration extension to install IIS and configure basic website
$vmss = Add-AzVmssExtension `
    -VirtualMachineScaleSet $vmss `
    -Publisher Microsoft.Powershell `
    -Type DSC `
    -TypeHandlerVersion 2.24 `
    -Name "DSC" `
    -Setting $dscConfig

# Update the scale set and apply the Desired State Configuration extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet"  `
    -VirtualMachineScaleSet $vmss

Если политика обновления в масштабируемом наборе выполняется вручную, обновите экземпляры виртуальных машин с помощью Update-AzVmssInstance. Этот командлет применяет обновленную конфигурацию масштабируемого набора к экземплярам виртуальной машины и устанавливает ваше приложение.

Установка приложения на виртуальную машину Linux с помощью cloud-init

Cloud-init — это широко используемый подход для настройки виртуальной машины Linux при первой загрузке. Вы можете использовать cloud-init для установки пакетов, записи файлов или настройки пользователей и параметров безопасности. При запуске cloud-init в ходе начального процесса загрузки не требуется ни дополнительных шагов, ни агентов для применения вашей конфигурации.

Кроме того, cloud-init работает с разными дистрибутивами. Например, для установки пакета не используется apt-get install или yum install. Вместо этого можно определить список пакетов для установки. Файл cloud-init автоматически использует собственный инструмент управления пакетами из выбранного дистрибутива.

Дополнительные сведения, включая пример cloud-init.txt файла, см. в статье Об использовании cloud-init для настройки виртуальных машин Azure.

Чтобы создать масштабируемый набор и использовать файл cloud-init, добавьте параметр в --custom-data и укажите имя файла cloud-init. В следующем примере создается масштабируемый набор с именем myScaleSet в myResourceGroup и настраиваются экземпляры виртуальных машин с использованием файла, названного cloud-init.txt. Введите собственные имена следующим образом:

Это важно

Начиная с ноября 2023 года масштабируемые наборы виртуальных машин, созданные с помощью PowerShell и Azure CLI, по умолчанию используют режим гибкой оркестрации, если режим оркестрации не указан. Дополнительную информацию об этом изменении и рекомендации по необходимым действиям см. в разделе "Разрушающее изменение" для клиентов PowerShell/CLI для масштабируемых наборов виртуальных машин — Microsoft Community Hub

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image Ubuntu2204 \
  -–orchestration-mode uniform \
  --upgrade-policy-mode automatic \
  --custom-data cloud-init.txt \
  --admin-username azureuser \
  --generate-ssh-keys

Установка приложений с обновлениями ОС

Когда доступны новые выпуски ОС, вы можете использовать или создавать новый пользовательский образ и развертывать обновления ОС в масштабируемом наборе. Каждый экземпляр виртуальной машины обновляется до последнего указанного образа. Вы можете использовать пользовательский образ с предварительно установленным приложением, расширением пользовательских скриптов или PowerShell DSC, чтобы приложение было автоматически доступно при обновлении. Вам может потребоваться запланировать обслуживание приложений при выполнении этого процесса, чтобы убедиться, что проблемы совместимости версий отсутствуют.

Если вы используете пользовательский образ виртуальной машины с предварительно установленным приложением, можно интегрировать обновления приложений с конвейером развертывания для создания новых образов и развертывания обновлений ОС в масштабируемом наборе. Такой подход позволяет конвейеру собирать последние сборки приложений, создавать и проверять образ виртуальной машины, а затем обновлять экземпляры виртуальных машин в масштабируемом наборе. Чтобы запустить конвейер развертывания, который создает и развертывает обновления приложений на пользовательских образах виртуальных машин, можно создать образ Packer и развернуть с помощью Azure DevOps Services или использовать другую платформу, например Spinnaker или Jenkins.

Дальнейшие шаги

При создании и развертывании приложений в масштабируемых наборах можно просмотреть обзор конструктора масштабируемого набора. Дополнительные сведения об управлении масштабируемым набором см. по ссылке Использование PowerShell для управления масштабируемым набором.