共用方式為


Node 和 Nodearray 物件

Node 和 nodearray 物件是排名 2,且從屬至 cluster。 節點代表單一虛擬機,而 nodearray 可以代表虛擬機的集合,或至少一個虛擬機擴展集。

節點預設值

[[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,但會使用特定的 HPC VM 大小 Standard_H16

此範例範本會建立具有兩個節點和 nodearray 的叢集。 Proxy 節點會使用 IsReturnProxy 來定義 ReturnProxy的特殊角色,這會是叢集啟動時來自 CycleCloud 之反向通道 Proxy 的端點。

[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

必要屬性參考

至少需要四個必要屬性,才能成功啟動節點:

屬性 類型 定義
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 字串 要放入此節點之鄰近放置群組的完整標識符。 必須從 /subscriptions/ 開始
PlacementGroupId 字串 如果設定,則會使用此標籤將此節點放在單一放置群組中,而其他所有節點都有 PlacementGroupId 的相符值。 這提供較低的延遲通訊,而且需要啟用支援 InfiniBand 的 VM 大小。 這通常會視需要由排程器設定,因此不需要手動指定。
KeyPairLocation 整數 CycleCloud 會在本機文件系統上找到 SSH 金鑰組的位置
KeepAlive 布爾 如果為 true,CycleCloud 會防止此節點終止
櫃子 字串 指定要從中下載項目規格的保險箱名稱。 請參閱使用專案
BootDiagnosticsUri 字串 開機診斷的記憶體 URI(例如:https://mystorageaccount.blob.core.windows.net/),如果指定的話。 將會套用記憶體費用。
HybridBenefit 布爾 如果為 true,請啟用 Windows VM 的「Azure Hybrid Benefit」授權
EnableTerminateNotification (8.2.0+) 布爾 如果為 true,請啟用 終止通知 將 VM 刪除時的事件傳送至 VM 以進行本機處理。 這隻適用於擴展集 VM。
TerminateNotificationTimeout (8.2.2+) 相對時間 如果啟用終止通知,這會控制 VM 在刪除之前處理事件的時間長度。
ThrottleCapacity (8.2.2+) 布爾 如果為 true,此 nodearray 會在遇到容量問題後,向自動調整程式回報 0 個容量,預設值為 5 分鐘
ThrottleCapacityTime (8.2.2+) 相對時間 如果啟用 ThrottleCapacity,這是在容量受限之後報告 0 可用性的時間長度。 預設值為 「5m」。。
HybridBenefitLicense (8.3.0+) 字串 如果 HybridBenefit 為 true,這會指定要使用的授權:RHEL_BYOSSLES_BYOSWindows_Server。 預設值為 Windows_Server
FlexScaleSetId (8.3.0+) 字串 如果設定,這是 Flex 協調流程模式中擴展集的完整標識碼, 用於此節點的 VM。
EncryptionAtHost (8.4.0+) 布爾 如果為 true,則虛擬機將會啟用 主機加密
SecurityType (8.5.0+) 字串 設定 安全性類型;未定義、TrustedLaunchConfidentialVM
EnableSecureBoot (8.5.0+) 布爾 如果使用受信任的啟動 VM 或機密 VM,請啟用 安全開機
EnableVTPM (8.5.0+) 布爾 如果使用受信任的啟動 VM 或機密 VM,請啟用 虛擬信任平臺模組

注意

鄰近放置群組是一般 Azure 功能,必須先建立一個,才能在節點上參考。 這可讓 CycleCloud VM 與該鄰近放置群組中的其他 Azure 資源共置,但不會啟用 InfiniBand 網路功能。 相反地,PlacementGroupId 是 CycleCloud 中的任意字串,用來將節點的 VM 分組成限制在相同網路交換器下的單一擴展集,但可能不會與其他 Azure 資源共置。 這兩者都可以一起使用,但這可能會減少可配置的 VM 數目。

影像屬性

VM 映像是啟動虛擬機的必要設定。 映射定義有三種有效形式:預設 CycleCloud 映射名稱、Marketplace 映射定義和映像標識符。

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 屬性中指定,編碼為格式為 URN Publisher:Offer:Sku:ImageVersion

具有自訂定價方案的映像

附加定價方案的共用映射庫映射需要使用方案的相關信息,除非該資訊儲存在共用映像庫映射中。 使用 Publisher、Product 和 Plan 巢狀屬性,使用 ImagePlan 屬性來指定。

注意

搭配定價方案使用自定義映像需要 CycleCloud 8.0.2 或更新版本。

ImageId

或者,也可以使用認證訂用帳戶中 VM 映像的資源識別碼:

屬性 類型 定義
ImageId 字串 VM 映像的資源標識碼

影像屬性

ImageIds 所定義的 Marketplace 映射和映射需要一些額外的設定,才能正確設定 CycleCloud OS 擴充功能:

屬性 類型 定義
DownloadJetpack 布爾 如果為 false,CycleCloud 將不會從記憶體帳戶下載 Jetpack。 Jetpack 必須已安裝。 注意:僅支援Linux節點。 默認值為 true。 已在8.4.1中新增。
InstallJetpack 布爾 如果為 false,CycleCloud 將不會在新 VM 上安裝 Jetpack。 默認值為 true。
AwaitInstallation 布爾 如果為 false,CycleCloud 將不會等候 Jetpack 在建立 VM 時報告安裝詳細數據。 默認值為 true。
JetpackPlatform 字串 Jetpack 安裝程式平臺使用:centos-7centos-6ubuntu-14.04ubuntu-16.04windows。 7.7.0 中已被取代。

警告

不建議設定 InstallJetpackAwaitInstallation。 此外,設定 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 布爾 建立此節點的反向通道 Proxy。 每個叢集只能有一個節點,此設定為 true。
ReturnPath.Hostname 主機名 節點可連線到 CycleCloud 的主機名。
ReturnPath.WebserverPort 整數 節點可連線到 CycleCloud 的 Web 伺服器埠。
ReturnPath.BrokerPort 整數 節點可連線到 CycleCloud 的訊息代理程式。

標籤

CycleCloud 支援標記 VM 和 VMSS。

屬性 字串 定義
標籤 字串 除了 CycleCloud 預設指派的標籤之外,請使用 tags.my-tag = my-tag-value 將標籤新增至部署。

一般/現成屬性

CycleCloud 支援透過下列屬性使用 Spot VM。 如需詳細資訊,請參閱 現成虛擬機

屬性 字串 定義
可中斷 布爾 如果為 true,VM 將會是 Spot VM,以提供較低的定價。
MaxPrice 要花費在 VM 上的最高價格。 (預設值:-1)

Nodearray-Specific 屬性

節點的所有屬性都對 nodearray 有效,但節點陣列是彈性資源,因此可以使用其他屬性。 Nodearray 是 Azure VirtualMachine ScaleSets (VMSS) 的驅動程式,而且可以有許多支援 VMSS。

屬性 字串 定義
Azure.AllocationMethod 字串 將此設定為 StandAlone 來管理單一 VM,或保留未定義以使用 VMSS。
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 字串 將此設定為 StandAlone 來管理單一 VM,或保留未定義以使用 VMSS。
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 會回報為零。 (預設值: '5m')

注意

所有 VMSS 都會指派 FaultDomainCount = 1

遺產

與緊密相關的節點和 nodearray 可以衍生自相同叢集範本中的其他節點。 這些繼承的定義會將共用通用屬性所需的宣告降到最低。 常用的是 [[node defaults]] 區段,這是一個特殊的抽象定義,適用於叢集中的所有節點和 nodearray。

屬性 字串 定義
抽象 布爾 如果為 true,請勿在叢集中建立節點或 nodearray。 抽象可以用於繼承。 (預設值:false)
延伸 字串(清單) 已排序的繼承節點/nodearray 名稱清單。 稍後清單中的專案在值衝突時優先。 'defaults' 節點一律會有效成為清單中的第一個節點。 (預設值: [])

從屬物件

節點/nodearray 物件具有 磁碟區網路介面cluster-init輸入端點,以及 設定 作為次級物件。