Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При создании кластеров 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, добавив масштабируемый набор виртуальных машин, чтобы выполнить следующие действия.
- Настроить NodeType с включенной поддержкой ускорения сети
- Переносите ваши службы и их состояние в подготовленный тип узла с включенной поддержкой ускоренной сети.
Масштабирование инфраструктуры требуется для включения ускорения сети в существующем кластере, так как включение ускорения сети на месте приведет к простою, так как для всех виртуальных машин в группе доступности необходимо остановить и освободиться перед включением ускорения сети на любом существующем сетевом адаптере.
Сеть кластера
Кластеры 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.
Дальнейшие действия
- Создайте кластер на виртуальных машинах или компьютерах, работающих под управлением Windows Server: создание кластера Service Fabric для Windows Server
- Создание кластера на виртуальных машинах или компьютерах на Linux: создание кластера Linux
- Сведения о вариантах поддержки Service Fabric