Настройка нескольких виртуальных IP-адресов для облачной службы

Важно!

Azure Load Balancer поддерживает два типа: категории "Базовый" и "Стандартный". В этой статье рассматривается Azure Load Balancer категории "Базовый". См. дополнительные сведения в статье Обзор Azure Load Balancer уровня "Стандартный" (предварительная версия).

Доступ к облачным службам Azure через общедоступное подключение к Интернету можно получить с помощью IP-адреса, предоставляемого Azure. Этот общедоступный IP-адрес называется виртуальным IP-адресом, так как он привязан к подсистеме балансировки нагрузки Azure, а не к экземплярам виртуальной машины в облачной службе. Доступ к любому экземпляру виртуальной машины в облачной службе можно получить с помощью одного виртуального IP-адреса.

Однако существуют случаи, в которых может потребоваться несколько виртуальных IP-адресов в качестве точки входа для одной и той же облачной службы. Например, в вашей облачной службе может размещаться несколько веб-сайтов, которые требуют подключения по протоколу SSL с помощью порта 443 по умолчанию, так как каждый из веб-сайтов должен быть размещен для отдельного пользователя или клиента. В этом случае необходим отдельный общедоступный IP-адрес для каждого веб-сайта. На схеме ниже показан типичный мультитенантный веб-хостинг, требующий несколько сертификатов SSL для одного и того же общедоступного порта.

Сценарий SSL с несколькими виртуальными IP-адресами

В приведенном выше примере все виртуальные IP-адреса используют один и тот же общедоступный порт (443), а трафик перенаправляется на одну или несколько виртуальных машин с балансировкой нагрузки по уникальному частному порту для внутреннего IP-адреса облачной службы, в которой размещены все веб-сайты.

Примечание

Другой вариант использования нескольких виртуальных IP-адресов заключается в размещении нескольких прослушивателей группы доступности SQL AlwaysOn в одном и том же наборе виртуальных машин.

Виртуальные IP-адреса динамичны по умолчанию. Это означает, что фактический IP-адрес, назначенный облачной службе, может со временем измениться. Чтобы избежать этого, можно зарезервировать виртуальный IP-адрес для службы. Дополнительную информацию о зарезервированных виртуальных IP-адресах см. в статье Обзор зарезервированных IP-адресов.

Примечание

Информацию о ценах на виртуальные IP-адреса и зарезервированные IP-адреса см. на странице Цены на IP-адреса.

Вы можете использовать PowerShell для проверки виртуальных IP-адресов, используемых облачной службой, а также добавления и удаления виртуальных IP-адресов, привязки виртуального IP-адреса к конечной точке и настройки балансировки нагрузки для конкретного виртуального IP-адреса.

Ограничения

В настоящее время функциональность нескольких виртуальных IP-адресов ограничена следующими сценариями.

  • Только IaaS. Вы можете включить несколько виртуальных IP-адресов для облачных служб, содержащих виртуальные машины. Нельзя использовать несколько виртуальных IP-адресов в сценариях PaaS с экземплярами ролей.
  • Только PowerShell. Несколькими виртуальными IP-адресами можно управлять только с помощью PowerShell.

Эти ограничения являются временными и могут измениться в любое время. Обязательно вернитесь на эту страницу, чтобы проверить будущие изменения.

Как добавить виртуальный IP-адрес в облачную службу

Чтобы добавить виртуальный IP-адрес в службу, выполните следующую команду PowerShell:

Add-AzureVirtualIP -VirtualIPName Vip3 -ServiceName myService

Эта команда отображает примерно такой результат:

OperationDescription OperationId                          OperationStatus
-------------------- -----------                          ---------------
Add-AzureVirtualIP   4bd7b638-d2e7-216f-ba38-5221233d70ce Succeeded

Как удалить виртуальный IP-адрес из облачной службы

Чтобы удалить виртуальный IP-адрес, добавленный в службу в примере выше, выполните следующую команду PowerShell:

Remove-AzureVirtualIP -VirtualIPName Vip3 -ServiceName myService

Важно!

Виртуальный IP-адрес можно удалить только в том случае, если с ним не связаны конечные точки.

Как получить данные о виртуальном IP-адресе из облачной службы

