Поделиться через


Введение в MaintenanceControl в управляемых кластерах Service Fabric

Управляемые кластеры Service Fabric имеют несколько фоновых операций, необходимых для поддержания обновления всего кластера, обеспечивая безопасность и надежность. Несмотря на то что эти операции являются критически важными, выполнение в фоновом режиме может привести к тому, что реплика службы переместится на другой узел. Это переключение на резервный источник может вызывать нежелательные и лишние прерывания, если операция обслуживания проводится в часы максимальной рабочей нагрузки. Благодаря поддержке MaintenanceControl в управляемых кластерах Service Fabric клиенты смогут определить повторяющееся (ежедневное, еженедельное, ежемесячное) и пользовательское окно обслуживания для своего ресурса кластера SFMC в соответствии с потребностями. Все операции фонового обслуживания будут разрешены только во время этого периода обслуживания. MaintenanceControl применим к этим фоновым операциям:

  • Автоматическое обновление ОС
  • Автоматическое обновление расширений
  • Автоматическое обновление версий среды выполнения SF
  • Автоматическое обновление сертификата кластера

Requirements:

  • Конфигурация периода обслуживания должна быть определена только для ресурса управляемого кластера Service Fabric
  • Минимальный поддерживаемый размер окна составляет 5 часов

Как работает MaintenanceControl для SFMC

  • Клиентам необходимо определить конфигурацию обслуживания, содержащую расписание и правило повторения для периода обслуживания, создав ресурс конфигурации обслуживания с RP обслуживания. Дополнительные сведения
  • С этой конфигурацией обслуживания создается ресурс назначения для назначения конфигурации обслуживания ресурсу кластера SFMC.
  • При создании ресурса назначения служба обслуживания уведомляет ServiceFabric RP о связи, после чего управление обслуживанием включается в кластере SFMC. Все операции фонового обслуживания блокируются за пределами окна обслуживания.
  • Всякий раз, когда окно обслуживания активируется согласно расписанию в конфигурации обслуживания, RP обслуживания уведомляет ServiceFabric RP, чтобы активировать окно обслуживания в соответствующем кластере SFMC. Все фоновые операции могут выполняться во время этого окна.

Пример развертывания

Ниже приведен пошаговый процесс настройки кластера с помощью управления обслуживанием. Скачайте этот пример, содержащий все необходимые ресурсы. Пример управляемого кластера Service Fabric уровня "Стандартный"

  1. Создайте группу ресурсов в регионе:

    Login-AzAccount
    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. Настройте управление обслуживанием в кластере с помощью следующей конфигурации обслуживания:

Эта конфигурация обслуживания определяет расписание для выполнения обновлений каждый день с 22:00 по времени Тихоокеанского побережья США (PST) на 5 часов начиная с 30-05-2023. Дополнительные сведения о конфигурации обслуживания

    "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"
                }
            }
        }

Note

Как описано в конфигурации, конфигурация обслуживания для ресурса кластера 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": "http://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>"
        }

Note

  • Чтобы отключить управление обслуживанием в кластере, отмените или удалите назначение для кластера.
  • Ресурсы обслуживания и ресурс кластера SFMC должны быть созданы в одном и том же регионе Azure и подписке.

Note

Известные проблемы:

  • Удаление только ресурса конфигурации обслуживания не отключает MaintenanceControl. Чтобы отключить MaintenanceControl, необходимо сначала удалить configAssignment для кластера, перед удалением ресурса конфигурации обслуживания.