Как Failover работает при перезапуске Primary VM Set?
Выше приведен пример конфигурации для Azure Service Fabric.
Я создал с помощью мастера и развернул одно основное приложение Asp.net, к которому я могу получить доступ извне.
Теперь, если вы посмотрите на изображение ниже, к Service Fabric осуществляется доступ с sfclustertemp.westus2.cloudapp.azure.com. Я могу получить доступ к приложению с помощью sfclustertemp.westus2.cloudapp.azure.com/api/values.
Теперь, если я перезапущу основной набор виртуальных машин, он должен перевести нагрузку на дополнительный, и у меня возникает мысль, что это должно быть сделано автоматически, но это не так, поскольку Second Load Balancer имеет другое имя DNS. (Если я укажу другое имя днс, тогда это доступно).
Я понимаю, что cluser имеет один идентификатор, поэтому он является общим для обоих балансировщиков нагрузки.
Возможна ли такая конфигурация?
2 ответа
Существует неправильное представление о том, что такое кластер SF.
На вашей диаграмме часть, которую вы описываете слева как "Service Fabric", там не принадлежит.
Service Fabric - это не что иное, как приложения и сервисы, развернутые в узлах кластера. Когда вы создаете кластер, вы определяете тип основного узла и будете там, где Service Fabric будет развертывать сервисы, используемые для управления кластером.
Тип узла будет образован:
- Набор масштабов виртуальной машины: машины с установленными службами ОС и SF
- Балансировщик нагрузки с днс и IP, пересылающий запросы в VM Scale Set
Так что то, что вы там описали, должно быть представлено как:
NodeTypeA (Primary)
Load Balancer (cluster domain + IP)
VM Scale Set
SF management services (explorer, DNS)
Your applications
NodeTypeB
Load Balancer (other dns + IP)
VM Scale Set
Your applications
При условии:
Первая проблема заключается в том, что если основной узел выйдет из строя, вы потеряете кластер, потому что службы управления не будут доступны для управления экземплярами службы.
Второе: вам не следует полагаться на типы узлов для такого рода надежности, вы должны повысить надежность вашего кластера, добавляя больше узлов к типам узлов.
третье: если проблема связана с отключением ЦОД, вы можете:
- Создайте собственный кластер, который охватывает несколько регионов
- Добавьте обратный прокси-сервер или API-шлюз перед вашим сервисом, чтобы направить запрос, где бы он ни находился.
Возможно, вы могли бы использовать Azure Traffic Manager с датчиками состояния.
Однако вместо того, чтобы использовать несколько типов узлов для параметров переключения при перезагрузке, взгляните на " Уровни долговечности". Использование Silver или Gold приведет к тому, что перезагрузки будут выполняться последовательно на группах компьютеров (сгруппированных по домену сбоя), а не на всех сразу.
Уровень долговечности используется для указания системе привилегий, которые ваши виртуальные машины имеют с базовой инфраструктурой Azure. В типе основного узла эта привилегия позволяет Service Fabric приостанавливать любой запрос инфраструктуры уровня виртуальной машины (такой как перезагрузка виртуальной машины, перезапись виртуальной машины или миграция виртуальной машины), что влияет на требования к кворуму для системных служб и служб с сохранением состояния.