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


Масштабирование автономных кластеров Service Fabric

Кластер Service Fabric — это подключенный к сети набор виртуальных машин или физических компьютеров, в котором вы развертываете микрослужбы и управляете ими. компьютер или виртуальная машина, которая входит в состав кластера, называется узлом. Кластеры могут содержать тысячи узлов. После создания кластера Service Fabric можно масштабировать кластер горизонтально (изменение количества узлов) и вертикально (изменение ресурсов узлов). Кластер можно масштабировать в любое время, даже когда в нем выполняются рабочие нагрузки. Вместе с кластером автоматически масштабируются ваши приложения.

Зачем нужно масштабировать кластер? Требования приложения со временем изменяются. Вам может понадобиться увеличить ресурсы кластера, чтобы удовлетворить повышенную рабочую нагрузку на приложения и высокий трафик, или уменьшить ресурсы кластера при снижении спроса.

Свертывание и развертывание (горизонтальное масштабирование)

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

  • Преимущества: теоретически бесконечные возможности масштабирования. Если приложение предназначено для обеспечения масштабируемости, можно увеличивать размер без ограничений путем добавления дополнительных узлов. Инструментарий в облачных средах позволяет легко добавлять и удалять узлы, поэтому можно легко изменить емкость и платить только за используемые ресурсы.
  • Недостатки: приложения должны быть предназначены для масштабируемости. В связи с этим может также потребоваться дополнительная работа с архитектурой для баз данных приложений и обеспечения сохраняемости. Однако надежные коллекции в службах Service Fabric с отслеживанием состояния значительно упрощают масштабирование данных приложения.

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

При удалении узлов может выполниться несколько обновлений. Некоторые узлы будут отмечены тегом IsSeedNode=”true”. Их можно определить, запросив манифест кластера с использованием Get-ServiceFabricClusterManifest. Удаление таких узлов может занимать больше времени, чем других, так как в таких сценариях начальные узлы придется перемещать. Кластер должен поддерживать как минимум три первичных узла.

Предупреждение

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

При масштабировании автономного кластера учитывайте следующие рекомендации:

  • Замену основных узлов следует выполнять последовательно, вместо того чтобы удалять, а затем добавлять их массово.
  • Прежде чем удалить тип узла, проверьте, нет ли узлов, которые ссылаются на этот тип. Перед удалением соответствующего типа узла удалите эти узлы. После удаления всех соответствующих узлов NodeType можно удалить из конфигурации кластера и начать обновление конфигурации с помощью ServiceFabricClusterConfigurationUpgrade.

Дополнительные сведения см. в статье Добавление узлов в автономный кластер Service Fabric под управлением Windows Server или удаление узлов из него.

Увеличение и уменьшение масштаба (вертикальное масштабирование)

При таком масштабировании изменяются ресурсы (ЦП, память и хранилище) узлов кластера.

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

Следующие шаги