Azure Active Directory를 사용하여 Azure에서 HPC 팩 클러스터 관리
Microsoft HPC Pack 2016 이상 버전에서는 Azure에서 HPC Pack 클러스터를 배포하는 관리자를 위해 Azure AD(Azure Active Directory)와의 통합을 지원합니다.
이 문서의 단계에 따라 다음 상위 수준 작업을 수행합니다.
- HPC Pack 클러스터를 Azure AD 테넌트에 수동으로 통합
- Azure의 HPC 팩 클러스터에서 작업 관리 및 예약
HPC Pack 클러스터 솔루션을 Azure AD와 통합하면 표준 단계에 따라 다른 애플리케이션 및 서비스를 통합합니다. 이 문서에서는 사용자가 Azure AD의 기본 사용자 관리에 익숙하다고 가정합니다. 자세한 내용 및 배경을 참조하세요.
통합의 이점
Azure AD(Azure Active Directory)는 클라우드 솔루션에 대한 SSO(Single Sign-On) 액세스를 제공하는 다중 테넌트 클라우드 기반 디렉터리 및 ID 관리 서비스입니다.
HPC Pack 클러스터를 Azure AD와 통합하면 다음 목표를 달성하는 데 도움이 될 수 있습니다.
- HPC 팩 클러스터에서 기존 Active Directory 도메인 컨트롤러를 제거합니다. 이는 비즈니스에 필요하지 않은 경우 클러스터 유지 관리 비용을 줄이고 배포 프로세스를 가속화하는 데 도움이 될 수 있습니다.
- Azure AD에서 제공하는 다음과 같은 이점을 활용합니다.
Single Sign-On
Azure에서 HPC 팩 클러스터에 대한 로컬 AD ID 사용
Azure Active Directory 환경
필수 조건
Azure 가상 머신에 배포된 HPC Pack 2016 클러스터
- 단계는 AzureHPC Pack 2016 클러스터 배포 참조하세요. 이 문서의 단계를 완료하려면 헤드 노드의 DNS 이름과 클러스터 관리자의 자격 증명이 필요합니다. 참고 항목
Azure Active Directory 통합은 HPC Pack 2016 이전 버전의 HPC 팩에서 지원되지 않습니다.
클라이언트 컴퓨터 - HPC 팩 클라이언트 유틸리티를 실행하려면 Windows 또는 Windows Server 클라이언트 컴퓨터가 필요합니다. HPC 팩 웹 포털 또는 REST API를 사용하여 작업을 제출하려는 경우 원하는 클라이언트 컴퓨터를 사용할 수 있습니다.
HPC 팩 클라이언트 유틸리티 - Microsoft 다운로드 센터에서 사용할 수 있는 무료 설치 패키지를 사용하여 클라이언트 컴퓨터에 HPC 팩 클라이언트 유틸리티를 설치합니다.
1단계: Azure AD 테넌트에 HPC 클러스터 서버 등록
Azure Portal에 로그인합니다.
계정이 둘 이상의 Azure AD 테넌트에 대한 액세스 권한을 제공하는 경우 오른쪽 위 모서리에 있는 계정을 클릭합니다. 그런 다음 포털 세션을 원하는 테넌트에 설정합니다. 디렉터리의 리소스에 액세스할 수 있는 권한이 있어야 합니다.
왼쪽 서비스 탐색 창에서 Azure Active Directory 클릭하고 사용자 및 그룹클릭하고 사용자 계정이 이미 생성되거나 구성되어 있는지 확인합니다.
Azure Active Directory
새 애플리케이션 등록 앱 등록 클릭합니다. 다음 정보를 입력합니다. - 이름 - HPCPackClusterServer
- 애플리케이션 유형 - 웹앱/API 선택
-
로그온 URL- 기본적으로
https://hpcserver
샘플의 기본 URL입니다. - 만들기를 클릭합니다.
앱이 추가되면 앱 등록 목록에서 선택합니다. 그런 다음 설정>속성클릭합니다. 다음 정보를 입력합니다.
- 다중 테넌트
예 선택합니다. -
앱 ID 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
모든 애플리케이션 Enterprise 애플리케이션을 클릭합니다. 목록에서 HPCPackClusterServer 선택합니다. 속성 클릭하고 예데 필요한 사용자 할당 변경합니다. 저장을 클릭합니다. 사용자 및 그룹 >사용자추가를 클릭합니다. 사용자를 선택하고 역할을 선택한 다음 할당을 클릭합니다. 사용 가능한 역할(HpcUsers 또는 HpcAdminMirror) 중 하나를 사용자에게 할당합니다. 디렉터리의 추가 사용자와 함께 이 단계를 반복합니다. 클러스터 사용자에 대한 배경 정보는 클러스터 사용자 관리
참조하세요.
2단계: Azure AD 테넌트에 HPC 클러스터 클라이언트 등록
Azure Portal에 로그인합니다.
계정이 둘 이상의 Azure AD 테넌트에 대한 액세스 권한을 제공하는 경우 오른쪽 위 모서리에 있는 계정을 클릭합니다. 그런 다음 포털 세션을 원하는 테넌트에 설정합니다. 디렉터리의 리소스에 액세스할 수 있는 권한이 있어야 합니다.
Azure Active Directory
새 애플리케이션 등록 앱 등록 클릭합니다. 다음 정보를 입력합니다. - 이름 - HPCPackClusterClient
- 애플리케이션 유형 - 네이티브 선택
- 리디렉션 URI
- 만들기를 클릭합니다.
앱이 추가되면 앱 등록 목록에서 선택합니다. 애플리케이션 ID 값을 복사하고 저장합니다. 나중에 애플리케이션을 구성할 때 필요합니다.
설정>필요한 권한>추가>API선택합니다. HpcPackClusterServer 애플리케이션을 검색하고 선택합니다(1단계에서 생성됨).
액세스 사용 페이지에서 Access HpcClusterServer선택합니다. 그런 다음 완료클릭합니다.
3단계: HPC 클러스터 구성
Azure에서 HPC Pack 2016 헤드 노드에 연결합니다.
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
hpclocal.onmicrosoft.com
같은 Azure AD 테넌트 이름을 지정합니다. -
AADClientAppId
2단계에서 만든 앱의 애플리케이션 ID를 지정합니다.
-
헤드 노드 구성에 따라 다음 중 하나를 수행합니다.
단일 헤드 노드 HPC 팩 클러스터에서 HpcScheduler 서비스를 다시 시작합니다.
헤드 노드가 여러 개 있는 HPC 팩 클러스터에서 헤드 노드에서 다음 PowerShell 명령을 실행하여 HpcSchedulerStateful 서비스를 다시 시작합니다.
Connect-ServiceFabricCluster Move-ServiceFabricPrimaryReplica –ServiceName "fabric:/HpcApplication/SchedulerStatefulService"
4단계: 클라이언트에서 작업 관리 및 제출
컴퓨터에 HPC Pack 클라이언트 유틸리티를 설치하려면 Microsoft 다운로드 센터에서 HPC Pack 2016 설치 파일(전체 설치)을 다운로드합니다. 설치를 시작할 때
클라이언트 컴퓨터를 준비하려면 클라이언트 컴퓨터에 HPC 클러스터 설치
팁
클라이언트를 설정하는 동안 인증서 CN이 스케줄러 URL과 일치하지 않는 경우 CN 유효성 검사를 선택해야 할 수 있습니다." 클라이언트 컴퓨터에서 인증서를 가져올 필요가 없도록 "CA 및 CN 검사 건너뛰기"를 선택할 수도 있습니다.
ca 및 CN 검사 건너뛰기
이제 HPC 팩 명령을 실행하거나 HPC 팩 작업 관리자 GUI를 사용하여 Azure AD 계정을 사용하여 클러스터 작업을 제출하고 관리할 수 있습니다. 작업 제출 옵션은 AzureHPC 팩 클러스터에 HPC 작업 제출
참고 항목
Azure에서 처음으로 HPC 팩 클러스터에 연결하려고 하면 팝업 창이 나타납니다. 로그인할 Azure AD 자격 증명을 입력합니다. 그런 다음 토큰이 캐시됩니다. 나중에 Azure의 클러스터에 대한 연결은 인증이 변경되거나 캐시가 지워지지 않는 한 캐시된 토큰을 사용합니다.
예를 들어 이전 단계를 완료한 후 다음과 같이 온-프레미스 클라이언트에서 작업을 쿼리할 수 있습니다.
Get-HpcJob –State All –Scheduler https://<Azure load balancer DNS name> -Owner <Azure AD account>
Azure AD 통합을 사용하여 작업 제출에 유용한 cmdlet
로컬 토큰 캐시 관리
HPC 팩 2016은 로컬 토큰 캐시를 관리하는 다음 HPC PowerShell cmdlet을 제공합니다. 이러한 cmdlet은 비대화형으로 작업을 제출하는 데 유용합니다. 다음 예제를 참조하십시오.
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
Submit-HpcJob
–Credential
지정하지 않으면 작업 또는 작업이 로컬 매핑된 사용자 아래에서 Azure AD 계정으로 실행됩니다. (HPC 클러스터는 작업을 실행하기 위해 Azure AD 계정과 동일한 이름의 로컬 사용자를 만듭니다.)HPC Pack 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>