Partager via


Présentation de MaintenanceControl sur les clusters managés Service Fabric

Les clusters managés Service Fabric ont plusieurs opérations en arrière-plan qui sont nécessaires pour maintenir tout le cluster à jour, garantissant ainsi la sécurité et la fiabilité. Même si ces opérations sont critiques, l’exécution en arrière-plan peut entraîner le déplacement du service réplica vers un autre nœud. Ce basculement entraîne des interruptions indésirables et inutiles si l’opération de maintenance s’exécute pendant les heures de pointe. Avec la prise en charge de MaintenanceControl dans les clusters managés Service Fabric, les clients peuvent définir une fenêtre de maintenance périodique (quotidienne, hebdomadaire, mensuelle) et personnalisée pour leur ressource de cluster SFMC, en fonction de leurs besoins. Toutes les opérations de maintenance en arrière-plan seront autorisées à s’exécuter uniquement pendant cette fenêtre de maintenance. MaintenanceControl s’applique à ces opérations en arrière-plan :

  • Mises à niveau automatiques des systèmes d’exploitation
  • Mise à niveau automatique des extensions
  • Mises à jour automatiques de version du runtime SF
  • Mise à jour automatique des certificats de cluster

Conditions requises :

  • La configuration de la fenêtre de maintenance doit être définie uniquement pour la ressource de cluster managé Service Fabric
  • La taille minimale de la fenêtre prise en charge est de 5 heures

Fonctionnement de MaintenanceControl pour SFMC

  • Les clients doivent définir une configuration de maintenance qui contient la planification et la règle de périodicité pour la fenêtre de maintenance, en créant une ressource de configuration de maintenance avec le RP de maintenance. En savoir plus
  • À l’aide de cette configuration de maintenance, une ressource d’affectation est créée pour affecter la configuration de maintenance à la ressource de cluster SFMC.
  • lors de la création de la ressource d’affectation, le RP de maintenance avertit le RP ServiceFabric de la liaison et le contrôle de maintenance est ensuite activé sur le cluster SFMC. Toutes les opérations de maintenance en arrière-plan sont bloquées en dehors de la fenêtre de maintenance.
  • Chaque fois que la fenêtre de maintenance est activée conformément à la planification de la configuration de maintenance, le RP de maintenance avertit le RP ServiceFabric qui active la fenêtre de maintenance sur le cluster SFMC correspondant. Toutes les opérations en arrière-plan sont autorisées à s’exécuter pendant cette fenêtre.

Exemple de déploiement

Voici un processus pas à pas pour configurer un cluster avec le contrôle de maintenance. Téléchargez cet exemple, qui contient toutes les ressources requises. Exemple de cluster managé Service Fabric de référence SKU Standard

  1. Créer un groupe de ressources dans une région :

    Login-AzAccount
    Select-AzSubscription -SubscriptionId $subscriptionid
    New-AzResourceGroup -Name $myresourcegroup -Location $location
    
  2. Créer une ressource de cluster :

    Exécutez cette commande pour déployer la ressource de cluster :

    $parameters = @{
    clusterName = $clusterName
    adminPassword = $VmAdminPassword
    clientCertificateThumbprint = $clientCertificateThumbprint
    }
    New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
    
  3. Configurez le contrôle de maintenance sur le cluster à l’aide de la configuration de maintenance suivante :

Cette configuration de maintenance définit une planification pour que les mises à jour se produisent tous les jours à partir de 22 h (heure du Pacifique) durant 5 heures, à compter du 30/05/2023. Plus d’informations sur la configuration de la maintenance

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

Notes

Comme décrit dans la configuration, la configuration de maintenance de la ressource de cluster SFMC doit avoir maintenanceScope : « Resource » et maintenanceSubScope : « SFMC ».

Une fois la configuration de maintenance créée, elle doit être attachée au cluster SFMC à l’aide de la ressource d’affectation. Plus d’informations sur l’affectation :

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

Notes

  • Pour désactiver le contrôle de maintenance sur le cluster, supprimez l’affectation pour le cluster.
  • Les ressources de maintenance et la ressource de cluster SFMC doivent être créées dans la même région.

Notes

Problèmes connus :

  • Une ressource de configuration de maintenance doit être affectée à un cluster managé Service Fabric. Des travaux sont en cours pour empêcher l’affectation de plusieurs configurations de maintenance. D’ici là, les utilisateurs ne doivent pas effectuer plusieurs affectations de configuration pour le même cluster.
  • La suppression de la seule ressource de configuration de maintenance ne désactive pas MaintenanceControl. Pour désactiver MaintenanceControl, vous devez d’abord supprimer spécifiquement le configAssignment pour le cluster, avant de supprimer la ressource de configuration de maintenance.
  • Le travail pour l’expérience du Portail Azure pour un contrôle de la maintenance avec SFMC étant en cours, les clients ne doivent pas uniquement s’appuyer sur le portail. Les problèmes liés aux ressources de maintenance telles que le cluster SFMC apparaissant comme une ressource de machine virtuelle et ne pouvant pas rechercher/affecter un cluster SFMC à partir du portail sont connus.