Планирование виртуальной сети для 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.
  • Виртуальная сеть и создаваемый кластер должны входить в одну подписку.
  1. Какая модель используется для развертывания виртуальной сети: классическая модель или развертывание с помощью диспетчера ресурсов?

    Для HDInsight 3.4 и более поздней версии требуется виртуальная сеть диспетчера ресурсов. Для работы более ранних версий HDInsight требовалась классическая виртуальная сеть.

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

    После присоединения экземпляр HDInsight, который установлен в сети диспетчера ресурсов, может взаимодействовать с ресурсами в классической сети.

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

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

    В состав HDInsight входит несколько служб, использующих различные порты. Не блокируйте трафик на этих портах. Список портов, трафик через которые следует разрешить на межсетевых экранах виртуального устройства, см. в разделе "Безопасность".

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

    • Группы безопасности сети

      Введите следующую команду, указав вместо RESOURCEGROUP имя группы ресурсов с виртуальной сетью:

      Get-AzNetworkSecurityGroup -ResourceGroupName  "RESOURCEGROUP"
      
      az network nsg list --resource-group RESOURCEGROUP
      

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

      Важно!

      Правила группы безопасности сети применяются в порядке, основанном на приоритете правила. Применяется первое правило, которое соответствует шаблону трафика; другие правила не применяются к этому трафику. Правила применяются в следующем порядке: от правила с максимальными разрешениями к правилу с минимальными разрешениями. Дополнительные сведения см. в документе Фильтрация сетевого трафика с помощью групп безопасности сети.

    • Определяемые пользователем маршруты

      Введите следующую команду, указав вместо RESOURCEGROUP имя группы ресурсов с виртуальной сетью:

      Get-AzRouteTable -ResourceGroupName "RESOURCEGROUP"
      
      az network route-table list --resource-group RESOURCEGROUP
      

      Дополнительные сведения см. в документе, посвященном устранению неполадок с маршрутами.

  3. Создайте кластер HDInsight и выберите виртуальную сеть Azure во время настройки. Следуйте инструкциям в следующих документах, чтобы понять процесс создания кластера:

    Важно!

    Добавление кластера 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-сервер и настроить виртуальную сеть на использование этого сервера.

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

  1. Создайте пользовательский DNS-сервер в виртуальной сети Azure, где планируется установить HDInsight.

  2. Настройте виртуальную сеть для использования с пользовательским DNS-сервером.

  3. Найдите назначенный Azure DNS-суффикс для виртуальной сети. Это значение аналогично 0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net. Сведения о поиске DNS-суффиксов см. в разделе Пример: пользовательский DNS-сервер.

  4. Настройте перенаправление между 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 и другим веб-страницам через виртуальную сеть сделайте следующее:

  1. Чтобы найти внутренние полные доменные имена (FQDN) узлов кластера HDInsight, используйте один из следующих методов:

    Введите следующую команду, указав вместо RESOURCEGROUP имя группы ресурсов с виртуальной сетью:

    $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, переключитесь на другой головной узел.

  2. Чтобы определить узел и порт, через которые доступна служба, обратитесь к документу Порты, используемые службами Hadoop в HDInsight.

балансировка нагрузки;

При создании кластера HDInsight создается и подсистема балансировки нагрузки. Тип этой подсистемы относится к SKU базового уровня, у которого есть определенные ограничения. Одно из ограничений состоит в том, что если у вас есть две виртуальные сети в разных регионах, то вы не можете подключиться к базовым подсистемам балансировки нагрузки. См. вопросы и ответы по виртуальным сетям: ограничения для пиринга в глобальных виртуальных сетях.

Еще одним ограничением является то, что подсистемы балансировки нагрузки HDInsight не следует удалять или изменять. Любые изменения в правилах подсистемы балансировки нагрузки будут перезаписаны во время определенных событий обслуживания, таких как продление сертификатов. Если подсистемы балансировки нагрузки изменяются и это влияет на функциональность кластера, может потребоваться повторно создать кластер.

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