Service Fabric 托管群集上的维护控制简介
Service Fabric 托管群集具有多个后台操作,必须执行这些操作才能使所有群集保持更新状态,从而确保安全性和可靠性。 尽管这些操作至关重要,但在后台执行可能会导致服务副本移动到其他节点。 如果在高峰营业时间执行维护操作,则此故障转移会导致意外和不必要的中断。 借助对 Service Fabric 托管群集中的维护控制的支持,客户能够根据需要为其 SFMC 群集资源定义定期(每日、每周、每月)和自定义维护时段。 仅允许在此维护时段内执行所有后台维护操作。 维护控制适用于以下后台操作:
- 自动 OS 升级
- 自动扩展升级
- 自动 SF 运行时版本更新
- 自动群集证书更新
要求:
- 只需为 Service Fabric 托管群集资源定义维护时段配置
- 支持的最小时段为 5 小时
SFMC 的维护控制如何工作
- 客户需要通过使用维护 RP 创建维护配置资源来定义维护配置,其中包含维护时段的计划和重复规则。 更多详细信息
- 使用此维护配置,将创建一个分配资源,以便将维护配置分配给 SFMC 群集资源。
- 创建分配资源时,维护 RP 会向 ServiceFabric RP 发送有关链接的通知,并在 SFMC 群集上启用维护控制。 在维护时段之外,所有后台维护操作都会被阻止。
- 每当根据维护配置中的计划激活维护时段时,维护 RP 都会通知 ServiceFabric RP 来激活相应 SFMC 群集上的维护时段。 允许在此时段内执行所有后台操作。
示例部署
下面是设置具有维护控制的群集的分步过程。 下载此示例,其中包含所有必需的资源。 标准 SKU Service Fabric 托管群集示例
在区域中创建资源组:
Connect-AzAccount -Environment AzureChinaCloud Select-AzSubscription -SubscriptionId $subscriptionid New-AzResourceGroup -Name $myresourcegroup -Location $location
创建群集资源:
请执行以下命令部署群集资源:
$parameters = @{ clusterName = $clusterName adminPassword = $VmAdminPassword clientCertificateThumbprint = $clientCertificateThumbprint } New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
使用以下维护配置在群集上配置维护控制:
此维护配置定义了一个计划,即从 2023 年 5 月 30 日开始,每天从太平洋标准时间晚上 10 点开始进行 5 小时的更新。 有关维护配置的更多详细信息
"resources": [
{
"type": "Microsoft.Maintenance/maintenanceConfigurations",
"apiVersion": "2022-07-01-preview",
"name": "mc1",
"location": "[parameters('location')]",
"properties": {
"maintenanceScope": "Resource",
"extensionProperties": {
"maintenanceSubScope": "SFMC"
},
"maintenanceWindow": {
"startDateTime": "2023-05-30 22:00",
"duration": "05:00",
"timeZone": "Pacific Standard Time",
"expirationDateTime": null,
"recurEvery": "1Day"
}
}
}
注意
如配置中所述,SFMC 群集资源的维护配置应具有维护范围“资源”和维护子范围“SFMC”。
创建维护配置后,必须使用分配资源将其附加到 SFMC 群集。 有关分配的更多详细信息:
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2022-09-01",
"name": "ConfigurationAssignmentsName",
"dependsOn": [
"[concat('Microsoft.Maintenance/maintenanceConfigurations/', 'mc1')]",
"[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
],
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"resources": [
{
"apiVersion": "2022-07-01-preview",
"type": "Microsoft.Maintenance/configurationAssignments",
"name": "mc1Assignment",
"location": "[parameters('location')]",
"scope": "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]",
"tags": {},
"properties": {
"maintenanceConfigurationId": "/subscriptions/<subId>/resourcegroups/<rgName>/providers/microsoft.maintenance/maintenanceconfigurations/mc1"
}
}
]
}
},
"subscriptionId": "<subId>",
"resourceGroup": "<rgName>"
}
注意
- 若要在群集上禁用维护控制,请删除该群集的分配。
- 应在同一区域中创建维护资源和 SFMC 群集资源。
注意
已知问题:
- 最多只能将一个维护配置资源分配给 Service Fabric 托管群集。 目前正在开展防止分配多个维护配置的工作。在此之前,用户不应为同一群集执行多个配置分配。
- 仅删除维护配置资源不会禁用维护控制。 若要禁用维护控制,必须先专门删除群集的 configAssignment,然后再删除维护配置资源。
- 使用 SFMC 进行维护控制的 Azure 门户体验目前正在进行,因此客户不应仅依赖门户。 维护资源(如 SFMC 群集)显示为虚拟机资源,并且无法从门户搜索/分配 SFMC 群集的问题是已知的。