你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Node 和 Nodearray 对象

Node 和 nodearray 对象排名为 2,并且从属于 cluster。 节点表示单个虚拟机,而节点数组可以表示虚拟机或至少一个虚拟机规模集的集合。

节点默认值

[[node defaults]]是一个特殊的抽象节点,指定群集中所有节点和节点数组的默认设置:

[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

示例

此示例模板创建具有两个节点和一个节点数组的群集。 代理节点使用 IsReturnProxy 定义 的特殊角色,该角色 ReturnProxy将是群集启动时来自 CycleCloud 的反向通道代理的终结点。

[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

必需的属性引用

至少需要四个属性才能成功启动节点:

Attribute 类型 定义
MachineType String Azure VM 大小
SubnetId String 窗体中的子网定义 ${rg}/${vnet}/${subnet}
凭证 String 云提供商帐户的名称。

第四个必需属性与图像相关。 图像属性是必需的,但它可以采用多种形式 - 请参阅图像属性。

其他属性

Attribute 类型 定义
计算机名 字符串 VM 的计算机名称。 如果指定,则 重写系统生成的名称。
ComputerNamePrefix String 预先插入到系统生成的计算机名称的前缀
区域 字符串 (列表) VM 或 VMSS 的可用性区域。 可以是 VMSS 的列表。 例如 Zone = 1,3
KeyPairLocation Integer CycleCloud 在本地文件系统上查找 SSH 密钥对的位置
KeepAlive 布尔 如果为 true,CycleCloud 将阻止终止此节点
柜子 String 指定要从中下载项目规格的保险箱的名称。 请参阅 使用项目
Attribute 类型 定义
计算机名 字符串 VM 的计算机名称。 如果指定,则 重写系统生成的名称。
ComputerNamePrefix String 预先插入到系统生成的计算机名称的前缀
EphemeralOSDisk 布尔 对 VM 使用临时启动磁盘(如果受支持)
区域 字符串 (列表) VM 或 VMSS 的可用性区域。 可以是 VMSS 的列表。 例如 Zone = 1,3
ProximityPlacementGroupId String 要放入此节点的邻近放置组的完整 ID。 必须以 开头 /subscriptions/
PlacementGroupId String 如果已设置,则此标签用于将此节点放置在单个放置组中,该放置组中具有与 PlacementGroupId 的匹配值的其他所有节点。 这提供较低的延迟通信,并且需要在支持它的 VM 大小上启用 InfiniBand。 这通常由计划程序根据需要进行设置,因此无需手动指定。
KeyPairLocation Integer CycleCloud 在本地文件系统上查找 SSH 密钥对的位置
KeepAlive 布尔 如果为 true,CycleCloud 将阻止终止此节点
柜子 String 指定要从中下载项目规格的保险箱的名称。 请参阅 使用项目
BootDiagnosticsUri String 启动诊断 (的存储 URI 示例: https://mystorageaccount.blob.core.windows.net) (如果指定)。 将收取存储费用。
HybridBenefit 布尔 如果为 true,则为 Windows VM 启用“Azure 混合权益”许可
EnableTerminateNotification (8.2.0+) 布尔 如果为 true,则启用 “终止通知 ”以将 VM 删除事件发送到 VM 进行本地处理。 这仅适用于规模集 VM。
TerminateNotificationTimeout (8.2.2+) 相对时间 如果启用了 terminate-notification,这将控制 VM 在删除之前处理事件的时长。
ThrottleCapacity (8.2.2+) 布尔 如果为 true,此 nodearray 将在遇到容量问题后向自动缩放程序报告 0 容量,默认值为 5 分钟
ThrottleCapacityTime (8.2.2+) 相对时间 如果 ThrottleCapacity 已启用 ,则这是在容量受限制后报告 0 可用性的时长。 默认值为“5m”。
HybridBenefitLicense (8.3.0+) String 如果 HybridBenefit 为 true,则指定要使用的许可证: RHEL_BYOSSLES_BYOSWindows_Server。 默认为 Windows_Server
FlexScaleSetId (8.3.0+) String 如果已设置,则这是 Flex 业务流程模式下 规模集的完全限定 ID,用于此节点的 VM。
EncryptionAtHost (8.4.0+) 布尔 如果为 true,则虚拟机将在 主机上启用加密
SecurityType (8.5.0+) String 设置 安全类型;未定义, 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 映像名称、市场映像定义和映像 ID。

ImageName

CycleCloud 支持许多可用于不同 OS 风格的默认市场映像。 可以使用 指定 ImageName这些。

Attribute 类型 定义
ImageName String 循环支持的映像名称。 cycle.image。[win2016、win2012、centos7、centos6、ubuntu16、ubuntu14]

市场映像

除了周期管理的市场映像,还可以通过指定 PublisherOfferSkuImageVersion来使用任何市场映像。

Attribute 类型 定义
Azure.Publisher String VM 市场映像的发布者
Azure.Offer String VM 市场映像套餐
Azure.Sku String VM 市场映像的 SKU
Azure.ImageVersion String 市场映像的映像版本。

注意

也可以在 属性中 ImageName 指定市场映像,以 格式 Publisher:Offer:Sku:ImageVersion编码为 URN。

具有自定义定价计划的映像

共享映像库附加了定价计划的映像需要使用有关计划的信息,除非该信息存储在共享映像库映像中。 使用 Publisher、Product 和 Plan 嵌套属性的 属性指定 ImagePlan

注意

将自定义映像与定价计划配合使用需要 CycleCloud 8.0.2 或更高版本。

ImageId

或者,也可以使用凭据订阅中 VM 映像的资源 ID:

Attribute 类型 定义
ImageId String VM 映像的资源 ID

图像属性

ImageIds 定义的市场映像和映像需要一些其他设置才能正确配置 CycleCloud OS 扩展:

Attribute 类型 定义
DownloadJetpack 布尔 如果为 false,CycleCloud 将不会从存储帐户下载 Jetpack。 必须已安装 Jetpack。 注意:仅支持 Linux 节点。 默认为 true。 在 8.4.1 中添加。
InstallJetpack 布尔 如果为 false,CycleCloud 将不会在新 VM 上安装 Jetpack。 默认为 true。
AwaitInstallation 布尔 如果为 false,CycleCloud 在创建 VM 时不会等待 Jetpack 报告安装详细信息。 默认为 true。
JetpackPlatform String 要使用的 Jetpack 安装程序平台:centos-7、、centos-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

高级网络属性

Attribute 类型 定义
IsReturnProxy 布尔 建立到此节点的反向通道代理。 每个群集只能有一个节点将此设置设置为 true。
ReturnPath.Hostname 主机名 节点可以访问 CycleCloud 的主机名。
ReturnPath.WebserverPort Integer 节点可以访问 CycleCloud 的 Web 服务器端口。
ReturnPath.BrokerPort Integer 节点可访问 CycleCloud 的中转站。

标记

CycleCloud 支持标记 VM 和 VMSS。

Attribute String 定义
标记 String 使用 tags.my-tag = my-tag-value 除了 CycleCloud 默认分配的标记外,还可以将标记添加到部署。

常规/现成属性

CycleCloud 支持通过以下属性使用现成 VM。 有关更多详细信息,请参阅现成虚拟机

Attribute String 定义
可中断 布尔 如果为 true,则 VM 将是提供降低定价的现成 VM。
MaxPrice Float 在 VM 上花费的最高价格。 (默认值:-1)

Nodearray-Specific 属性

节点的所有属性都对 nodearray 有效,但节点数组是弹性资源,因此其他属性可用。 Nodearray 是 Azure VirtualMachine ScaleSets (VMSS) 的驱动程序,可以有许多后备 VMSS。

Attribute String 定义
Azure.AllocationMethod String 将 此项设置为 StandAlone 以管理单个 VM,或保留未定义以使用 VMSS。
Azure.SingleScaleset 布尔 对所有节点使用单个 VMSS (默认值:false) 。
Azure.SinglePlacementGroup 布尔 对 VMSS 使用单个放置组设置。 (默认值:false)
Azure.Overprovision 布尔 使用 VMSS 的过度预配功能。 Cyclecloud 将根据方案动态设置。 这是一个替代。
Azure.MaxScaleSetSize Integer 限制单个 VMSS 中的 VM 数。 达到此最大值后,CycleCloud 将向群集添加其他 VMSS。 (默认值:“40”)
InitialCount Integer 群集启动时要启动的节点数。
MaxCount Integer 若要确保群集永远不会超过 10 个节点,请将值指定为 10。 请注意,MaxCount 和 MaxCoreCount 可以一起使用,在这种情况下,较低有效约束将生效。
InitialCoreCount Integer 群集启动时要启动的核心数。
MaxCoreCount Integer 若要确保群集永远不会超过 100 个核心,请将值指定为 100。 请注意,MaxCount 和 MaxCoreCount 可以一起使用,在这种情况下,较低有效约束将生效。
ShutdownPolicy String 指示在节点关闭时如何处理 VM。 如果“终止”,则会在节点关闭时删除 VM。 如果“解除分配”,则改为停止节点。 (默认值:终止)
Attribute String 定义
Azure.AllocationMethod String 将 此项设置为 StandAlone 以管理单个 VM,或保留未定义以使用 VMSS。
Azure.SingleScaleset 布尔 对所有节点使用单个 VMSS (默认值:false) 。
Azure.SinglePlacementGroup 布尔 对 VMSS 使用单个放置组设置。 (默认值:false)
Azure.Overprovision 布尔 使用 VMSS 的过度预配功能。 Cyclecloud 将根据方案动态设置。 这是一个替代。
Azure.MaxScaleSetSize Integer 限制单个 VMSS 中的 VM 数。 达到此最大值后,CycleCloud 将向群集添加其他 VMSS。 (默认值:“40”)
InitialCount Integer 群集启动时要启动的节点数。
MaxCount Integer 若要确保群集永远不会超过 10 个节点,请将值指定为 10。 请注意,MaxCount 和 MaxCoreCount 可以一起使用,在这种情况下,较低有效约束将生效。
InitialCoreCount Integer 群集启动时要启动的核心数。
MaxCoreCount Integer 若要确保群集永远不会超过 100 个核心,请将值指定为 100。 请注意,MaxCount 和 MaxCoreCount 可以一起使用,在这种情况下,较低有效约束将生效。
ShutdownPolicy String 指示在节点关闭时如何处理 VM。 如果“终止”,则会在节点关闭时删除 VM。 如果“解除分配”,则改为停止节点。 (默认值:终止)
ThrottleCapacity 布尔 是否在收到信号时挂起对 Azure 的请求 Insufficient Capacity 。 (默认值:false)
ThrottleCapacityTime 相对时间 收到来自 Azure 的 Insufficient Capacity 信号后的退避时间。 AvailableCount 在此期间将报告为零。 (默认值:“5m”)

注意

将分配所有 VMSS FaultDomainCount = 1

继承

密切相关的节点和节点数组可以派生自同一群集模板中的其他节点。 这些继承的定义通过共享公共属性来最大程度地减少所需的声明。 常用的部分是 [[node defaults]] 节,它是一个特殊的抽象定义,适用于群集中的所有节点和节点数组。

Attribute String 定义
摘要 布尔 如果为 true,请不要在群集中创建节点或节点数组。 抽象可用于继承。 (默认值:false)
扩展 字符串 (列表) 继承的节点/节点数组名称的有序列表。 当值发生冲突时,列表中的项优先。 “defaults”节点将始终有效地位于列表中的第一位。 (默认值:[])

从属对象

node/nodearray 对象将 网络接口cluster-initinput-endpoint配置 作为从属对象。