Чтобы получить виртуальный IP-адрес, связанный с облачной службой, выполните следующий сценарий PowerShell:

$deployment = Get-AzureDeployment -ServiceName myService
$deployment.VirtualIPs

Сценарий отображает примерно такой результат:

Address         : 191.238.74.148
IsDnsProgrammed : True
Name            : Vip1
ReservedIPName  :
ExtensionData   :

Address         :
IsDnsProgrammed :
Name            : Vip2
ReservedIPName  :
ExtensionData   :

Address         :
IsDnsProgrammed :
Name            : Vip3
ReservedIPName  :
ExtensionData   :

В этом примере облачная служба имеет 3 виртуальных IP-адреса:

  • Vip1 — виртуальный IP-адрес по умолчанию, так как для параметра IsDnsProgrammedName задано значение true;
  • Vip2 и Vip3 не используются, так как они не имеют IP-адресов. Они будут использоваться, только если связать конечную точку с виртуальным IP-адресом.

Примечание

За использование дополнительных виртуальных IP-адресов в подписке начнет взиматься плата, когда они будут связаны с конечной точкой. Дополнительную информацию о ценах см. на странице Цены на IP-адреса.

Как привязать виртуальный IP-адрес к конечной точке

Чтобы связать виртуальный IP-адрес в облачной службе с конечной точкой, выполните следующую команду PowerShell:

Get-AzureVM -ServiceName myService -Name myVM1 |
    Add-AzureEndpoint -Name myEndpoint -Protocol tcp -LocalPort 8080 -PublicPort 80 -VirtualIPName Vip2 |
    Update-AzureVM

Эта команда создает конечную точку, связанную с виртуальным IP-адресом, с именем Vip2 на порте 80 и связывает ее с виртуальной машиной с именем myVM1 в облачной службе с именем myService с помощью TCP на порте 8080.

Чтобы проверить конфигурацию, выполните следующую команду PowerShell:

$deployment = Get-AzureDeployment -ServiceName myService
$deployment.VirtualIPs

Результат должен быть аналогичным приведенному ниже:

Address         : 191.238.74.148
IsDnsProgrammed : True
Name            : Vip1
ReservedIPName  :
ExtensionData   :

Address         : 191.238.74.13
IsDnsProgrammed :
Name            : Vip2
ReservedIPName  :
ExtensionData   :

Address         :
IsDnsProgrammed :
Name            : Vip3
ReservedIPName  :
ExtensionData   :

Как включить балансировку нагрузки в конкретном виртуальном IP-адресе

Вы можете связать один виртуальный IP-адрес с несколькими виртуальными машинами для балансировки нагрузки. Например, у вас есть облачная служба с именем myService и две виртуальные машины с именами myVM1 и myVM2. Облачная служба имеет несколько виртуальных IP-адресов, имя одного из которых — Vip2. Если вы хотите убедиться, что весь трафик порта 81 по адресу Vip2 распределяется между myVM1 и myVM2 на порте 8181, выполните следующий сценарий PowerShell:

Get-AzureVM -ServiceName myService -Name myVM1 |
    Add-AzureEndpoint -Name myEndpoint -LoadBalancedEndpointSetName myLBSet -Protocol tcp -LocalPort 8181 -PublicPort 81 -VirtualIPName Vip2 -DefaultProbe |
    Update-AzureVM

Get-AzureVM -ServiceName myService -Name myVM2 |
    Add-AzureEndpoint -Name myEndpoint -LoadBalancedEndpointSetName myLBSet -Protocol tcp -LocalPort 8181 -PublicPort 81 -VirtualIPName Vip2  -DefaultProbe |
    Update-AzureVM

Вы можете также обновить подсистему балансировки нагрузки, чтобы использовать другой виртуальный IP-адрес. Например, если выполнить следующую команду PowerShell, набор балансировки нагрузки станет использовать виртуальный IP-адрес с именем Vip1:

Set-AzureLoadBalancedEndpoint -ServiceName myService -LBSetName myLBSet -VirtualIPName Vip1

Next Steps

Журналы Azure Monitor для Azure Load Balance

Обзор подсистемы балансировки нагрузки, доступной в Интернете

Приступая к работе с подсистемой балансировки нагрузки, доступной в Интернете

Обзор виртуальной сети

API REST зарезервированных IP-адресов