Руководство. Создание масштабируемого набора виртуальных машин и развертывание высокодоступного приложения в Linux

Область применения: ✔️ Виртуальные машины Linux ✔️ Универсальные масштабируемые наборы

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

В этом руководстве вы развернете масштабируемый набор виртуальных машин в Azure и узнаете, как:

  • Создайте группу ресурсов.
  • Создайте гибкий масштабируемый набор с использованием подсистемы балансировки нагрузки.
  • Добавьте nginx в экземпляры масштабируемого набора.
  • Откройте порт 80 для трафика HTTP.
  • Проверьте масштабируемый набор.

Обзор масштабируемого набора

Масштабируемые наборы предоставляют ряд таких основных преимуществ:

  • Простота создания множества виртуальных машин и управления ими
  • Высокая доступность и устойчивость приложений за счет распределения виртуальных машин между доменами сбоя
  • При изменении спроса на ресурсы приложение может автоматически масштабироваться
  • Поддержка работы в большом масштабе

Благодаря гибкой оркестрации Azure предоставляет унифицированный интерфейс экосистемы виртуальных машин Azure. Гибкая оркестрация предлагает гарантии высокого уровня доступности (до 1000 виртуальных машин), распределяя виртуальные машины между доменами сбоя в регионе или в зоне доступности. Это позволяет масштабировать приложение, сохраняя изоляцию доменов сбоя, которая необходима для выполнения рабочих нагрузок на основе кворума или с отслеживанием состояния, в том числе для следующих:

  • Рабочие нагрузки на основе кворума
  • Базы данных с открытым кодом
  • Приложения с отслеживанием состояния
  • Службы, требующие высокой доступности и масштабирования
  • Службы, которые собираются сочетать типы ВМ разных типов или использовать точечные виртуальные машины и ВМ по запросу
  • Существующие приложения группы доступности

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

Создание масштабируемого набора

Чтобы создать гибкий масштабируемый набор, используйте портал Azure.

  1. Откройте портал Azure.
  2. Найдите и выберите Масштабируемый набор виртуальных машин.
  3. Выберите Создать на странице Масштабируемые наборы виртуальных машин. Откроется окно Создание масштабируемого набора виртуальных машин.
  4. В поле Подписка выберите подписку, которую вы хотите использовать.
  5. В поле Группа ресурсов щелкните Создать, введите имя myVMSSRG и нажмите кнопку ОК. Сведения о проекте.
  6. В поле Имя масштабируемого набора виртуальных машин введите myVMSS.
  7. В поле Регион выберите ближайший регион, например Восточная часть США. Имя и регион.
  8. Оставьте в этом примере поле Зона доступности пустым.
  9. В качестве режима оркестрации выберите вариант Гибкий.
  10. Для параметра Образ выберите Ubuntu 18.04 LTS.
  11. Для параметра Размер оставьте значение по умолчанию или выберите размер, например Standard_E2s_V3.
  12. В поле Имя пользователя введите azureuser.
  13. Для параметра Источник открытого ключа SSH оставьте значение по умолчанию Создать новую пару ключей, а затем введите myKey в поле Имя пары ключей. Снимок экрана с разделом учетной записи администратора, в котором вы выбираете тип аутентификации и указываете учетные данные администратора.
  14. На вкладке Сеть в разделе Балансировка нагрузки выберите Используйте подсистему балансировки нагрузки.
  15. Для элемента Параметры балансировки нагрузки оставьте значение по умолчанию Azure Load Balancer.
  16. Для параметра Выберите подсистему балансировки нагрузки щелкните Создать. Параметры подсистемы балансировки нагрузки.
  17. На странице Создание подсистемы балансировки нагрузки введите имя для подсистемы балансировки нагрузки и поля Имя общедоступного IP-адреса.
  18. В поле Метка доменного имени введите имя, которое будет использоваться в качестве префикса для доменного имени. Имя должно быть уникальным.
  19. Когда все будет готово, выберите Создать. Создание подсистемы балансировки нагрузки.
  20. Вернитесь на вкладку Сеть и оставьте имя серверного пула по умолчанию.
  21. На вкладке Масштаб оставьте число экземпляров по умолчанию равное 2 или добавьте собственное значение. Это количество создаваемых виртуальных машин, поэтому при изменении этого значения учитывайте затраты и ограничения подписки.
  22. Оставьте для параметра Scaling policy (Политика масштабирования) значение Вручную. Параметры политики масштабирования.
  23. Откройте вкладку Дополнительно .
  24. В разделе 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
    
  25. Когда все будет готово, выберите Просмотр и создание.
  26. Как только вы увидите, что проверка пройдена, можно выбрать Создать в нижней части страницы, чтобы развернуть масштабируемый набор.
  27. Когда откроется окно Создать новую пару ключей, выберите Download private key and create resource (Скачать закрытый ключ и создать ресурс). Файл ключа будет скачан в таком виде: myKey.pem. Убедитесь, что вы знаете, где .pem был скачан файл, и вам потребуется путь к нему на следующем шаге.
  28. Когда развертывание будет завершено, выберите Перейти к ресурсу, чтобы увидеть масштабируемый набор.

Просмотр виртуальных машин в масштабируемом наборе

На странице масштабируемого набора в меню слева выберите Экземпляры.

Вы увидите список виртуальных машин, которые являются частью масштабируемого набора. В этот список входят:

  • Имя виртуальной машины
  • Имя компьютера, используемое виртуальной машиной.
  • Текущее состояние виртуальной машины, например Работает.
  • Состояние подготовки виртуальной машины, например Успешно.

Таблица сведений об экземплярах масштабируемого набора.

Открытие порта 80

Откройте порт 80 в масштабируемом наборе, добавив правило входящего трафика в группу безопасности сети (NSG).

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

Проверка масштабируемого набора

Протестируйте масштабируемый набор, подключившись к нему из браузера.

  1. На странице Обзор вашего масштабируемого набора скопируйте общедоступный IP-адрес.
  2. Откройте другую вкладку в браузере и вставьте этот IP-адрес в адресную строку.
  3. Когда страница загрузится, запишите отображаемое имя компьютера.
  4. Обновите страницу, чтобы увидеть, изменилось ли имя компьютера.

Удаление масштабируемого набора

По завершении следует удалить группу ресурсов, которая удалит все, что вы развернули для масштабируемого набора.

  1. На странице масштабируемого набора выберите пункт Группа ресурсов. Откроется страница для вашей группы ресурсов.
  2. В верхней части страницы выберите Удалить группу ресурсов.
  3. На странице Вы действительно хотите удалить введите имя группы ресурсов, а затем выберите Удалить.

Дальнейшие действия

В этом руководстве вы создали масштабируемый набор виртуальных машин. Вы ознакомились с выполнением следующих задач:

  • Создайте группу ресурсов.
  • Создайте гибкий масштабируемый набор с использованием подсистемы балансировки нагрузки.
  • Добавьте nginx в экземпляры масштабируемого набора.
  • Откройте порт 80 для трафика HTTP.
  • Проверьте масштабируемый набор.

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