在 Service Fabric 托管群集的新节点类型上部署自定义 Windows 虚拟机规模集映像(预览版)
自定义 Windows 映像类似于市场映像,不同的是你自己可以为群集中的每个新节点类型创建它们。 自定义映像可用于启动配置,例如预加载应用程序、应用程序配置和其他 OS 配置。 创建自定义 Windows 映像后,可以将其部署到 Service Fabric 托管群集中的一个或多个新节点类型中。
确保已创建自定义映像。 Service Fabric 托管群集 (SFMC) API 版本 2022-08-01 预览版及之后的版本都启用自定义映像。 若要使用自定义映像,必须向 SFMC 授予对虚拟机 (VM) 托管映像或共享库映像的第一方 Microsoft Entra 应用读取访问权限,以便 SFMC 有权读取映像并使用映像创建 VM。
检查将托管标识添加到 Service Fabric 托管群集节点类型,作为有关如何获取有关 SFMC 第一方 Microsoft Entra 应用的信息并向其授予对资源的访问权限的参考。 读取者访问权限就足够了。
Role definition name: Reader
Role definition ID: acdd72a7-3385-48ef-bd42-f606fba81ae7
New-AzRoleAssignment -PrincipalId "<SFMC SPID>" -RoleDefinitionName "Reader" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/galleries/<galleryName>"
创建新的节点类型时,需要使用此新属性修改 ARM 模板:VmImageResourceId:。 以下是一个示例:
{
"name": "SF",
"properties": {
"isPrimary" : true,
"vmImageResourceId": "/subscriptions/<SubscriptionID>/resourceGroups/<myRG>/providers/Microsoft.Compute/images/<MyCustomImage>",
"vmSize": "Standard_D2",
"vmInstanceCount": 5,
"dataDiskSizeGB": 100
}
}
vmImageResourceId 将作为映像参考 ID 传递到虚拟机规模集。目前支持 3 种类型的资源:
- 托管映像 (Microsoft.Compute/images)
- 共享库映像 (Microsoft.Compute/gallerys/images)
- 共享库映像版本 (Microsoft.Compute/galleries/images/versions)
Service Fabric 托管群集还支持可在虚拟机上使用的市场映像。 想要使用市场中的特定映像的客户可以使用以下配置。
{
"name": "SF",
"apiVersion": "2023-08-01-preview",
"properties": {
"isPrimary" : true,
"vmSize": "Standard_D2",
"vmImagePlan": {
"name": "< image >",
"publisher": "<publisher name>",
"product": "<product name>"
},
"vmInstanceCount": 5,
"dataDiskSizeGB": 100
}
}
自定义映像也支持自动 OS 升级。 若要启用自动 OS 升级,不得将节点类型固定到特定映像版本(例如必须使用库映像 (Microsoft.Compute/gallerys/images)),例如:
/subscriptions/<subscriptionID>/resourceGroups/<myRG>/providers/Microsoft.Compute/galleries/<CustomImageGallery>/images/<CustomImageDef>
如果使用其作为 vmImageResourceId 来创建节点类型,且群集已启用自动 OS 升级,则 SFMC 将监视此映像定义的已发布版本,如果发布了任何新版本,则会开始使用此映像定义为创建的虚拟机规模集重置映像,这将使规模集升级为最新版本。