Сети

При создании кластеров Azure Service Fabric и управлении ими вы предоставляете сетевое подключение для узлов и приложений. Сетевые ресурсы включают диапазоны IP-адресов, виртуальные сети, подсистемы балансировки нагрузки и группы безопасности сети. В этой статье описаны рекомендации по этим ресурсам.

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

Сеть инфраструктуры

Увеличьте производительность виртуальной машины с помощью ускоренной сети, объявив свойство enableAcceleratedNetworking в шаблоне Resource Manager, следующий фрагмент кода — это набор масштабируемых наборов виртуальных машин NetworkInterfaceConfigurations, который обеспечивает ускорение сети:

"networkInterfaceConfigurations": [
  {
    "name": "[concat(variables('nicName'), '-0')]",
    "properties": {
      "enableAcceleratedNetworking": true,
      "ipConfigurations": [
        {
        <snip>
        }
      ],
      "primary": true
    }
  }
]

Кластер Service Fabric можно подготовить на Linux с ускоренной сетью и Windows с ускоренной сетью.

Ускоренные сетевые подключения поддерживаются для конфигураций SKU серии виртуальных машин Azure: D/DSv2, D/DSv3, E/ESv3, F/FS, FSv2 и Ms/Mms. Ускоренная сеть была успешно протестирована с использованием SKU Standard_DS8_v3 23.01.2019 для кластера Windows Service Fabric и с использованием Standard_DS12_v2 29.01.2019 для кластера Linux Service Fabric. Для ускорения сети требуется не менее 4 виртуальных ЦП.

Чтобы включить ускорение сети в существующем кластере Service Fabric, необходимо сначала масштабировать кластер Service Fabric, добавив масштабируемый набор виртуальных машин, чтобы выполнить следующие действия.

  1. Настроить NodeType с включенной поддержкой ускорения сети
  2. Переносите ваши службы и их состояние в подготовленный тип узла с включенной поддержкой ускоренной сети.

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

Сеть кластера

  • Кластеры Service Fabric можно развернуть в существующей виртуальной сети, выполнив действия, описанные в шаблонах сети Service Fabric.

  • Группы безопасности сети (NSG) рекомендуются для типов узлов, чтобы ограничить входящий и исходящий трафик в кластер. Убедитесь, что в группе безопасности сети (NSG) открыты необходимые порты.

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

  • Используйте статический общедоступный IP-адрес для кластера.

Правила безопасности сети

Описанные далее правила — это рекомендуемый минимум для типичной конфигурации. Мы также включаем правила, которые являются обязательными для операционного кластера, если необязательные правила не нужны. Это позволяет полное закрытие системы безопасности с использованием сетевого пиринга и концепций прыжкового сервера, таких как Azure Bastion. Если не удастся открыть обязательные порты или утвердить IP/URL-адрес, это предотвратит правильную работу кластера и может не поддерживаться.

Входящий трафик

Приоритет Имя Порт Протокол Источник Назначение Действие Обязательно
3900 Портал Azure 19080 Протокол tcp ServiceFabric Любое Разрешить Да
3910 Клиентский API 19000 Протокол tcp Интернет Любое Разрешить нет
3920 SFX + Клиентский API 19080 Протокол tcp Интернет Любое Разрешить нет
3930 Кластер 1025-1027 Протокол tcp Виртуальная сеть Любое Разрешить Да
3940 Эфемерный 49152–65534 Протокол tcp Виртуальная сеть Любое Разрешить Да
3950 Заявление 20000-30000 Протокол tcp Виртуальная сеть Любое Разрешить Да
3960 Протокол удалённого рабочего стола (RDP) 3389 Протокол tcp Интернет Любое Отрицать нет
3970 SSH двадцать два Протокол tcp Интернет Любое Отрицать нет
3980 Настраиваемая конечная точка 443 Протокол tcp Интернет Любое Отрицать нет

Дополнительные сведения о правилах безопасности для входящего трафика:

  • Портал Azure. Этот порт используется поставщиком ресурсов Service Fabric для запроса сведений о кластере для отображения на портале управления Azure. Если этот порт недоступен для Поставщика ресурсов Service Fabric, в портале Azure появится сообщение, например, "Узлы не найдены" или "UpgradeServiceNotReachable", и ваш список узлов и приложений будет пуст. Это означает, что если вы хотите получить видимость кластера на портале управления Azure, подсистема балансировки нагрузки должна предоставить общедоступный IP-адрес, а группа безопасности сети должна разрешить входящий трафик 19080. Этот порт рекомендуется для расширенных операций управления от поставщика ресурсов Service Fabric, чтобы гарантировать более высокую надежность.

  • Клиент API: конечная точка подключения API клиента, используемых PowerShell.

  • SFX + Клиентский API: этот порт используется Service Fabric Explorer для просмотра и управления кластером. Он используется наиболее распространенными API, такими как REST/PowerShell (Microsoft.ServiceFabric.PowerShell.Http)/CLI/.NET таким же образом.

  • Кластер: используется для обмена данными между узлами.

  • Эфемерный: Service Fabric использует часть этих портов в качестве портов приложений, а остальные доступны для ОС. Он также сопоставляет этот диапазон с существующим диапазоном, присутствующих в ОС, поэтому для всех целей можно использовать диапазоны, указанные в примере здесь. Убедитесь, что разница между начальным и конечным портами составляет не менее 255. Если эта разница слишком мала, могут возникнуть конфликты, так как этот диапазон используется ОС. Чтобы просмотреть настроенный динамический диапазон портов, выполните netsh int ipv4 show dynamicport tcp. Эти порты не нужны для кластеров Linux.

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

  • RDP: Необязательно, если для джамп-бокса требуется RDP из Интернета или VirtualNetwork.

  • SSH: необязательно, если требуется доступ по SSH из Интернета или «VirtualNetwork» для сценариев «jumpbox».

  • Настраиваемая конечная точка: пример приложения для включения конечной точки, доступной в Интернете.

