Рубрики
Uncategorized

Все, что касается средств для набора шкал трубопроводов (VMSS)

Сегодня мы рассмотрим все, что вам нужно знать, о наборных агентах в Azure … Tagged с Azurevops, Azure, DevOps, CICD.

Сегодня мы рассмотрим все, что вам нужно знать о наборных агентах, наполненных масштабами в Azure Tipвей, и о том, как их использовать, чтобы сделать ваши сборки более упругими и гибкими.

видео

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

Ссылка на видео: https://youtu.be/3oilig4i71g

Если вы предпочитаете читать, хорошо … давайте просто продолжим:)

вступление

Итак, масштабные наборные агенты в лазурных трубопроводах.

Как говорит имя, это агенты, которые вы можете установить и запускать в наборах Virtual Machine Virtual Machine или VMS.

Таким образом, они могут быть масштабированы горизонтально автоматически, чтобы сделать вашу сборку быстрее, более эластичной и в конечном итоге более гибкой.

Но Дэйв, я слышал, что вы спрашиваете, зачем мне установить свой агент по самостоятельному самостоянию в VMSS, а не использовать Azure DevOps вместо этого? Разве я не могу достичь такой же гибкости, просто добавляя больше размещенных агентов?

Ответы на эти вопросы не так очевидны. Позволь мне объяснить.

Зачем масштабировать агенты?

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

Что если вам нужно больше ресурсов, например, больше мощности процессора или оперативной памяти для операций, которые вы должны выполнять? Или что, если вам нужно установить какое -то программное обеспечение или библиотеку для создания вашего приложения?

На принимающих агентах вы не можете сделать это, не так ли?

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

Возможно, вы зависите от услуг или серверов, которые находятся в частной сети и, следовательно, не доступны из Интернета. Или все же вы можете ограничить сетевое подключение к агентам и позволить им охватить только утвержденные сайты.

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

Конечно, это если вы в Azure или у вас есть подписка на Azure. Дайте мне знать в разделе комментариев ниже, если вы используете других поставщиков, таких как GCP или AWS, и хотели бы также увидеть, как масштабировать ваших агентов на этих платформах.

Хорошо, давайте теперь посмотрим, как установить набор средств на шкале.

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

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

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

Для этого вы можете использовать этот скрипт из Azure CLI:

az vmss create \
--name YOUR_POOL_NAME \
--resource-group RES_GROUP \
--image UbuntuLTS \
--vm-sku Standard_D2_v3 \
--storage-sku StandardSSD_LRS \
--authentication-type SSH \
--instance-count 2 \
--disable-overprovision \
--upgrade-policy-mode manual \
--single-placement-group false \
--platform-fault-domain-count 1 \
--load-balancer ""

Чтобы убедиться, что это работает правильно, помните, что -disable-overprovision и -Пегрейд-политика Руководство с режимом необходимы.

О -балансир-нагрузчик "" , Azure Pipelines не требует балансировщика нагрузки для маршрутизации заданий к агентам в пуле агентов, установленных масштабами, но настройка балансировщика нагрузки является одним из способов получить IP -адрес для ваших агентов, которые вы можете использовать для правил брандмауэра.

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

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

Создайте пул агентов для масштаба, установленных в Azure DevOps

Хорошо, теперь, когда у нас установлена установлена шкала, пришло время создать пул агентов в Azure DevOps.

Для этого просто перейдите в настройки проекта (или организации), затем агенты пул, а затем нажмите «Добавить пул»

Там, выберите __Zure Virtual Machine Scale Secal _ Для типа бассейна. Затем выберите подписку Azure, которая содержит набор шкалы, выберите Авторизировать и выберите желаемую масштаб виртуальной машины, установленная из этой подписки. Если у вас есть существующее обслуживание подключения, вы можете выбрать это из списка вместо подписки.

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

Для настройки пула агентов Scale Set Secte, вы должны иметь либо Владелец или Администратор доступа пользователя Разрешения на выбранную Azure подписку. Если у вас есть одно из этих разрешений, но вы получите ошибку при выборе авторизации, это может быть связано с тем, что ваш пользователь имеет только гостевое разрешение в каталоге или что не разрешено добавлять приложения в каталог. В любом случае, поговорите со своим администратором AAD.

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

Неверная конечная точка службы с ID и Scope

Используйте агент из пула агентов Scale Sepl

Использование бассейна агентов Scale Set Agent аналогична любому другому пулу агентов. Вы можете использовать его в классическом сборке, выпуске или YAML.

Классические сборки сборки

Просто измените бассейн в вариантах пробега:

Классические выпускные трубопроводы

Измените бассейн в опциях агента:

Ямл трубопроводы

Измените раздел YAML в трубопроводе, сцене или работе:

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

Масштабирование

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

Azure Tipelines пробует состояние агентов в бассейне и виртуальные машины в шкале, установленных каждые 5 минут. Решение о масштабировании или выходе основано на количестве постоянных агентов в то время. Достаточно достаточно, агент считается простым, если он онлайн и не выполняет работу.

Когда это необходимо, Azure Tipelines выполняет операцию по масштабе, если какое -либо из следующих условий выполняется:

  • Количество простоя ниже, чем количество резервных агентов Вы указываете
  • В очереди ожидается работы трубопроводов, и в состоянии холостого хода нет агентов.

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

Говоря о масштабировании, вместо этого, Azure Tipelines масштабируется в агентах, когда количество холостовых агентов превышает количество резервного периода более 30 минут.

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

Ограничения

На момент написания, если вы создаете виртуальные машины с использованием Linux только Ubuntu, поддерживается в качестве ОС для агентов, установленных на шкале. Редхад и ДеБан не поддерживаются.

И если вы используете клиент Windows 10, он не поддерживает запуск агента трубопровода в качестве локального пользователя, и поэтому агент не может взаимодействовать с пользовательским интерфейсом. Агент будет работать как локальный сервис вместо этого.

Выводы

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

Вы также можете посмотреть это видео здесь , в котором я объясняю, как контейнерить ваши агенты Azure Tipвлинов для большей гибкости.

Мол, поделиться и следуй за мной 🚀 Для большего содержания:

📽 YouTubeКупить мне кофе 💖 Patreon 🌐 CoderDave.io Веб -сайт 👕 Мерч 👦🏻 Страница Facebook 🐱‍💻 GitHub 👲🏻 Twitter 👴🏻 LinkedIn 🔉 Подкаст

Оригинал: «https://dev.to/n3wt0n/everything-about-the-azure-pipelines-scale-set-agents-vmss-cp2»