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

节点和 Nodearray 对象

节点和 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继承凭据和 SubnetId,但使用特定的 HPC VM 大小 Standard_H16

此示例模板创建包含两个节点和一个 nodearray 的群集。 代理节点使用 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

必需属性引用

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

属性 类型 定义
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 字符串 启动诊断的存储 URI(例如:https://mystorageaccount.blob.core.windows.net/),如果指定。 存储费用将适用。
HybridBenefit 布尔 如果为 true,请为 Windows VM 启用“Azure 混合权益”许可
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+) 字符串 如果已设置,则这是 弹性业务流程模式中规模集的完全限定 ID, 用于此节点的 VM。
EncryptionAtHost (8.4.0+) 布尔 如果为 true,则虚拟机将启用 主机加密
SecurityType (8.5.0+) 字符串 设置 安全类型;未定义、TrustedLaunchConfidentialVM
EnableSecureBoot (8.5.0+) 布尔 如果使用受信任的启动 VM 或机密 VM,则启用 安全启动
EnableVTPM (8.5.0+) 布尔 如果使用的是受信任的启动 VM 或机密 VM,则启用 虚拟受信任的平台模块
ScaleSetUpgradePolicyMode (8.6.2+) 字符串 指定规模集升级策略,该策略控制在 CycleCloud 外部修改规模集模板时规模集中现有 VM 会发生什么情况。 如果使用自动化工具来修改现有规模集(例如 Azure Policy),则通常应启用此功能。 注意:这不会 自动升级 OS 映像。 AutomaticRollingManual 之一(默认值)。

注意

邻近放置组是一项常规 Azure 功能,必须先创建一个,然后才能在节点上引用它。 这样,CycleCloud VM 就可以与该邻近放置组中的其他 Azure 资源并置,但不启用 InfiniBand 网络。 相比之下,PlacementGroupId 是 CycleCloud 中的任意字符串,用于将节点的 VM 分组为单个规模集,该规模集限制为在同一网络交换机下,但可能与其他 Azure 资源不并置。 这两个 VM 都可以一起使用,但这可以减少可以分配的 VM 数量。

图像属性

VM 映像是启动虚拟机所需的设置。 映像定义有三种有效形式:默认 CycleCloud 映像名称、市场映像定义和映像 ID。

ImageName

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

属性 类型 定义
ImageName 字符串 支持周期的映像名称。 cycle.image。[win2016, win2012, centos7, centos6, ubuntu16, ubuntu14]

市场映像

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

属性 类型 定义
Azure.Publisher 字符串 VM 市场映像的发布者
Azure.Offer 字符串 VM 市场映像的产品/服务
Azure.Sku 字符串 VM 市场映像的 SKU
Azure.ImageVersion 字符串 市场映像的映像版本。

注意

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

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

附加了定价计划的共享映像库映像需要有关要使用的计划的信息,除非该信息存储在共享映像库映像中。 使用发布服务器、产品和计划嵌套属性通过 ImagePlan 属性指定。

注意

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

ImageId

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

属性 类型 定义
ImageId 字符串 VM 映像的资源 ID

图像属性

ImageId 定义的市场映像和映像需要一些其他设置才能正确配置 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 布尔 建立到此节点的反向通道代理。 每个群集只能有一个节点设置为 true。
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 布尔 对所有节点使用单个 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

遗产

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

属性 字符串 定义
抽象 布尔 如果为 true,请不要在群集中创建节点或节点数组。 抽象可用于继承。 (默认值:false)
延伸 字符串(列表) 继承的节点/节点数组名称的有序列表。 值冲突时,列表中的项优先。 “defaults”节点将始终有效出现在列表中。 (默认值: [])

从属对象

节点/节点数组对象具有 网络接口cluster-init输入终结点,并将 配置 作为从属对象。