노드 및 nodearray 개체는 순위 2이며 cluster
에 종속됩니다. 노드는 단일 Virtual Machines를 나타내는 반면, nodearray는 Virtual Machines 컬렉션이나 하나 이상의 Virtual Machines 확장 집합을 나타낼 수 있습니다.
노드 기본값
[[node defaults]]
는 클러스터의 모든 노드와 nodearray에 대한 기본 설정을 지정하는 특수한 추상 노드입니다.
[cluster my-cluster]
[[node defaults]]
Credentials = $Credentials
SubnetId = my-rg/my-vnet/my-subnet
MachineType = Standard_D2s_v3
[[nodearray grid]]
ImageName = cycle.image.centos6
MachineType = Standard_H16
$Credentials
는 "Credentials"라는 매개 변수에 대한 참조입니다.
my-cluster
에서 grid
노드 배열은 노드 로부터 Credential 및 SubnetId를 defaults
하지만 특정 HPC VM 크기인 Standard_H16
을 사용합니다.
예시
이 템플릿 예는 두 개의 노드와 nodearray로 구성된 클러스터를 만듭니다. 프록시 노드는 IsReturnProxy
를 사용하여 클러스터가 시작될 때 CycleCloud에서 오는 역방향 채널 프록시의 엔드포인트가 될 ReturnProxy
의 특수 역할을 정의합니다.
[cluster my-cluster]
[[node defaults]]
Credentials = $Credentials
SubnetId = $SubnetId
KeyPairLocation = ~/.ssh/cyclecloud.pem
ImageName = cycle.image.centos7
[[node proxy]]
IsReturnProxy = true
MachineType = Standard_B2
[[node scheduler]]
MachineType = Standard_D4s_v3
[[nodearray execute]]
MachineType = Standard_D16s_v3
필수 특성 참조
노드를 성공적으로 시작하려면 최소 4가지 필수 특성이 있습니다.
특성 | 유형 | 정의 |
---|---|---|
기계유형 | String | Azure VM 크기 |
SubnetId | String | 서브넷 정의는 형식 ${rg}/${vnet}/${subnet} 로 제공됩니다. 이는 전체 리소스 ID가 아닙니다. |
자격 증명 | String | 클라우드 공급자 계정의 이름입니다. |
네 번째로 필요한 특성은 이미지와 관련이 있습니다. 이미지 특성은 필수이지만 여러 가지 형태로 존재할 수 있습니다. 이미지 특성을 참조하세요.
추가 특성
특성 | 유형 | 정의 |
---|---|---|
컴퓨터 이름 | 문자열 | VM의 컴퓨터 이름입니다. 지정된 경우 시스템에서 생성된 이름을 재정의합니다. |
ComputerNamePrefix | String | 시스템에서 생성된 컴퓨터 이름 앞에 접두사가 붙습니다. |
영역 | 문자열(목록) | VM 또는 VMSS의 가용성 영역입니다. VMSS에 대한 목록이 될 수 있습니다. 예: Zone = 1,3 |
KeyPairLocation | 정수 | CycleCloud가 로컬 파일 시스템에서 SSH 키 쌍을 찾을 위치 |
KeepAlive | 불리언 (Boolean) | true인 경우 CycleCloud는 이 노드의 종료를 방지합니다. |
Locker | 문자열 | 프로젝트 사양을 다운로드할 락커의 이름을 지정합니다. 프로젝트 사용을 참조하세요. |
특성 | 유형 | 정의 |
---|---|---|
컴퓨터 이름 | 문자열 | VM의 컴퓨터 이름입니다. 지정된 경우 시스템에서 생성된 이름을 재정의합니다. |
ComputerNamePrefix | String | 시스템에서 생성된 컴퓨터 이름 앞에 접두사가 붙습니다. |
EphemeralOSDisk | 불리언 (Boolean) | 지원되는 경우 VM에 임시 부팅 디스크를 사용합니다. |
영역 | 문자열(목록) | VM 또는 VMSS의 가용성 영역입니다. VMSS에 대한 목록이 될 수 있습니다. 예: Zone = 1,3 |
ProximityPlacementGroupId | String | 이 노드를 넣을 근접 배치 그룹의 전체 ID입니다. /subscriptions/ 로 시작해야 함 |
PlacementGroupId | 문자열 | 설정한 경우, 이 레이블은 PlacementGroupId에 일치하는 값을 갖는 다른 모든 노드와 함께 이 노드를 단일 배치 그룹에 배치하는 데 사용됩니다. 이를 통해 대기 시간이 짧은 통신이 가능하며, InfiniBand를 지원하는 VM 크기에서 InfiniBand를 사용하도록 설정하는 데 필요합니다. 이는 일반적으로 스케줄러가 필요에 따라 설정하므로 수동으로 지정할 필요가 없습니다. |
KeyPairLocation | 정수 | CycleCloud가 로컬 파일 시스템에서 SSH 키 쌍을 찾을 위치 |
KeepAlive | 불리언 (Boolean) | true인 경우 CycleCloud는 이 노드의 종료를 방지합니다. |
Locker | 문자열 | 프로젝트 사양을 다운로드할 락커의 이름을 지정합니다. 프로젝트 사용을 참조하세요. |
BootDiagnosticsUri | String | 지정된 경우 부팅 진단(예: https://mystorageaccount.blob.core.windows.net/ )에 대한 스토리지 URI입니다. 스토리지 요금이 적용됩니다. |
HybridBenefit | 불리언 (Boolean) | true인 경우 Windows VM에 대한 "Azure 하이브리드 혜택" 라이선싱이 사용하도록 설정됩니다. |
네트워크 보안 그룹 ID | String | 지정된 경우 이 노드에 사용할 네트워크 보안 그룹의 전체 리소스 ID입니다. 참고: 이는 SecurityGroup 에서 으로 지정될 수도 있습니다. |
EnableTerminateNotification(8.2.0+) | 불리언 (Boolean) | true인 경우 종료 알림이 로컬 처리를 위해 VM 삭제 시 이벤트를 VM으로 전송하도록 사용하도록 설정됩니다. 이는 Scaleset VM에만 적용됩니다. |
TerminateNotificationTimeout(8.2.2+) | 상대 시간 | 종료 알림이 사용하도록 설정된 경우, VM이 삭제되기 전에 이벤트를 처리할 시간을 제어합니다. |
ThrottleCapacity(8.2.2+) | 불리언 (Boolean) | true인 경우 이 nodearray는 용량 문제가 발생한 후 기본적으로 5분 동안 자동 크기 조정기에 0 용량을 보고합니다. |
ThrottleCapacityTime(8.2.2+) | 상대 시간 | ThrottleCapacity 가 사용하도록 설정된 경우 용량이 제한된 후 가용성이 0이라고 보고하는 데 걸리는 시간입니다. 기본값은 "5m"입니다. |
HybridBenefitLicense(8.3.0+) | String | HybridBenefit 가 true이면 RHEL_BYOS , SLES_BYOS 또는 Windows_Server 를 사용할 라이선스가 지정됩니다. 기본값은 Windows_Server 입니다. |
FlexScaleSetId(8.3.0+) | String | 설정한 경우 이는 이 노드의 VM에 사용되는 Flex 오케스트레이션 모드의 크기 오케스트레이션 집합의 정규화된 ID입니다. |
EncryptionAtHost(8.4.0+) | 불리언 (Boolean) | true인 경우 가상 머신에서 호스트에서 암호화가 사용하도록 설정됩니다. |
보안 유형(8.5.0+) | String | 보안 형식을 설정합니다. 정의되지 않음, TrustedLaunch 또는 ConfidentialVM |
EnableSecureBoot(8.5.0+) | 불리언 (Boolean) | 신뢰할 수 있는 시작 VM이나 기밀 VM을 사용하는 경우 보안 부팅을 사용하도록 설정합니다. |
EnableVTPM(8.5.0+) | 불리언 (Boolean) | 신뢰할 수 있는 시작 VM 또는 기밀 VM을 사용하는 경우 가상 신뢰할 수 있는 플랫폼 모듈을 사용하도록 설정합니다. |
ScaleSetUpgradePolicyMode(8.6.2+) | String | CycleCloud 외부에서 확장 집합 템플릿이 수정될 때 확장 집합의 기존 VM에 어떤 일이 발생하는지 제어하는 확장 집합 업그레이드 정책을 지정합니다. Azure Policy와 같이 자동화된 도구를 사용하여 기존 확장 집합을 수정하는 경우 일반적으로 이 기능을 사용하도록 설정해야 합니다. 참고: 이렇게 하면 OS 이미지가 자동으로 업그레이드되지 않습니다. Automatic , Rolling 또는 Manual 중 하나(기본값). |
비고
근접 배치 그룹은 일반적인 Azure 기능이며, 노드에서 참조하려면 먼저 만들어야 합니다.
이를 통해 CycleCloud VM을 해당 근접 배치 그룹 내의 다른 Azure 리소스와 함께 배치할 수 있지만 InfiniBand 네트워킹은 사용할 수 없습니다.
이와 대비적으로, PlacementGroupId
는 CycleCloud의 임의의 문자열로, 노드의 VM을 단일 크기 조정 집합으로 그룹화하는 데 사용되며, 이 크기 조정 집합은 동일한 네트워킹 스위치에 속하도록 제한되지만 다른 Azure 리소스와 함께 배치될 수는 없습니다.
두 가지를 함께 사용할 수는 있지만, 할당할 수 있는 VM 수가 줄어들 수 있습니다.
이미지 특성
VM 이미지는 가상 머신을 시작하는 데 필요한 설정입니다. 유효한 이미지 정의 형식은 세 가지가 있습니다. 기본 CycleCloud 이미지 이름, Marketplace 이미지 정의 및 이미지 ID입니다.
ImageName
CycleCloud는 다양한 OS 버전에서 사용 가능한 여러 가지 기본 Marketplace 이미지를 지원합니다. ImageName
을 사용하여 지정할 수 있습니다.
특성 | 유형 | 정의 |
---|---|---|
ImageName | String | 자전거 지원 이미지 이름입니다. cycle.image.[win2016, win2012, centos7, centos6, ubuntu16, ubuntu14] |
Marketplace 이미지
Cycle-managed Marketplace Images와 함께 Publisher
, Offer
, Sku
및 ImageVersion
을 지정하여 모든 Marketplace 이미지를 사용할 수 있습니다.
특성 | 유형 | 정의 |
---|---|---|
Azure.퍼블리셔 | String | VM Marketplace 이미지 게시자 |
Azure.Offer | 문자열 | VM Marketplace 이미지에 대한 제품 |
Azure.Sku | String | VM Marketplace 이미지의 SKU |
Azure.ImageVersion | String | Marketplace 이미지의 이미지 버전입니다. |
비고
Marketplace 이미지는 ImageName
특성에 URN으로 인코딩되어 Publisher:Offer:Sku:ImageVersion
형식으로 지정될 수도 있습니다.
사용자 지정 가격 책정 가격 책정 계획이 포함된 이미지
가격 책정 계획이 첨부된 Shared Image Gallery 이미지의 경우, 해당 정보가 Shared Image Gallery 이미지에 저장되어 있지 않는 한, 사용할 가격 책정 계획에 대한 정보가 필요합니다. 이는 Publisher, Product, Plan 중첩 특성을 사용하여 ImagePlan
특성으로 지정됩니다.
비고
가격 책정 계획에 사용자 지정 이미지를 사용하려면 CycleCloud 8.0.2 이상이 필요합니다.
ImageId
또는 자격 증명 구독의 VM 이미지 리소스 ID도 사용할 수 있습니다.
특성 | 유형 | 정의 |
---|---|---|
ImageId | 문자열 | VM 이미지의 리소스 ID |
이미지 특성
Marketplace 이미지와 ImageIds로 정의된 이미지에는 CycleCloud OS 확장을 올바르게 구성하기 위해 몇 가지 추가 설정이 필요합니다.
특성 | 유형 | 정의 |
---|---|---|
DownloadJetpack | 불리언 (Boolean) | false인 경우 CycleCloud는 스토리지 계정에서 Jetpack을 다운로드하지 않습니다. Jetpack이 이미 설치되어 있어야 합니다. 참고: Linux 노드만 지원됩니다. 기본값은 true입니다. 8.4.1에 추가되었습니다. |
InstallJetpack | 불리언 (Boolean) | false인 경우 CycleCloud는 새 VM에 Jetpack을 설치하지 않습니다. 기본값은 true입니다. |
설치 대기 중 | 불리언 (Boolean) | false인 경우 CycleCloud는 VM이 만들어질 때 Jetpack이 설치 세부 정보를 보고할 때까지 기다리지 않습니다. 기본값은 true입니다. |
JetpackPlatform | String | 사용할 Jetpack 설치 프로그램 플랫폼: centos-7 , centos-6 , ubuntu-14.04 , ubuntu-16.04 , windows . 7.7.0에서 더 이상 사용되지 않습니다. |
경고
InstallJetpack
또는 AwaitInstallation
설정은 권장되지 않습니다. 또한 DownloadJetpack
을 설정하려면 올바른 버전의 Jetpack이 설치된 사용자 지정 이미지가 필요하며 스토리지 계정에서 다운로드하는 데 문제가 있는 환경에만 권장됩니다.
비고
여러 이미지 정의가 단일 노드 정의에 포함되는 경우 기본적으로 ImageId
가 사용됩니다.
대체 이미지 샘플
다음은 노드에 대한 세 가지 대체 이미지 구문을 사용한 샘플 템플릿입니다.
[cluster image-example]
[[node defaults]]
Credentials = $Credentials
MachineType = Standard_D2_v3
SubnetId = my-rg/my-vnet/my-subnet
[[node cycle-image]]
ImageName = cycle.image.ubuntu16
[[node my-custom-vm-image]]
ImageId = /subscriptions/9B16BFF1-879F-4DB3-A55E-8F8AC1E6D461/resourceGroups/my-rg/providers/Microsoft.Compute/images/jetpack-rhel7-1b1e3e93
# Jetpack already installed on image
DownloadJetpack = false
[[node marketplace-vm-image]]
Azure.Publisher = Canonical
Azure.Offer = UbuntuServer
Azure.Sku = 16.04-LTS
Azure.ImageVersion = latest
[[node custom-marketplace-vm-image]]
ImageName = /subscriptions/9B16BFF1-879F-4DB3-A55E-8F8AC1E6D461/resourceGroups/my-rg/providers/Microsoft.Compute/images/jetpack-rhel8-1b1e3e93
ImagePlan.Name = rhel-lvm8
ImagePlan.Publisher = redhat
ImagePlan.Product = rhel-byos
고급 네트워킹 특성
특성 | 유형 | 정의 |
---|---|---|
IsReturnProxy | 불리언 (Boolean) | 이 노드에 역방향 채널 프록시를 설정합니다. 클러스터당 하나의 노드만 이 설정을 true로 설정할 수 있습니다. |
ReturnPath.Hostname | 호스트 이름 | 노드가 CycleCloud에 접속할 수 있는 호스트 이름입니다. |
ReturnPath.WebserverPort | 정수 | 노드가 CycleCloud에 접속할 수 있는 웹 서버 포트입니다. |
ReturnPath.BrokerPort | 정수 | 노드가 CycleCloud에 접속할 수 있는 브로커입니다. |
태그들
CycleCloud는 VM 및 VMSS 태그 지정을 지원합니다.
특성 | 문자열 | 정의 |
---|---|---|
태그들 | String | CycleCloud에서 기본적으로 할당한 태그 외에도 배포에 태그를 추가하려면 tags.my-tag = my-tag-value 를 사용합니다. |
일반/스폿 특성
CycleCloud는 다음 특성을 통해 스폿 VM 사용을 지원합니다. 자세한 내용은 Spot Virtual Machines를 참조하세요.
특성 | String | 정의 |
---|---|---|
중단 가능 | 불리언 (Boolean) | true인 경우 VM은 스폿 VM이 되어 가격 책정을 낮춥니다. |
최대 가격 | 떠다니다 | VM에 사용할 수 있는 최대 가격입니다. (기본값: -1) |
Nodearray 특정 특성
노드의 모든 특성은 nodearray에 유효하지만, nodearray는 탄력적 리소스이므로 추가 특성을 사용할 수 있습니다. Nodearray는 Azure VMSS(VirtualMachine ScaleSets)용 드라이버이며 여러 개의 지원 VMSS를 가질 수 있습니다.
특성 | String | 정의 |
---|---|---|
Azure.AllocationMethod | 문자열 | 단일 VM을 관리하려면 이를 StandAlone 으로 설정하고 VMSS를 사용하려면 정의하지 않은 상태로 둡니다. |
Azure.SingleScaleset | 불리언 (Boolean) | 모든 노드에 대해 단일 VMSS를 사용합니다(기본값: false). |
Azure.SinglePlacementGroup | 불리언 (Boolean) | VMSS에 대해 단일 배치 그룹 설정을 사용합니다. (기본값 false) |
Azure.Overprovision | 불리언 (Boolean) | VMSS의 Overprovision 기능을 사용합니다. Cyclecloud는 시나리오에 따라 동적으로 설정됩니다. 이는 재정의입니다. |
Azure.MaxScaleSetSize | 정수 | 단일 VMSS의 VM 수를 제한합니다. 이 최댓값에 도달하면 CycleCloud는 클러스터에 추가 VMSS를 추가합니다. (기본값: `40`) |
초기 카운트 | 정수 | 클러스터가 시작될 때 시작할 노드 수입니다. |
MaxCount | 정수 | 클러스터가 노드 10개를 넘지 않도록 하려면 값 10을 지정합니다. MaxCount와 MaxCoreCount는 함께 사용할 수 있으며, 이 경우 낮은 유효 제약 조건이 적용됩니다. |
초기 코어 수 | 정수 | 클러스터가 시작될 때 시작할 코어 수입니다. |
최대 코어 수 | 정수 | 클러스터가 코어 100개를 넘지 않도록 하려면 값 100을 지정합니다. MaxCount와 MaxCoreCount는 함께 사용할 수 있으며, 이 경우 낮은 유효 제약 조건이 적용됩니다. |
종료 정책 | String | 노드가 종료될 때 VM에서 수행할 작업을 나타냅니다. 'terminate'이면 노드가 종료될 때 VM도 삭제됩니다. 'deallocate'인 경우 노드가 중지됩니다. (기본값: terminate) |
특성 | String | 정의 |
---|---|---|
Azure.AllocationMethod | 문자열 | 단일 VM을 관리하려면 이를 StandAlone 으로 설정하고 VMSS를 사용하려면 정의하지 않은 상태로 둡니다. |
Azure.SingleScaleset | 불리언 (Boolean) | 모든 노드에 대해 단일 VMSS를 사용합니다(기본값: false). |
Azure.SinglePlacementGroup | 불리언 (Boolean) | VMSS에 대해 단일 배치 그룹 설정을 사용합니다. (기본값 false) |
Azure.Overprovision | 불리언 (Boolean) | VMSS의 Overprovision 기능을 사용합니다. Cyclecloud는 시나리오에 따라 동적으로 설정됩니다. 이는 재정의입니다. |
Azure.MaxScaleSetSize | 정수 | 단일 VMSS의 VM 수를 제한합니다. 이 최댓값에 도달하면 CycleCloud는 클러스터에 추가 VMSS를 추가합니다. (기본값: `40`) |
초기 수 | 정수 | 클러스터가 시작될 때 시작할 노드 수입니다. |
MaxCount (최대 카운트) | 정수 | 클러스터가 노드 10개를 넘지 않도록 하려면 값 10을 지정합니다. MaxCount와 MaxCoreCount는 함께 사용할 수 있으며, 이 경우 낮은 유효 제약 조건이 적용됩니다. |
InitialCoreCount | 정수 | 클러스터가 시작될 때 시작할 코어 수입니다. |
최대 코어 수 (MaxCoreCount) | 정수 | 클러스터가 코어 100개를 넘지 않도록 하려면 값 100을 지정합니다. MaxCount와 MaxCoreCount는 함께 사용할 수 있으며, 이 경우 낮은 유효 제약 조건이 적용됩니다. |
종료 정책 | String | 노드가 종료될 때 VM에서 수행할 작업을 나타냅니다. 'terminate'이면 노드가 종료될 때 VM도 삭제됩니다. 'deallocate'인 경우 노드가 중지됩니다. (기본값: terminate) |
스로틀 용량 | 불리언 (Boolean) | Insufficient Capacity 신호를 수신하면 Azure에 대한 요청을 일시 중단할지 여부를 나타냅니다. (기본값 false) |
ThrottleCapacityTime | 상대 시간 | Azure에서 Insufficient Capacity 신호를 수신한 후 백오프 시간입니다. 이 시간 동안 AvailableCount 는 0으로 보고됩니다. (기본값: `5m`) |
비고
모든 VMSS에 FaultDomainCount = 1
이 할당됩니다.
상속
밀접하게 관련된 노드와 nodearray는 동일한 클러스터 템플릿 내의 다른 노드에서 파생될 수 있습니다.
이러한 상속된 정의는 공통 특성을 공유함으로써 필요한 선언을 최소화합니다. 일반적으로 사용되는 것은 [[node defaults]]
섹션으로, 클러스터의 모든 노드와 nodearray에 적용되는 특별한 추상 정의입니다.
특성 | String | 정의 |
---|---|---|
요약 | 불리언 (Boolean) | true인 경우 클러스터에 노드나 nodearray를 만들지 않습니다. 추상화는 상속에 사용될 수 있습니다. (기본값 false) |
확장 | 문자열(목록) | 상속된 노드/nodearray 이름의 순서가 지정된 목록입니다. 값이 충돌하는 경우 목록의 뒷부분에 있는 항목이 우선합니다. '기본' 노드는 항상 목록의 첫 번째에 위치합니다. (기본값: []) |
하위 개체
노드/nodearray 개체에는 volume, network-interface, cluster-init, input-endpoint, 및 configuration이 하위 개체로 있습니다.