Управление кластером пакета HPC в Azure с помощью Azure Active Directory
Microsoft HPC Pack 2016 (и более поздней версии) поддерживает интеграцию с Azure Active Directory (Azure AD) для администраторов, которые развертывают кластер пакетов HPC в Azure.
Выполните действия, описанные в этой статье, для следующих высокоуровневых задач:
- Интеграция кластера пакета HPC вручную с клиентом Azure AD
- Управление заданиями и планированием заданий в кластере пакетов HPC в Azure
Интеграция решения кластера пакета HPC с Azure AD выполняет стандартные шаги по интеграции других приложений и служб. В этой статье предполагается, что вы знакомы с базовым управлением пользователями в Azure AD. Дополнительные сведения и фон.
Преимущества интеграции
Azure Active Directory (Azure AD) — это мультитенантная облачная служба каталогов и службы управления удостоверениями, которая обеспечивает единый вход (SSO) к облачным решениям.
Интеграция кластера пакета HPC с Azure AD поможет достичь следующих целей:
- Удалите традиционный контроллер домена Active Directory из кластера пакета HPC. Это может помочь сократить затраты на обслуживание кластера, если это не требуется для вашего бизнеса, и ускорить процесс развертывания.
- Используйте следующие преимущества, предоставляемые Azure AD:
Единый вход
Использование локального удостоверения AD для кластера пакетов HPC в Azure
Предварительные условия
кластер HPC Pack 2016, развернутый на виртуальных машинах Azure. Инструкции см. в статье Развертывание кластера HPC с пакетом 2016 в Azure. Для выполнения действий, описанных в этой статье, вам потребуется DNS-имя головного узла и учетные данные администратора кластера.
Примечание.
Интеграция Azure Active Directory не поддерживается в версиях пакета HPC до пакета HPC 2016.
клиентский компьютер. Для запуска клиентских программ пакета HPC требуется клиентский компьютер Windows или Windows Server. Если вы хотите использовать веб-портал пакета HPC или REST API для отправки заданий, можно использовать любой клиентский компьютер.
клиентские служебные программы пакета HPC. Установите клиентские программы пакета HPC на клиентском компьютере, используя бесплатный пакет установки, доступный в Центре загрузки Майкрософт.
Шаг 1. Регистрация сервера кластера HPC в клиенте Azure AD
Войдите на портал Azure.
Если ваша учетная запись предоставляет доступ к нескольким клиентам Azure AD, щелкните свою учетную запись в правом верхнем углу. Затем задайте сеанс портала требуемому клиенту. У вас должно быть разрешение на доступ к ресурсам в каталоге.
Щелкните Azure Active Directory в области навигации слева, щелкните Пользователи и группыи убедитесь, что учетные записи пользователей уже созданы или настроены.
В Azure Active Directoryщелкните регистрации приложений>регистрации новых приложений. Введите следующие сведения:
- имени
— HPCPackClusterServer - тип приложения — выберите веб-приложение или API
-
URL-адрес входа— базовый URL-адрес примера, который по умолчанию
https://hpcserver
- Нажмите кнопку Создать.
- имени
После добавления приложения выберите его в списке регистрации приложений. Затем щелкните Параметры>свойства. Введите следующие сведения:
- Выберите Да для многотенантных.
- Измените URI идентификатора приложения на
https://<Directory_name>/<application_name>
. Замените<Directory_name
> полным именем клиента Azure AD, напримерhpclocal.onmicrosoft.com
, и замените<application_name>
именем, выбранным ранее, напримерHPCPackClusterServer
.
Нажмите кнопку Сохранить. После сохранения на странице приложения щелкните Манифест. Измените манифест, найдя параметр
appRoles
и добавив следующую роль приложения, а затем нажмите кнопку Сохранить:"appRoles": [ { "allowedMemberTypes": [ "User", "Application" ], "displayName": "HpcAdminMirror", "id": "61e10148-16a8-432a-b86d-ef620c3e48ef", "isEnabled": true, "description": "HpcAdminMirror", "value": "HpcAdminMirror" }, { "allowedMemberTypes": [ "User", "Application" ], "description": "HpcUsers", "displayName": "HpcUsers", "id": "91e10148-16a8-432a-b86d-ef620c3e48ef", "isEnabled": true, "value": "HpcUsers" } ],
В Azure Active Directoryщелкните корпоративные приложения>все приложения. Выберите HPCPackClusterServer из списка.
Щелкните Свойстваи измените назначение пользователя, необходимое, чтобы да. Нажмите кнопку Сохранить.
Щелкните Пользователи и группы>Добавитьпользователя. Выберите пользователя и выберите роль, а затем щелкните Назначить. Назначьте пользователю одну из доступных ролей (HpcUsers или HpcAdminMirror). Повторите этот шаг с дополнительными пользователями в каталоге. Дополнительные сведения о пользователях кластера см. в управлении пользователями кластера.
Шаг 2. Регистрация клиента кластера HPC в клиенте Azure AD
Войдите на портал Azure.
Если ваша учетная запись предоставляет доступ к нескольким клиентам Azure AD, щелкните свою учетную запись в правом верхнем углу. Затем задайте сеанс портала требуемому клиенту. У вас должно быть разрешение на доступ к ресурсам в каталоге.
В Azure Active Directoryщелкните регистрации приложений>регистрации новых приложений. Введите следующие сведения:
- имя — HPCPackClusterClient
- типа приложения
— выбор собственного -
URI перенаправления -
https://hpcclient
- Щелкните Создать
После добавления приложения выберите его в списке регистрации приложений. Скопируйте значение идентификатора приложения
и сохраните его. Это необходимо позже при настройке приложения. Щелкните Параметры>Необходимые разрешения>Добавить>ВыбратьAPI. Выполните поиск и выберите приложение HpcPackClusterServer (созданное на шаге 1).
На странице Включить доступ выберите Access HpcClusterServer. Затем щелкните Готово.
Шаг 3. Настройка кластера HPC
Подключитесь к головному узлу пакета HPC 2016 в Azure.
Запустите HPC PowerShell.
Выполните следующую команду:
Set-HpcClusterRegistry -SupportAAD true -AADInstance https://login.microsoftonline.com/ -AADAppName HpcPackClusterServer -AADTenant <your AAD tenant name> -AADClientAppId <client ID> -AADClientAppRedirectUri https://hpcclient
где
-
AADTenant
указывает имя клиента Azure AD, напримерhpclocal.onmicrosoft.com
-
AADClientAppId
указывает идентификатор приложения для приложения, созданного на шаге 2.
-
Выполните одно из следующих действий в зависимости от конфигурации головного узла:
В одном головном кластере пакета HPC перезапустите службу HpcScheduler.
В кластере пакета HPC с несколькими головными узлами выполните следующие команды PowerShell на головном узле, чтобы перезапустить службу HpcSchedulerStateful:
Connect-ServiceFabricCluster Move-ServiceFabricPrimaryReplica –ServiceName "fabric:/HpcApplication/SchedulerStatefulService"
Шаг 4. Управление заданиями и отправка заданий из клиента
Чтобы установить клиентские программы пакета HPC на компьютере, скачайте файлы установки пакета HPC 2016 (полная установка) из Центра загрузки Майкрософт. При запуске установки выберите параметр установки для клиентских служебныхпрограмм пакета HPC
Чтобы подготовить клиентский компьютер, установите сертификат, используемый во время установки кластера HPC на клиентском компьютере. Используйте стандартные процедуры управления сертификатами Windows, чтобы установить общедоступный сертификат в хранилище сертификатов — текущий пользователь>доверенных корневых центров сертификации.
Совет
Во время настройки клиента может потребоваться выбрать проверку CN, если сертификат CN не соответствует URL-адресу планировщика. Вы также можете выбрать "пропустить проверку ЦС и CN", чтобы не нужно импортировать сертификат на клиентском компьютере.
Теперь можно запустить команды пакета HPC или использовать графический интерфейс диспетчера заданий пакета HPC для отправки заданий кластера и управления ими с помощью учетной записи Azure AD. Параметры отправки заданий см. в статье Отправка заданий HPC в кластер пакета HPC в Azure.
Примечание.
При попытке подключиться к кластеру пакета HPC в Azure впервые появится всплывающее окно. Введите учетные данные Azure AD для входа. Затем маркер кэшируется. Позже подключения к кластеру в Azure будут использовать кэшированный маркер, если проверка подлинности не изменяется или кэш не очищается.
Например, после выполнения предыдущих шагов можно запросить задания из локального клиента следующим образом:
Get-HpcJob –State All –Scheduler https://<Azure load balancer DNS name> -Owner <Azure AD account>
Полезные командлеты для отправки заданий с интеграцией Azure AD
Управление локальным кэшем маркеров
Пакет HPC 2016 предоставляет следующие командлеты HPC PowerShell для управления локальным кэшем маркеров. Эти командлеты полезны для отправки заданий, неинтерактивно. См. следующий пример:
Remove-HpcTokenCache
$SecurePassword = "<password>" | ConvertTo-SecureString -AsPlainText -Force
Set-HpcTokenCache -UserName <AADUsername> -Password $SecurePassword -scheduler https://<Azure load balancer DNS name>
Задание учетных данных для отправки заданий с помощью учетной записи Azure AD
Иногда может потребоваться запустить задание под пользователем кластера HPC (для кластера HPC, присоединенного к домену, запускайте от имени одного пользователя домена; для кластера HPC, не присоединенного к домену, запускайте от имени одного локального пользователя, определенного на всех головных узлах).
Используйте следующие команды, чтобы задать учетные данные:
$localUser = "<username>" $localUserPassword="<password>" $secpasswd = ConvertTo-SecureString $localUserPassword -AsPlainText -Force $mycreds = New-Object System.Management.Automation.PSCredential ($localUser, $secpasswd) Set-HpcJobCredential -Credential $mycreds -Scheduler https://<Azure load balancer DNS name>
Затем отправьте задание следующим образом. Задание или задача выполняется в $localUser на вычислительных узлах.
$emptycreds = New-Object System.Management.Automation.PSCredential ($localUser, (new-object System.Security.SecureString)) ... $job = New-HpcJob –Scheduler https://<Azure load balancer DNS name> Add-HpcTask -Job $job -CommandLine "ping localhost" -Scheduler https://<Azure load balancer DNS name> Submit-HpcJob -Job $job -Scheduler https://<Azure load balancer DNS name> -Credential $emptycreds
Если
–Credential
не указан сSubmit-HpcJob
, задание или задача выполняется под локальным сопоставленным пользователем в качестве учетной записи Azure AD. (Кластер HPC создает локального пользователя с тем же именем, что и учетная запись Azure AD для выполнения задачи.)Начиная с пакета HPC 2016 с обновлением 2, вам не требуется устанавливать расширенные данные для учетных данных, так как ключ взаимного доверия будет автоматически создан для запуска задания MPI между узлами. Но если вы по-прежнему используете более раннюю версию, вы можете задать расширенные данные для учетной записи Azure AD, как показано ниже:
Настройка расширенных данных для самой учетной записи Azure AD
Set-HpcJobCredential -Scheduler https://<Azure load balancer DNS name> -ExtendedData <data> -AadUser
Установка расширенных данных и запуск от имени пользователя кластера HPC
Set-HpcJobCredential -Credential $mycreds -Scheduler https://<Azure load balancer DNS name> -ExtendedData <data>