Node 및 Nodearray 개체
Node 및 nodearray 개체는 순위 2이며 cluster
종속됩니다. 노드는 단일 Virtual Machine을 나타내는 반면 nodearray는 Virtual Machines 컬렉션 또는 하나 이상의 Virtual Machine 확장 집합을 나타낼 수 있습니다.
노드 기본값
[[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
nodearray 노드 defaults
자격 증명 및 SubnetId를 상속하지만 특정 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개입니다.
속성 | 형 | 정의 |
---|---|---|
MachineType | 문자열 | Azure VM 크기 |
SubnetId | 문자열 |
${rg}/${vnet}/${subnet} 형식의 서브넷 정의 |
자격 증명 | 문자열 | 클라우드 공급자 계정의 이름입니다. |
네 번째 필수 특성은 이미지와 관련이 있습니다. 이미지 특성은 필수이지만 사용할 수 있는 여러 가지 양식이 있습니다. 이미지 특성을 참조하세요.
추가 특성
속성 | 형 | 정의 |
---|---|---|
ComputerName | 문자열 | VM의 컴퓨터 이름입니다. 지정한 경우 시스템 생성 이름을 재정의합니다. |
ComputerNamePrefix | 문자열 | 시스템에서 생성된 컴퓨터 이름에 미리 보류된 접두사 |
구역 | 문자열(목록) | VM 또는 VMSS에 대한 가용성 영역입니다. VMSS의 목록이 될 수 있습니다. 예: Zone = 1,3 |
KeyPairLocation | 정수 | 여기서 CycleCloud는 로컬 파일 시스템에 SSH 키페어를 찾을 수 있습니다. |
KeepAlive | 부울 | true이면 CycleCloud가 이 노드의 종료를 방지합니다. |
사물함 | 문자열 | 프로젝트 사양을 다운로드할 사물함의 이름을 지정합니다. 프로젝트 사용 |
속성 | 형 | 정의 |
---|---|---|
ComputerName | 문자열 | VM의 컴퓨터 이름입니다. 지정한 경우 시스템 생성 이름을 재정의합니다. |
ComputerNamePrefix | 문자열 | 시스템에서 생성된 컴퓨터 이름에 미리 보류된 접두사 |
EphemeralOSDisk | 부울 | 지원되는 경우 VM에 임시 부팅 디스크 사용 |
구역 | 문자열(목록) | VM 또는 VMSS에 대한 가용성 영역입니다. VMSS의 목록이 될 수 있습니다. 예: Zone = 1,3 |
ProximityPlacementGroupId | 문자열 | 이 노드를 넣을 근접 배치 그룹의 전체 ID입니다.
/subscriptions/ 시작해야 합니다. |
PlacementGroupId | 문자열 | 설정된 경우 이 레이블은 PlacementGroupId에 일치하는 값을 가진 다른 모든 노드가 있는 단일 배치 그룹에 이 노드를 배치하는 데 사용됩니다. 이렇게 하면 대기 시간 통신이 짧아지고 이를 지원하는 VM 크기에서 InfiniBand를 사용하도록 설정해야 합니다. 이는 일반적으로 필요에 따라 스케줄러에 의해 설정되므로 수동으로 지정할 필요가 없습니다. |
KeyPairLocation | 정수 | 여기서 CycleCloud는 로컬 파일 시스템에 SSH 키페어를 찾을 수 있습니다. |
KeepAlive | 부울 | true이면 CycleCloud가 이 노드의 종료를 방지합니다. |
사물함 | 문자열 | 프로젝트 사양을 다운로드할 사물함의 이름을 지정합니다. 프로젝트 사용 |
BootDiagnosticsUri | 문자열 | 부팅 진단(예: https://mystorageaccount.blob.core.windows.net/)에 대한 스토리지 URI(지정된 경우)입니다. 스토리지 요금이 적용됩니다. |
HybridBenefit | 부울 | true이면 Windows VM에 대해 "Azure 하이브리드 혜택" 라이선스를 사용하도록 설정합니다. |
EnableTerminateNotification(8.2.0 이상) | 부울 | true이면 종료 알림 로컬 처리를 위해 VM 삭제에 대한 이벤트를 VM에 보낼 수 있습니다. 이는 확장 집합 VM에만 적용됩니다. |
TerminateNotificationTimeout(8.2.2 이상) | 상대 시간 | 종료 알림을 사용하도록 설정하면 삭제되기 전에 이벤트를 처리하기 위해 VM이 제공되는 기간을 제어합니다. |
ThrottleCapacity(8.2.2 이상) | 부울 | true이면 이 nodearray는 용량 문제가 발생한 후 기본값인 5분 동안 자동 크기 조정자에 0개의 용량을 보고합니다. |
ThrottleCapacityTime(8.2.2 이상) | 상대 시간 |
ThrottleCapacity 사용하도록 설정된 경우 용량이 제한된 후 0 가용성을 보고하는 데 걸리는 기간입니다. 기본값은 "5m"입니다. |
HybridBenefitLicense(8.3.0 이상) | 문자열 |
HybridBenefit true이면 RHEL_BYOS , SLES_BYOS 또는 Windows_Server 사용할 라이선스를 지정합니다. 기본값은 Windows_Server . |
FlexScaleSetId(8.3.0 이상) | 문자열 | 설정된 경우 이 노드의 VM에 사용되는 Flex 오케스트레이션 모드 확장 집합의 정규화된 ID입니다. |
EncryptionAtHost(8.4.0 이상) | 부울 | true이면 가상 머신은 호스트에서 암호화를 사용하도록 설정됩니다. |
SecurityType(8.5.0 이상) | 문자열 |
보안 유형설정합니다. undefined, TrustedLaunch 또는 ConfidentialVM |
EnableSecureBoot(8.5.0 이상) | 부울 | 신뢰할 수 있는 시작 VM 또는 기밀 VM을 사용하는 경우 보안 부팅사용하도록 설정합니다. |
EnableVTPM(8.5.0 이상) | 부울 | 신뢰할 수 있는 시작 VM 또는 기밀 VM을 사용하는 경우 가상 신뢰할 수 있는 플랫폼 모듈사용하도록 설정합니다. |
메모
근접 배치 그룹은 일반적인 Azure 기능이며 노드에서 참조하려면 먼저 만들어야 합니다.
이렇게 하면 CycleCloud VM을 해당 근접 배치 그룹의 다른 Azure 리소스와 함께 배치할 수 있지만 InfiniBand 네트워킹을 사용하도록 설정하지는 않습니다.
반면, PlacementGroupId
노드의 VM을 동일한 네트워킹 스위치로 제한되지만 다른 Azure 리소스와 함께 배치되지 않을 수 있는 단일 확장 집합으로 그룹화하기 위해 사용되는 CycleCloud의 임의 문자열입니다.
둘 다 함께 사용할 수 있지만 할당할 수 있는 VM 수가 줄어들 수 있습니다.
이미지 특성
VM 이미지는 가상 머신을 시작하는 데 필요한 설정입니다. 이미지 정의에는 기본 CycleCloud 이미지 이름, Marketplace 이미지 정의 및 이미지 ID의 세 가지 유효한 형식이 있습니다.
ImageName
CycleCloud는 다양한 OS 버전에 사용할 수 있는 다양한 기본 Marketplace 이미지를 지원합니다.
ImageName
사용하여 지정할 수 있습니다.
속성 | 형 | 정의 |
---|---|---|
ImageName | 문자열 | 주기 지원 이미지 이름입니다. cycle.image. [win2016, win2012, centos7, centos6, ubuntu16, ubuntu14] |
Marketplace 이미지
주기 관리 Marketplace 이미지와 함께 모든 마켓플레이스 이미지는 Publisher
, Offer
, Sku
및 ImageVersion
지정하여 사용할 수 있습니다.
속성 | 형 | 정의 |
---|---|---|
Azure.Publisher | 문자열 | VM Marketplace 이미지 게시자 |
Azure.Offer | 문자열 | VM Marketplace용 제품 이미지 |
Azure.Sku | 문자열 | VM Marketplace 이미지의 SKU |
Azure.ImageVersion | 문자열 | Marketplace 이미지의 이미지 버전입니다. |
메모
또한 Marketplace 이미지는 ImageName
특성에 지정할 수 있으며 Publisher:Offer:Sku:ImageVersion
양식에서 URN로 인코딩됩니다.
사용자 지정 가격 책정 계획이 있는 이미지
가격 책정 계획이 연결된 공유 이미지 갤러리 이미지는 해당 정보가 공유 이미지 갤러리 이미지에 저장되지 않는 한 사용하려는 플랜에 대한 정보가 필요합니다. 게시자, 제품 및 계획 중첩 특성을 사용하여 ImagePlan
특성으로 지정됩니다.
메모
가격 책정 계획에서 사용자 지정 이미지를 사용하려면 CycleCloud 8.0.2 이상이 필요합니다.
ImageId
또는 자격 증명 구독에서 VM 이미지의 리소스 ID를 사용할 수도 있습니다.
속성 | 형 | 정의 |
---|---|---|
ImageId | 문자열 | VM 이미지의 리소스 ID |
이미지 특성
ImageIds에서 정의한 Marketplace 이미지 및 이미지는 CycleCloud OS 확장을 올바르게 구성하려면 몇 가지 추가 설정이 필요합니다.
속성 | 형 | 정의 |
---|---|---|
DownloadJetpack | 부울 | false이면 CycleCloud는 스토리지 계정에서 Jetpack을 다운로드하지 않습니다. Jetpack이 이미 설치되어 있어야 합니다. 참고: Linux 노드만 지원됩니다. 기본값은 true입니다. 8.4.1에 추가되었습니다. |
InstallJetpack | 부울 | false이면 CycleCloud는 새 VM에 Jetpack을 설치하지 않습니다. 기본값은 true입니다. |
AwaitInstallation | 부울 | false이면 VM을 만들 때 Jetpack이 설치 세부 정보를 보고할 때까지 CycleCloud가 기다리지 않습니다. 기본값은 true입니다. |
JetpackPlatform | 문자열 | 사용할 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 | 부울 | 이 노드에 대한 역방향 채널 프록시를 설정합니다. 클러스터당 하나의 노드만 이 설정을 true로 설정할 수 있습니다. |
ReturnPath.Hostname | 호스트 이름 | 노드가 CycleCloud에 도달할 수 있는 호스트 이름입니다. |
ReturnPath.WebserverPort | 정수 | 노드가 CycleCloud에 도달할 수 있는 웹 서버 포트입니다. |
ReturnPath.BrokerPort | 정수 | 노드가 CycleCloud에 도달할 수 있는 Broker입니다. |
태그
CycleCloud는 VM 및 VMSS 태그 지정을 지원합니다.
속성 | 문자열 | 정의 |
---|---|---|
태그 | 문자열 |
tags.my-tag = my-tag-value 사용하여 기본적으로 CycleCloud에서 할당한 태그 외에도 배포에 태그를 추가합니다. |
일반/스폿 특성
CycleCloud는 다음 특성을 통해 스폿 VM의 사용을 지원합니다. 자세한 내용은 Spot Virtual Machines 참조하세요.
속성 | 문자열 | 정의 |
---|---|---|
인터럽트 가능 | 부울 | true이면 VM은 할인된 가격을 제공하는 스폿 VM이 됩니다. |
MaxPrice | 뜨다 | VM에 지출할 최대 가격입니다. (기본값: -1) |
Nodearray-Specific 특성
노드에 대한 모든 특성은 nodearray에 유효하지만 노드 배열은 탄력적 리소스이므로 추가 특성을 사용할 수 있습니다. Nodearray는 Azure VMSS(VirtualMachine ScaleSets)의 드라이버이며 많은 지원 VMSS를 가질 수 있습니다.
속성 | 문자열 | 정의 |
---|---|---|
Azure.AllocationMethod | 문자열 | 단일 VM을 관리하거나 VMSS를 사용하도록 정의되지 않은 상태로 두려면 이 설정을 StandAlone 설정합니다. |
Azure.SingleScaleset | 부울 | 모든 노드에 단일 VMSS를 사용합니다(기본값: false). |
Azure.SinglePlacementGroup | 부울 | VMSS에 단일 배치 그룹 설정을 사용합니다. (기본값: false) |
Azure.Overprovision | 부울 | VMSS의 오버프로비전 기능을 사용합니다. Cyclecloud는 시나리오에 따라 동적으로 설정됩니다. 이는 재정의입니다. |
Azure.MaxScaleSetSize | 정수 | 단일 VMSS의 VM 수를 제한합니다. 이 최대값에 도달하면 CycleCloud는 클러스터에 VMSS를 추가합니다. (기본값: '40') |
InitialCount | 정수 | 클러스터가 시작될 때 시작할 노드 수입니다. |
MaxCount | 정수 | 클러스터가 10개 노드를 초과하지 않도록 하려면 값 10을 지정합니다. MaxCount 및 MaxCoreCount를 함께 사용할 수 있습니다. 이 경우 낮은 유효 제약 조건이 적용됩니다. |
InitialCoreCount | 정수 | 클러스터가 시작될 때 시작할 코어 수입니다. |
MaxCoreCount | 정수 | 클러스터가 100코어를 초과하지 않도록 하려면 값 100을 지정합니다. MaxCount 및 MaxCoreCount를 함께 사용할 수 있습니다. 이 경우 낮은 유효 제약 조건이 적용됩니다. |
ShutdownPolicy | 문자열 | 노드가 종료되면 VM으로 수행할 작업을 나타냅니다. '종료'하면 노드가 종료될 때 VM이 삭제됩니다. '할당 취소'이면 노드가 대신 중지됩니다. (기본값: 종료) |
속성 | 문자열 | 정의 |
---|---|---|
Azure.AllocationMethod | 문자열 | 단일 VM을 관리하거나 VMSS를 사용하도록 정의되지 않은 상태로 두려면 이 설정을 StandAlone 설정합니다. |
Azure.SingleScaleset | 부울 | 모든 노드에 단일 VMSS를 사용합니다(기본값: false). |
Azure.SinglePlacementGroup | 부울 | VMSS에 단일 배치 그룹 설정을 사용합니다. (기본값: false) |
Azure.Overprovision | 부울 | VMSS의 오버프로비전 기능을 사용합니다. Cyclecloud는 시나리오에 따라 동적으로 설정됩니다. 이는 재정의입니다. |
Azure.MaxScaleSetSize | 정수 | 단일 VMSS의 VM 수를 제한합니다. 이 최대값에 도달하면 CycleCloud는 클러스터에 VMSS를 추가합니다. (기본값: '40') |
InitialCount | 정수 | 클러스터가 시작될 때 시작할 노드 수입니다. |
MaxCount | 정수 | 클러스터가 10개 노드를 초과하지 않도록 하려면 값 10을 지정합니다. MaxCount 및 MaxCoreCount를 함께 사용할 수 있습니다. 이 경우 낮은 유효 제약 조건이 적용됩니다. |
InitialCoreCount | 정수 | 클러스터가 시작될 때 시작할 코어 수입니다. |
MaxCoreCount | 정수 | 클러스터가 100코어를 초과하지 않도록 하려면 값 100을 지정합니다. MaxCount 및 MaxCoreCount를 함께 사용할 수 있습니다. 이 경우 낮은 유효 제약 조건이 적용됩니다. |
ShutdownPolicy | 문자열 | 노드가 종료되면 VM으로 수행할 작업을 나타냅니다. '종료'하면 노드가 종료될 때 VM이 삭제됩니다. '할당 취소'이면 노드가 대신 중지됩니다. (기본값: 종료) |
ThrottleCapacity | 부울 |
Insufficient Capacity 신호를 수신할 때 Azure에 대한 요청을 일시 중단할지 여부입니다. (기본값: false) |
ThrottleCapacityTime | 상대 시간 | Azure에서 Insufficient Capacity 신호를 받은 후의 백오프 시간입니다. 이 시간 동안 AvailableCount 0으로 보고됩니다. (기본값: '5m') |
메모
모든 VMSS가 할당됩니다FaultDomainCount = 1
상속
밀접하게 관련된 노드 및 nodearray는 동일한 클러스터 템플릿의 다른 노드에서 파생될 수 있습니다.
이러한 상속된 정의는 공통 특성을 공유하여 필요한 선언을 최소화합니다. 일반적으로 사용되는 [[node defaults]]
섹션은 클러스터의 모든 노드 및 nodearray에 적용되는 특별한 추상 정의입니다.
속성 | 문자열 | 정의 |
---|---|---|
추상적인 | 부울 | true이면 클러스터에 노드 또는 nodearray를 만들지 마세요. 추상은 상속에 사용할 수 있습니다. (기본값: false) |
확장 | 문자열(목록) | 상속된 노드/nodearray 이름의 순서가 지정된 목록입니다. 값이 충돌하면 목록의 뒷부분에 있는 항목이 우선적으로 적용됩니다. 'defaults' 노드는 항상 효과적으로 목록의 첫 번째 노드가 됩니다. (기본값: []) |
하위 개체
node/nodearray 개체에는 볼륨, 네트워크 인터페이스, cluster-init, 입력 엔드포인트및 구성 하위 개체로 포함됩니다.