你当前正在访问 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_BYOS 、 SLES_BYOS 或 Windows_Server 。 默认为 Windows_Server 。 |
FlexScaleSetId (8.3.0+) | String | 如果已设置,则这是 Flex 业务流程模式下 规模集的完全限定 ID,用于此节点的 VM。 |
EncryptionAtHost (8.4.0+) | 布尔 | 如果为 true,则虚拟机将在 主机上启用加密 。 |
SecurityType (8.5.0+) | String | 设置 安全类型;未定义, TrustedLaunch 或 ConfidentialVM |
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] |
市场映像
除了周期管理的市场映像,还可以通过指定 Publisher
、 Offer
Sku
和 ImageVersion
来使用任何市场映像。
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-6 、ubuntu-14.04 、ubuntu-16.04 windows 。 在 7.7.0 中已弃用。 |
警告
建议不要设置 InstallJetpack
或 AwaitInstallation
。 此外,设置 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-init、 input-endpoint 和 配置 作为从属对象。