Примечание.

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

Исходящие

Приоритет Имя Порт Протокол Источник Назначение Действие Обязательно
4010 Поставщик ресурсов 443 Протокол tcp Любое ServiceFabric Разрешить Да
4020 Скачивание двоичных файлов 443 Протокол tcp Любое AzureFrontDoor.FirstParty Разрешить Да

Дополнительные сведения о правилах безопасности для исходящего трафика:

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

  • Скачайте двоичные файлы: служба обновления использует адрес download.microsoft.com для получения двоичных файлов, эта связь необходима для установки, повторного образа и обновления среды выполнения. В сценарии "только внутреннего" балансировщика нагрузки, дополнительный внешний балансировщик нагрузки должен быть добавлен по правилу, которое разрешает исходящий трафик для порта 443. При необходимости этот порт может быть заблокирован после успешной установки, но в этом случае пакет обновления должен распространяться на узлы или порт должен быть открыт в течение короткого периода времени, после чего требуется обновление вручную.

Используйте брандмауэр Azure с журналом потоков NSG и аналитикой трафика для отслеживания проблем с подключением. Шаблон ARM Service Fabric с NSG является хорошим примером для начала.

Примечание.

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

Распространенные сценарии, требующие дополнительных правил

Все дополнительные сценарии можно охватывать тегами службы Azure.

Ограничение исходящего трафика

Для некоторых клиентов правила NSG по умолчанию, описанные выше, не достаточно для удовлетворения требований к безопасности сети. Например, обычное требование, которое не предоставляется по умолчанию, заключается в блокировке исходящего трафика в Интернет. Для этого клиенты могут применять правила NSG на основе справочной таблицы ниже, чтобы ограничить исходящий трафик при сохранении основных функциональных возможностей кластера. Эти правила можно применять как к классическим, так и к управляемым кластерам. Для управляемых кластеров убедитесь, что они не переопределяют встроенные правила (с префиксом SFMC-).

Примечание.

Приведенная ниже таблица предназначена только для использования в качестве ссылки.

Приоритет Имя Порт Протокол Источник Назначение Действие
1000 AllowSFRP Любое Любое Любое ServiceFabric Разрешить
1001 РазрешитьХранение Любое Любое Любое Storage Разрешить
1002 Разрешить IMS Любое Любое Любое 169.254.169.254/32 Разрешить
1003 AllowVIP Любое Любое Любое 168.63.129.16/32 Разрешить
1004 AllowNTP (разрешить NTP) 123 Любое Любое AzureCloud Разрешить
1005 РазрешитьCRL 80 Любое Любое Интернет Разрешить
2000 ЗапретитьИнтернет Любое Любое Любое Интернет Отрицать
65000 Разрешить исходящий трафик Vnet Любое Любое Виртуальная сеть Виртуальная сеть Разрешить
65001 РазрешитьИсходящийИнтернетТрафик Любое Любое Любое Интернет Разрешить
65500 DenyAllOutBound Любое Любое Любое Любое Отрицать
  • AllowSFRP: разрешить кластеру взаимодействовать с поставщиком ресурсов Service Fabric.
  • AllowStorage: разрешить кластеру взаимодействовать с учетными записями хранения.
  • AllowIMS: разрешить службу метаданных экземпляра Azure.
  • AllowVIP: разрешить обмен данными с ресурсами Azure.
  • AllowNTP: разрешить протокол сетевого времени.
  • AllowCRL: разрешить проверку списка отзыва сертификатов кластера.
  • DenyInternet: блокировка исходящего трафика в Интернет.

Azure DevOps

Классические задачи PowerShell в Azure DevOps (тег службы: AzureCloud) нуждаются в доступе к клиентскому API кластера, например развертывания приложений или операционных задач. Это не относится только к подходу к шаблонам ARM, включая ресурсы приложения ARM.

Приоритет Имя Порт Протокол Источник Назначение Действие Направление
3915 Azure DevOps 19000 Протокол tcp AzureCloud Любое Разрешить Входящий трафик

Обновление Windows

Лучшей практикой для исправления операционной системы Windows является замена диска операционной системы автоматическими обновлениями образа операционной системы. Дополнительное правило не требуется. Приложение оркестровки обновлений управляет in-VM обновлениями, в которых обновления Windows применяют патчи операционной системы; для скачивания бинарных файлов обновления требуется доступ к Центру загрузки (тег службы: AzureUpdateDelivery).

Приоритет Имя Порт Протокол Источник Назначение Действие Направление
4015 Windows Обновления 443 Протокол tcp Любое Доставка обновлений Azure Разрешить Исходящие

Управление API

Интеграция управления API Azure (тег службы: ApiManagement) требует доступа к клиентскому API для запроса сведений о конечной точке из кластера.

Приоритет Имя Порт Протокол Источник Назначение Действие Направление
3920 Управление API 19080 Протокол tcp Управление API Любое Разрешить Входящий трафик

Сеть приложений

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

  • Используйте обратный прокси-сервер, например Traefik или обратный прокси-сервер Service Fabric , чтобы предоставить общие порты приложений, такие как 80 или 443.

  • Для контейнеров Windows, размещенных на компьютерах, на которых не удается загрузить базовые слои из облачного хранилища Azure, переопределите поведение чужих слоев с помощью флага --allow-nondistributable-artifacts в управляющей программе Docker.

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