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


Открытие портов для кластера Service Fabric

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

Подсистема балансировки нагрузки автоматически создается при развертывании кластера Service Fabric в Azure. Если у вас нет подсистемы балансировки нагрузки, ознакомьтесь с разделом Создание балансировщика нагрузки для Интернета на портале Azure.

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Настройка Service Fabric

Файл конфигурации ServiceManifest.xml приложения Service Fabric определяет конечные точки, которые будет использовать приложение. После обновления файла конфигурации для определения конечной точки необходимо обновить подсистему балансировки нагрузки, чтобы предоставить этот (или другой) порт. Дополнительные сведения о том, как создать конечную точку Service Fabric, см. в разделе Указание ресурсов в манифесте службы.

Создание правила подсистемы балансировки нагрузки

Правило Load Balancer открывает порт с доступом к Интернету и перенаправляет трафик на порт внутреннего узла, используемый вашим приложением. Если у вас нет подсистемы балансировки нагрузки, ознакомьтесь с разделом Создание балансировщика нагрузки для Интернета на портале Azure.

Чтобы создать правило Load Balancer, необходимо собрать следующие сведения:

  • имя подсистемы балансировки нагрузки;
  • группа ресурсов подсистемы балансировки нагрузки и кластера Service Fabric;
  • внешний порт;
  • внутренний порт.

Azure CLI

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

Примечание.

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

az network lb list --query "[].{ResourceGroup: resourceGroup, Name: name}"

az network lb rule create --backend-port 40000 --frontend-port 39999 --protocol Tcp --lb-name LB-svcfab3 -g svcfab_cli -n my-app-rule

В команде Azure CLI используется несколько параметров, которые описаны в следующей таблице.

Параметр Описание
--backend-port Порт, через который приложение Service Fabric ожидает передачи данных.
--frontend-port Порт, который подсистема балансировки нагрузки предоставляет для внешних подключений.
-lb-name Имя изменяемой подсистемы балансировки нагрузки.
-g Группа ресурсов, содержащая подсистему балансировки нагрузки и кластер Service Fabric.
-n Выбранное имя правила.

Примечание.

Дополнительные сведения о создании подсистемы балансировки нагрузки с помощью Azure CLI см. в разделе Создание балансировщика нагрузки для Интернета с помощью Azure CLI.

PowerShell

PowerShell немного сложнее в использовании, чем Azure CLI. Чтобы создать правило, сделайте следующее:

  1. Получите подсистему балансировки нагрузки из Azure.
  2. Создайте правило.
  3. Добавьте в подсистему балансировки нагрузки правило.
  4. Обновите подсистему балансировки нагрузки.

Примечание.

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

Get-AzLoadBalancer | Select Name, ResourceGroupName

# Get the load balancer
$lb = Get-AzLoadBalancer -Name LB-svcfab3 -ResourceGroupName svcfab_cli

# Create the rule based on information from the load balancer.
$lbrule = New-AzLoadBalancerRuleConfig -Name my-app-rule7 -Protocol Tcp -FrontendPort 39990 -BackendPort 40009 `
                                            -FrontendIpConfiguration $lb.FrontendIpConfigurations[0] `
                                            -BackendAddressPool  $lb.BackendAddressPools[0] `
                                            -Probe $lb.Probes[0]

# Add the rule to the load balancer
$lb.LoadBalancingRules.Add($lbrule)

# Update the load balancer on Azure
$lb | Set-AzLoadBalancer

В команде New-AzLoadBalancerRuleConfig-FrontendPort представляет порт, который подсистема балансировки нагрузки предоставляет для внешних подключений, а -BackendPort представляет порт, через который приложение Service Fabric ожидает передачи данных.

Примечание.

Дополнительные сведения о создании подсистемы балансировки нагрузки с помощью PowerShell см. в разделе Создание балансировщика нагрузки для Интернета в Resource Manager с помощью PowerShell.

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

См. дополнительные сведения о параметрах сети в Service Fabric.