Node オブジェクトと Nodearray オブジェクト

Node オブジェクトと nodearray オブジェクトはランク 2 であり、clusterに従属します。 ノードは 1 つの仮想マシンを表しますが、nodearray は仮想マシンのコレクションまたは少なくとも 1 つの仮想マシン スケール セットを表すことができます。

ノードの既定値

[[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から Credential と SubnetId を継承しますが、Standard_H16の特定の HPC VM サイズを使用します。

このテンプレート例では、2 つのノードと 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} 形式のサブネット定義
資格 情報 クラウド プロバイダー アカウントの名前。

4 番目に必要な属性は、イメージに関連しています。 イメージ属性が必要ですが、いくつかの形式が使用できます。「イメージ属性」を参照してください。

その他の属性

属性 種類 定義
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 ブート診断のストレージ URI (例: https://mystorageaccount.blob.core.windows.net/) (指定されている場合)。 ストレージ料金が適用されます。
HybridBenefit ブーリアン true の場合は、Windows VM の "Azure ハイブリッド特典" ライセンスを有効にします
EnableTerminateNotification (8.2.0 以降) ブーリアン true の場合、Terminate Notification は、ローカル処理のために VM 削除時のイベントを VM に送信できるようにします。 これはスケールセット VM にのみ適用されます。
TerminateNotificationTimeout (8.2.2 以降) 相対時間 terminate-notification が有効になっている場合、削除される前にイベントを処理するために VM が与えられる時間を制御します。
ThrottleCapacity (8.2.2 以降) ブーリアン true の場合、この nodearray は、容量の問題が発生した後、既定の 5 分間、自動スケーラーに 0 の容量を報告します
ThrottleCapacityTime (8.2.2 以降) 相対時間 ThrottleCapacity が有効になっている場合、容量が制限された後に 0 の可用性を報告する期間です。 既定値は "5m" です。
HybridBenefitLicense (8.3.0 以降) HybridBenefit が true の場合、使用するライセンスを指定します:RHEL_BYOSSLES_BYOS、または Windows_Server。 既定値は Windows_Serverです。
FlexScaleSetId (8.3.0 以降) 設定されている場合、これは、このノードの VM に使用される flex オーケストレーション モード スケールセットの完全修飾 ID です。
EncryptionAtHost (8.4.0 以降) ブーリアン true の場合、仮想マシンではホスト での 暗号化が有効になります。
SecurityType (8.5.0 以降) セキュリティの種類を設定します。未定義、TrustedLaunch、または ConfidentialVM
EnableSecureBoot (8.5.0 以降) ブーリアン 信頼された起動 VM または機密 VM を使用している場合は、セキュア ブート有効にします。
EnableVTPM (8.5.0 以降) ブーリアン 信頼された起動 VM または機密 VM 使用している場合は、仮想トラステッド プラットフォーム モジュールのを有効にします。

手記

近接通信配置グループは一般的な Azure 機能であり、ノードで参照する前に作成する必要があります。 これにより、CycleCloud VM をその近接配置グループ内の他の Azure リソースと併置できますが、InfiniBand ネットワークは有効になりません。 これに対し、PlacementGroupId は、ノードの VM を 1 つのスケールセットにグループ化するために使用される CycleCloud の任意の文字列であり、同じネットワーク スイッチの下に制限されていますが、他の Azure リソースと併置されない可能性があります。 両方を組み合わせて使用できますが、割り当て可能な VM の数が減る可能性があります。

イメージ属性

VM イメージは、仮想マシンを起動するために必要な設定です。 イメージ定義には、既定の CycleCloud イメージ名、Marketplace イメージ定義、イメージ ID の 3 つの有効な形式があります。

ImageName

CycleCloud では、さまざまな OS フレーバーで使用できる多くの既定の Marketplace イメージがサポートされています。 これらは、ImageNameで指定できます。

属性 種類 定義
ImageName サイクルでサポートされるイメージ名。 cycle.image。[win2016, win2012, centos7, centos6, ubuntu16, ubuntu14]

Marketplace イメージ

サイクル管理の Marketplace イメージと共に、PublisherOfferSkuImageVersionを指定することで、任意のマーケットプレース イメージを使用できます。

属性 種類 定義
Azure.Publisher VM Marketplace イメージの発行元
Azure.Offer VM Marketplace イメージのオファー
Azure.Sku VM Marketplace イメージの SKU
Azure.ImageVersion Marketplace イメージのイメージ バージョン。

手記

Marketplace イメージは、ImageName 属性で指定することもできます。これは、Publisher:Offer:Sku:ImageVersion形式の URN としてエンコードされます。

カスタム価格プランを使用したイメージ

価格プランがアタッチされている共有イメージ ギャラリー イメージでは、その情報が共有イメージ ギャラリー イメージに格納されていない限り、プランに関する情報を使用する必要があります。 これは、publisher、Product、Plan の入れ子になった属性を使用して、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 の場合、CycleCloud は、VM の作成時に Jetpack がインストールの詳細を報告するのを待機しません。 既定値は true です。
JetpackPlatform 使用するジェットパックインストーラプラットフォーム:centos-7centos-6ubuntu-14.04ubuntu-16.04windows。 7.7.0 では非推奨です。

警告

InstallJetpack または AwaitInstallation の設定はお勧めしません。 さらに、DownloadJetpack 設定するには、Jetpack インストールの正しいバージョンのカスタム イメージが必要であり、ストレージ アカウントからのダウンロードで問題が発生している環境にのみ推奨されます。

手記

ImageId は、1 つのノード定義に複数のイメージ定義が含まれている場合に、既定で使用されます。

代替画像のサンプル

ノードの 3 つの代替イメージ コンストラクトを使用するサンプル テンプレートを次に示します。

[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 にできるのは、クラスターごとに 1 つのノードだけです。
ReturnPath.Hostname ホスト名 ノードが CycleCloud に到達できるホスト名。
ReturnPath.WebserverPort 整数 ノードが CycleCloud に到達できる Web サーバー ポート。
ReturnPath.BrokerPort 整数 ノードが CycleCloud に到達できるブローカー。

タグ

CycleCloud では、VM と VMSS のタグ付けがサポートされています。

属性 定義
タグ tags.my-tag = my-tag-value を使用して、既定で CycleCloud によって割り当てられたタグに加えて、タグをデプロイに追加します。

標準/スポット属性

CycleCloud では、次の属性を使用したスポット VM の使用がサポートされています。 詳細については、「スポット仮想マシンの」を参照してください。

属性 定義
中断 ブーリアン true の場合、VM はスポット VM になり、料金が削減されます。
MaxPrice 浮く VM に費やす最大価格。 (既定値: -1)

Nodearray-Specific 属性

ノードのすべての属性は nodearray に対して有効ですが、ノード配列はエラスティック リソースであるため、追加の属性を使用できます。 Nodearray は Azure VirtualMachine ScaleSets (VMSS) のドライバーであり、多数のバッキング VMSS を持つことができます。

属性 定義
Azure.AllocationMethod これを StandAlone に設定して単一の VM を管理するか、VMSS を使用するように未定義のままにします。
Azure.SingleScaleset ブーリアン すべてのノードに 1 つの VMSS を使用します (既定値: false)。
Azure.SinglePlacementGroup ブーリアン VMSS の単一配置グループ設定を使用します。 (既定値: false)
Azure.Overprovision ブーリアン VMSS のオーバープロビジョニング機能を使用します。 Cyclecloud は、シナリオに応じて動的に設定されます。 これはオーバーライドです。
Azure.MaxScaleSetSize 整数 1 つの VMSS 内の VM の数を制限します。 この最大値に達すると、CycleCloud によってクラスターに VMSS が追加されます。 (既定値: '40')
InitialCount 整数 クラスターの起動時に開始するノードの数。
MaxCount 整数 クラスターが 10 ノードを超えないようにするには、値 10 を指定します。 MaxCount と MaxCoreCount を組み合わせて使用できることに注意してください。この場合、低い有効な制約が有効になります。
InitialCoreCount 整数 クラスターの起動時に開始するコアの数。
MaxCoreCount 整数 クラスターが 100 コアを超えないようにするには、値 100 を指定します。 MaxCount と MaxCoreCount を組み合わせて使用できることに注意してください。この場合、低い有効な制約が有効になります。
ShutdownPolicy ノードがシャットダウンしたときに VM を操作する方法を示します。 "terminate" の場合、ノードのシャットダウン時に VM が削除されます。 "割り当て解除" の場合、ノードは停止されます。 (既定値: terminate)
属性 定義
Azure.AllocationMethod これを StandAlone に設定して単一の VM を管理するか、VMSS を使用するように未定義のままにします。
Azure.SingleScaleset ブーリアン すべてのノードに 1 つの VMSS を使用します (既定値: false)。
Azure.SinglePlacementGroup ブーリアン VMSS の単一配置グループ設定を使用します。 (既定値: false)
Azure.Overprovision ブーリアン VMSS のオーバープロビジョニング機能を使用します。 Cyclecloud は、シナリオに応じて動的に設定されます。 これはオーバーライドです。
Azure.MaxScaleSetSize 整数 1 つの VMSS 内の VM の数を制限します。 この最大値に達すると、CycleCloud によってクラスターに VMSS が追加されます。 (既定値: '40')
InitialCount 整数 クラスターの起動時に開始するノードの数。
MaxCount 整数 クラスターが 10 ノードを超えないようにするには、値 10 を指定します。 MaxCount と MaxCoreCount を組み合わせて使用できることに注意してください。この場合、低い有効な制約が有効になります。
InitialCoreCount 整数 クラスターの起動時に開始するコアの数。
MaxCoreCount 整数 クラスターが 100 コアを超えないようにするには、値 100 を指定します。 MaxCount と MaxCoreCount を組み合わせて使用できることに注意してください。この場合、低い有効な制約が有効になります。
ShutdownPolicy ノードがシャットダウンしたときに VM を操作する方法を示します。 "terminate" の場合、ノードのシャットダウン時に VM が削除されます。 "割り当て解除" の場合、ノードは停止されます。 (既定値: terminate)
ThrottleCapacity ブーリアン シグナルの受信時に Azure への要求 Insufficient Capacity 中断するかどうか。 (既定値: false)
ThrottleCapacityTime 相対時間 Azure から Insufficient Capacity シグナルを受信した後のバックオフ時間。 AvailableCount は、この期間中にゼロとして報告されます。 (既定値: '5m')

手記

すべての VMSS が FaultDomainCount = 1 割り当てられます

継承

密接に関連するノードと nodearray は、同じクラスター テンプレート内の他のノードから派生できます。 これらの継承された定義は、共通の属性を共有することによって必要な宣言を最小限に抑えます。 一般的に使用される [[node defaults]] セクションは、クラスター内のすべてのノードと nodearray に適用される特別な抽象定義です。

属性 定義
要約 ブーリアン true の場合は、クラスターにノードまたは nodearray を作成しないでください。 抽象は継承に使用できます。 (既定値: false)
拡張 文字列 (リスト) 継承されたノード/nodearray 名の順序付きリスト。 値が競合する場合は、一覧の後半の項目が優先されます。 'defaults' ノードは、常にリストの最初のノードになります。 (既定値: [])

下位オブジェクト

node/nodearray オブジェクトには、ボリュームネットワーク インターフェイスcluster-init入力エンドポイント、および下位オブジェクトとして 構成 があります。