Руководство. Создание масштабируемого набора виртуальных машин и развертывание высокодоступного приложения в Linux
Область применения: ✔️ Виртуальные машины Linux ✔️ Универсальные масштабируемые наборы
Масштабируемые наборы виртуальных машин с гибкой оркестрацией позволяют создавать группы виртуальных машин с балансировкой нагрузки и управлять ими. Число экземпляров виртуальных машин может автоматически увеличиваться или уменьшаться в зависимости от спроса или по определенному расписанию.
В этом руководстве вы развернете масштабируемый набор виртуальных машин в Azure и узнаете, как:
- Создайте группу ресурсов.
- Создайте гибкий масштабируемый набор с использованием подсистемы балансировки нагрузки.
- Добавьте nginx в экземпляры масштабируемого набора.
- Откройте порт 80 для трафика HTTP.
- Проверьте масштабируемый набор.
Обзор масштабируемого набора
Масштабируемые наборы предоставляют ряд таких основных преимуществ:
- Простота создания множества виртуальных машин и управления ими
- Высокая доступность и устойчивость приложений за счет распределения виртуальных машин между доменами сбоя
- При изменении спроса на ресурсы приложение может автоматически масштабироваться
- Поддержка работы в большом масштабе
Благодаря гибкой оркестрации Azure предоставляет унифицированный интерфейс экосистемы виртуальных машин Azure. Гибкая оркестрация предлагает гарантии высокого уровня доступности (до 1000 виртуальных машин), распределяя виртуальные машины между доменами сбоя в регионе или в зоне доступности. Это позволяет масштабировать приложение, сохраняя изоляцию доменов сбоя, которая необходима для выполнения рабочих нагрузок на основе кворума или с отслеживанием состояния, в том числе для следующих:
- Рабочие нагрузки на основе кворума
- Базы данных с открытым кодом
- Приложения с отслеживанием состояния
- Службы, требующие высокой доступности и масштабирования
- Службы, которые собираются сочетать типы ВМ разных типов или использовать точечные виртуальные машины и ВМ по запросу
- Существующие приложения группы доступности
Дополнительные сведения о различиях между универсальными масштабируемыми наборами и гибкими масштабируемыми наборами см. в статье о режимах оркестрации.
Создание масштабируемого набора
Чтобы создать гибкий масштабируемый набор, используйте портал Azure.
- Откройте портал Azure.
- Найдите и выберите Масштабируемый набор виртуальных машин.
- Выберите Создать на странице Масштабируемые наборы виртуальных машин. Откроется окно Создание масштабируемого набора виртуальных машин.
- В поле Подписка выберите подписку, которую вы хотите использовать.
- В поле Группа ресурсов щелкните Создать, введите имя myVMSSRG и нажмите кнопку ОК.
- В поле Имя масштабируемого набора виртуальных машин введите myVMSS.
- В поле Регион выберите ближайший регион, например Восточная часть США.
- Оставьте в этом примере поле Зона доступности пустым.
- В качестве режима оркестрации выберите вариант Гибкий.
- Для параметра Образ выберите Ubuntu 18.04 LTS.
- Для параметра Размер оставьте значение по умолчанию или выберите размер, например Standard_E2s_V3.
- В поле Имя пользователя введите azureuser.
- Для параметра Источник открытого ключа SSH оставьте значение по умолчанию Создать новую пару ключей, а затем введите myKey в поле Имя пары ключей.
- На вкладке Сеть в разделе Балансировка нагрузки выберите Используйте подсистему балансировки нагрузки.
- Для элемента Параметры балансировки нагрузки оставьте значение по умолчанию Azure Load Balancer.
- Для параметра Выберите подсистему балансировки нагрузки щелкните Создать.
- На странице Создание подсистемы балансировки нагрузки введите имя для подсистемы балансировки нагрузки и поля Имя общедоступного IP-адреса.
- В поле Метка доменного имени введите имя, которое будет использоваться в качестве префикса для доменного имени. Имя должно быть уникальным.
- Когда все будет готово, выберите Создать.
- Вернитесь на вкладку Сеть и оставьте имя серверного пула по умолчанию.
- На вкладке Масштаб оставьте число экземпляров по умолчанию равное 2 или добавьте собственное значение. Это количество создаваемых виртуальных машин, поэтому при изменении этого значения учитывайте затраты и ограничения подписки.
- Оставьте для параметра Scaling policy (Политика масштабирования) значение Вручную.
- Откройте вкладку Дополнительно .
- В разделе Custom data and cloud init (Пользовательские данные и cloud init) скопируйте следующие данные и вставьте их в текстовое поле Пользовательские данные:
#cloud-config package_upgrade: true packages: - nginx - nodejs - npm write_files: - owner: www-data:www-data - path: /etc/nginx/sites-available/default content: | server { listen 80; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } - owner: azureuser:azureuser - path: /home/azureuser/myapp/index.js content: | var express = require('express') var app = express() var os = require('os'); app.get('/', function (req, res) { res.send('Hello World from host ' + os.hostname() + '!') }) app.listen(3000, function () { console.log('Hello world app listening on port 3000!') }) runcmd: - service nginx restart - cd "/home/azureuser/myapp" - npm init - npm install express -y - nodejs index.js
- Когда все будет готово, выберите Просмотр и создание.
- Как только вы увидите, что проверка пройдена, можно выбрать Создать в нижней части страницы, чтобы развернуть масштабируемый набор.
- Когда откроется окно Создать новую пару ключей, выберите Download private key and create resource (Скачать закрытый ключ и создать ресурс). Файл ключа будет скачан в таком виде: myKey.pem. Убедитесь, что вы знаете, где
.pem
был скачан файл, и вам потребуется путь к нему на следующем шаге. - Когда развертывание будет завершено, выберите Перейти к ресурсу, чтобы увидеть масштабируемый набор.
Просмотр виртуальных машин в масштабируемом наборе
На странице масштабируемого набора в меню слева выберите Экземпляры.
Вы увидите список виртуальных машин, которые являются частью масштабируемого набора. В этот список входят:
- Имя виртуальной машины
- Имя компьютера, используемое виртуальной машиной.
- Текущее состояние виртуальной машины, например Работает.
- Состояние подготовки виртуальной машины, например Успешно.
Открытие порта 80
Откройте порт 80 в масштабируемом наборе, добавив правило входящего трафика в группу безопасности сети (NSG).
- На странице масштабируемого набора в меню слева выберите Сеть. Откроется страница Сеть.
- Выберите Добавить правило входящего порта. Откроется страница Добавление правила безопасности для входящего трафика.
- В разделе Служба выберите HTTP, а затем в нижней части страницы щелкните Добавить.
Проверка масштабируемого набора
Протестируйте масштабируемый набор, подключившись к нему из браузера.
- На странице Обзор вашего масштабируемого набора скопируйте общедоступный IP-адрес.
- Откройте другую вкладку в браузере и вставьте этот IP-адрес в адресную строку.
- Когда страница загрузится, запишите отображаемое имя компьютера.
- Обновите страницу, чтобы увидеть, изменилось ли имя компьютера.
Удаление масштабируемого набора
По завершении следует удалить группу ресурсов, которая удалит все, что вы развернули для масштабируемого набора.
- На странице масштабируемого набора выберите пункт Группа ресурсов. Откроется страница для вашей группы ресурсов.
- В верхней части страницы выберите Удалить группу ресурсов.
- На странице Вы действительно хотите удалить введите имя группы ресурсов, а затем выберите Удалить.
Дальнейшие действия
В этом руководстве вы создали масштабируемый набор виртуальных машин. Вы ознакомились с выполнением следующих задач:
- Создайте группу ресурсов.
- Создайте гибкий масштабируемый набор с использованием подсистемы балансировки нагрузки.
- Добавьте nginx в экземпляры масштабируемого набора.
- Откройте порт 80 для трафика HTTP.
- Проверьте масштабируемый набор.
Перейдите к следующему разделу, чтобы узнать больше о концепциях балансировки нагрузки для виртуальных машин.