你当前正在访问 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_BYOS 、SLES_BYOS 或 Windows_Server 。 默认值为 Windows_Server 。 |
FlexScaleSetId (8.3.0+) | 字符串 | 如果已设置,则这是 弹性业务流程模式中规模集的完全限定 ID, 用于此节点的 VM。 |
EncryptionAtHost (8.4.0+) | 布尔 | 如果为 true,则虚拟机将启用 主机加密。 |
SecurityType (8.5.0+) | 字符串 | 设置 安全类型;未定义、TrustedLaunch 或 ConfidentialVM |
EnableSecureBoot (8.5.0+) | 布尔 | 如果使用受信任的启动 VM 或机密 VM,则启用 安全启动。 |
EnableVTPM (8.5.0+) | 布尔 | 如果使用的是受信任的启动 VM 或机密 VM,则启用 虚拟受信任的平台模块。 |
ScaleSetUpgradePolicyMode (8.6.2+) | 字符串 | 指定规模集升级策略,该策略控制在 CycleCloud 外部修改规模集模板时规模集中现有 VM 会发生什么情况。 如果使用自动化工具来修改现有规模集(例如 Azure Policy),则通常应启用此功能。 注意:这不会 不 自动升级 OS 映像。
Automatic 、Rolling 或 Manual 之一(默认值)。 |
注意
邻近放置组是一项常规 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] |
市场映像
除了循环管理的市场映像,还可以通过指定 Publisher
、Offer
、Sku
和 ImageVersion
来使用任何市场映像。
属性 | 类型 | 定义 |
---|---|---|
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-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
高级网络属性
属性 | 类型 | 定义 |
---|---|---|
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、输入终结点,并将 配置 作为从属对象。