Планирование виртуальной сети для Azure HDInsight
Статья содержит общие сведения об использовании виртуальных сетей Azure с Azure HDInsight. В ней также объясняется, какие решения по проектированию и реализации нужно принять перед тем, как организовать виртуальную сеть для кластера HDInsight. Завершив планирование, вы можете перейти к созданию виртуальных сетей для кластеров Azure HDInsight. Подробнее об IP-адресах управления HDInsight, которые необходимы для настройки групп безопасности сети (NSG) и определяемых пользователем маршрутов, читайте в статье IP-адреса управления HDInsight.
Виртуальная сеть Azure обеспечивает реализацию следующих сценариев:
- Подключение к HDInsight непосредственно из локальной сети.
- Подключение к хранилищам данных HDInsight в виртуальной сети Azure.
- Прямой доступ к службам Apache Hadoop, недоступным из Интернета. Например, возможность напрямую работать с API Apache Kafka или использовать API Java для Apache HBase.
Внимание
При создании кластера HDInsight в виртуальной сети формируется ряд сетевых ресурсов, таких как сетевые карты и подсистемы балансировки нагрузки. Не удаляйте или не изменяйте эти сетевые ресурсы, так как они необходимы для правильной работы кластера с виртуальной сетью.
Планирование
Ниже перечислены вопросы, на которые необходимо ответить, если планируется установка HDInsight в виртуальной сети.
Необходимо ли установить HDInsight в существующей виртуальной сети? Или вы создаете новую сеть?
Если вы используете существующую виртуальную сеть, вам может потребоваться изменить ее конфигурацию перед установкой HDInsight. Дополнительные сведения см. в добавленном hdInsight в существующем разделе виртуальной сети .
Необходимо ли подключить виртуальную сеть, содержащую HDInsight, к другой виртуальной сети или к локальной сети?
Для удобства работы с ресурсами в сетях может потребоваться создать пользовательский DNS-сервер и настроить переадресацию DNS. Дополнительные сведения см. в разделе Подключение нескольких сетей.
Необходимо ли ограничить/перенаправить входящий или исходящий трафик в HDInsight?
Для HDInsight требуется неограниченная связь с определенными IP-адресами в центре обработки данных Azure. Существует несколько портов, которые следует разрешить в брандмауэрах для взаимодействия с клиентами. См. статью Управление сетевым трафиком.
Добавление HDInsight в существующую виртуальную сеть
Следуйте инструкциям в этом разделе, чтобы узнать, как добавить новый кластер HDInsight в существующую виртуальную сеть Azure.
Примечание.
- В виртуальную сеть невозможно добавить существующий кластер HDInsight.
- Виртуальная сеть и создаваемый кластер должны входить в одну подписку.
Какая модель используется для развертывания виртуальной сети: классическая модель или развертывание с помощью диспетчера ресурсов?
Для HDInsight 3.4 и более поздней версии требуется виртуальная сеть диспетчера ресурсов. Для работы более ранних версий HDInsight требовалась классическая виртуальная сеть.
Если существующая сеть является классической виртуальной сетью, необходимо создать виртуальную сеть диспетчера ресурсов и затем соединить их друг с другом. Подключение виртуальных сетей из разных моделей развертывания с помощью портала.
После присоединения экземпляр HDInsight, который установлен в сети диспетчера ресурсов, может взаимодействовать с ресурсами в классической сети.
Применяются ли группы безопасности сети, определяемые пользователем маршруты или виртуальные сетевые устройства для ограничения входящего или исходящего трафика виртуальной сети?
Поскольку HDInsight является управляемой службой, ей требуется неограниченный доступ к нескольким IP-адресам в центре обработки данных Azure. Чтобы разрешить взаимодействие с этими IP-адресами, обновите существующие группы безопасности сети и определяемые пользователем маршруты.
HDInsight размещает несколько служб, которые используют различные порты. Не блокируйте трафик на этих портах. Список портов, трафик через которые следует разрешить на межсетевых экранах виртуального устройства, см. в разделе "Безопасность".
Чтобы найти существующую конфигурацию безопасности, используйте следующие команды Azure PowerShell или Azure CLI:
Группы безопасности сети
Замените
RESOURCEGROUP
на имя группы ресурсов, которая содержит виртуальную сеть Azure, а затем введите указанную ниже команду.Get-AzNetworkSecurityGroup -ResourceGroupName "RESOURCEGROUP"
az network nsg list --resource-group RESOURCEGROUP
Дополнительные сведения см . в документе "Устранение неполадок групп безопасности сети".
Внимание
Правила группы безопасности сети применяются в порядке, основанном на приоритете правила. Применяется первое правило, которое соответствует шаблону трафика; другие правила не применяются к этому трафику. Правила применяются в следующем порядке: от правила с максимальными разрешениями к правилу с минимальными разрешениями. Дополнительные сведения см. в документе Фильтрация сетевого трафика с помощью групп безопасности сети.
Определяемые пользователем маршруты
Замените
RESOURCEGROUP
на имя группы ресурсов, которая содержит виртуальную сеть Azure, а затем введите указанную ниже команду.Get-AzRouteTable -ResourceGroupName "RESOURCEGROUP"
az network route-table list --resource-group RESOURCEGROUP
Дополнительные сведения см. в документе о проблеме диагностики маршрутизации виртуальных машин.
Создайте кластер HDInsight и выберите виртуальная сеть Azure во время настройки. Следуйте инструкциям в следующих документах, чтобы понять процесс создания кластера:
- Создание кластера HDInsight с использованием портала Azure
- Создание кластера HDInsight с использованием Azure PowerShell
- Создание кластеров HDInsight с помощью интерфейса командной строки Azure
- Создание кластеров Hadoop в HDInsight с помощью шаблонов Resource Manager
Внимание
Добавление кластера HDInsight в виртуальную сеть — это необязательный шаг настройки. При настройке кластера не забудьте выбрать виртуальную сеть.
Подключение нескольких сетей
Самая сложная задача в конфигурации с несколькими сетями — это разрешение имен между сетями.
Azure предоставляет разрешение имен для служб Azure, установленных в виртуальной сети. Эта встроенная функция разрешения имен позволяет HDInsight подключаться к следующим ресурсам с помощью полного доменного имени (FQDN):
любые ресурсы, доступные в Интернете; например, microsoft.com, windowsupdate.com;
любой ресурс, который находится в той же виртуальной сети Azure, с помощью внутреннего DNS-имени ресурса; Например, если используется разрешение имен по умолчанию, внутренние DNS-имена, назначаемые рабочим узлам HDInsight, могут иметь следующий вид:
<имя_рабочего_узла1>.0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
<имя_рабочего_узла2>.0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
Оба этих узла могут взаимодействовать напрямую друг с другом и с другими узлами в HDInsight, используя внутренние DNS-имена.
При использовании разрешения имен по умолчанию HDInsight запрещено разрешать имена ресурсов в сетях, которые присоединены к виртуальной сети. Локальная сеть обычно присоединяется к виртуальной сети. Если используется только разрешение имен по умолчанию, HDInsight не может обращаться к ресурсам локальной сети по имени. И ресурсы в локальной сети тоже не могут обращаться к ресурсам в виртуальной сети по имени.
Предупреждение
Перед созданием кластера HDInsight необходимо создать пользовательский DNS-сервер и настроить виртуальную сеть на использование этого сервера.
Чтобы включить разрешение имен между виртуальной сетью и ресурсами в присоединенных сетях, выполните указанные ниже действия.
Создайте пользовательский DNS-сервер в виртуальной сети Azure, где планируется установить HDInsight.
Настройте виртуальную сеть для использования с пользовательским DNS-сервером.
Найдите назначенный Azure DNS-суффикс для виртуальной сети. Это значение аналогично
0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
. Сведения о поиске DNS-суффиксов см. в разделе Пример: пользовательский DNS-сервер.Настройте перенаправление между DNS-серверами. Конфигурация зависит от типа удаленной сети.
Если удаленная сеть является локальной, настройте DNS следующим образом:
Пользовательский DNS-сервер (в виртуальной сети):
Перенаправляйте запросы DNS-суффиксов виртуальной сети на рекурсивный сопоставитель Azure (168.63.129.16). Azure обрабатывает запросы к ресурсам в виртуальной сети
Остальные запросы перенаправляйте на локальный DNS-сервер. Локальный DNS-сервер обрабатывает все остальные запросы на разрешение имен, включая запросы к интернет-ресурсам, таким как microsoft.com.
Локальный DNS-сервер: перенаправляйте запросы DNS-суффиксов виртуальной сети на пользовательский DNS-сервер. Последний затем перенаправляет их на рекурсивный сопоставитель Azure.
Такая конфигурация пересылает запросы полных доменных имен с DNS-суффиксом для виртуальных сетей на пользовательский DNS-сервер. Все остальные запросы (даже для общедоступных интернет-адресов) обрабатываются локальным DNS-сервером.
Если удаленная сеть является еще одной виртуальной сетью Azure, настройте DNS следующим образом:
Пользовательский DNS-сервер (в каждой виртуальной сети):
Запросы DNS-суффиксов виртуальных сетей перенаправляются на пользовательские DNS-серверы. DNS-сервер в каждой виртуальной сети должен разрешать ресурсы в своей сети.
Все остальные запросы перенаправляются на рекурсивный сопоставитель Azure. Рекурсивный сопоставитель отвечает за разрешение локальных и интернет-ресурсов.
DNS-сервер для каждой сети перенаправляет запросы на другой сервер на основе DNS-суффикса. Все остальные запросы разрешаются рекурсивным сопоставителем Azure.
Пример каждой конфигурации см. в разделе Пример: пользовательский DNS-сервер.
Дополнительные сведения см. в документе Разрешение имен для виртуальных машин и экземпляров ролей.
Прямое соединение со службами Apache Hadoop
Вы можете подключиться к кластеру по адресу https://CLUSTERNAME.azurehdinsight.net
. Этот адрес использует общедоступный IP-адрес, который может быть недоступен, если вы использовали NSG для ограничения входящего трафика из Интернета. Кроме того, при развертывании кластера в виртуальной сети его можно получить с помощью частной конечной точки https://CLUSTERNAME-int.azurehdinsight.net
. Эта конечная точка разрешает частный IP-адрес в виртуальной сети для доступа к кластеру.
Для подключения к Apache Ambari и другим веб-страницам через виртуальную сеть сделайте следующее:
Чтобы найти внутренние полные доменные имена (FQDN) узлов кластера HDInsight, используйте один из следующих методов:
Замените
RESOURCEGROUP
на имя группы ресурсов, которая содержит виртуальную сеть Azure, а затем введите указанную ниже команду.$clusterNICs = Get-AzNetworkInterface -ResourceGroupName "RESOURCEGROUP" | where-object {$_.Name -like "*node*"} $nodes = @() foreach($nic in $clusterNICs) { $node = new-object System.Object $node | add-member -MemberType NoteProperty -name "Type" -value $nic.Name.Split('-')[1] $node | add-member -MemberType NoteProperty -name "InternalIP" -value $nic.IpConfigurations.PrivateIpAddress $node | add-member -MemberType NoteProperty -name "InternalFQDN" -value $nic.DnsSettings.InternalFqdn $nodes += $node } $nodes | sort-object Type
az network nic list --resource-group RESOURCEGROUP --output table --query "[?contains(name, 'node')].{NICname:name,InternalIP:ipConfigurations[0].privateIpAddress,InternalFQDN:dnsSettings.internalFqdn}"
В возвращенном списке узлов найдите полные доменные имена (FQDN) головных узлов и используйте эти имена для подключения к Ambari и другим веб-службам. Например, воспользуйтесь
http://<headnode-fqdn>:8080
для доступа к Ambari.Внимание
Некоторые службы, размещенные на головных узлах, одновременно активны только на одном узле. Если при попытке доступа к службе на одном головном узле появляется сообщение об ошибке 404, переключитесь на другой головной узел.
Чтобы определить узел и порт, через которые доступна служба, обратитесь к документу Порты, используемые службами Hadoop в HDInsight.
Балансировка нагрузки
При создании кластера HDInsight также создаются несколько подсистем балансировки нагрузки. Из-за выхода базовой подсистемы балансировки нагрузки тип подсистемы балансировки нагрузки находится на стандартном уровне SKU, который имеет определенные ограничения. Входящие потоки к стандартным подсистемам балансировки нагрузки закрываются, если не разрешено группой безопасности сети. Возможно, потребуется установить связь сетевой безопасности с подсетью и настроить правила безопасности сети.
Существует несколько методов исходящего подключения, включенных для стандартной подсистемы балансировки нагрузки. Стоит отметить, что исходящий доступ по умолчанию будет прекращен в ближайшее время. Если шлюз NAT используется для предоставления исходящего сетевого доступа, подсеть не может работать с базовой подсистемой балансировки нагрузки. Если вы планируете установить связь шлюза NAT с подсетью, в этой подсети не должно существовать базовой подсистемы балансировки нагрузки. При использовании шлюза NAT в качестве метода исходящего доступа только что созданный кластер HDInsight не может совместно использовать ту же подсеть с ранее созданными кластерами HDInsight с базовыми подсистемами балансировки нагрузки.
Другое ограничение заключается в том, что подсистемы балансировки нагрузки HDInsight не должны быть удалены или изменены. Все изменения в правилах подсистемы балансировки нагрузки будут перезаписаны во время определенных событий обслуживания, таких как продление сертификатов. Если подсистемы балансировки нагрузки изменяются и влияют на функциональные возможности кластера, может потребоваться повторно создать кластер.
Следующие шаги
- Примеры кода и создания виртуальных сетей Azure см. в статье Создание виртуальных сетей для кластеров Azure HDInsight.
- Полный пример настройки HDInsight для подключения к локальной сети см. в статье Подключение HDInsight к локальной сети.
- Дополнительные сведения о виртуальных сетях Azure см. в статье Виртуальная сеть Azure.
- Дополнительные сведения о группах безопасности сети см. в статье Фильтрация сетевого трафика с помощью групп безопасности сети.
- Дополнительные сведения о пользовательских маршрутах см. в статье User-defined routes and IP forwarding (Определяемые пользователем маршруты и IP-пересылка).
- Сведения об управлении трафиком, включая интеграцию брандмауэра, см. в статье Управление сетевым трафиком.