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 托管群集示例

  1. 在区域中创建资源组:

    Connect-AzAccount -Environment AzureChinaCloud
    Select-AzSubscription -SubscriptionId $subscriptionid
    New-AzResourceGroup -Name $myresourcegroup -Location $location
    
  2. 创建群集资源:

    请执行以下命令部署群集资源:

    $parameters = @{
    clusterName = $clusterName
    adminPassword = $VmAdminPassword
    clientCertificateThumbprint = $clientCertificateThumbprint
    }
    New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
    
  3. 使用以下维护配置在群集上配置维护控制:

此维护配置定义了一个计划,即从 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 群集的问题是已知的。