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_BYOS 、SLES_BYOS 、または Windows_Server 。 既定値は Windows_Server です。 |
FlexScaleSetId (8.3.0 以降) | 糸 | 設定されている場合、これは、このノードの VM に使用される flex オーケストレーション モード |
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 イメージと共に、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 としてエンコードされます。
カスタム価格プランを使用したイメージ
価格プランがアタッチされている共有イメージ ギャラリー イメージでは、その情報が共有イメージ ギャラリー イメージに格納されていない限り、プランに関する情報を使用する必要があります。 これは、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-7 、centos-6 、ubuntu-14.04 、ubuntu-16.04 、windows 。 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、入力エンドポイント、および下位オブジェクトとして 構成 があります。