Condividi tramite


Introduzione a MaintenanceControl nei cluster gestiti di Service Fabric

I cluster gestiti di Service Fabric hanno più operazioni in background necessarie per mantenere aggiornato tutto il cluster, garantendo così sicurezza e affidabilità. Anche se queste operazioni sono critiche, ma l'esecuzione in background può comportare lo spostamento della replica del servizio in un nodo diverso. Questo failover comporta interruzioni indesiderate e non necessarie, se l'operazione di manutenzione viene eseguita durante le ore lavorative di punta. Con il supporto per MaintenanceControl nei cluster gestiti di Service Fabric, i clienti possono definire una finestra di manutenzione ricorrente (giornaliera, settimanale, mensile) e personalizzata per la risorsa cluster SFMC in base alle proprie esigenze. Tutte le operazioni di manutenzione in background potranno essere eseguite solo durante questa finestra di manutenzione. MaintenanceControl è applicabile a queste operazioni in background:

  • Aggiornamento automatico del sistema operativo
  • Aggiornamento automatico delle estensioni
  • Aggiornamenti automatici della versione del runtime SF
  • Aggiornamento automatico dei certificati del cluster

Requisiti:

  • La configurazione della finestra di manutenzione deve essere definita solo per la risorsa cluster gestita di Service Fabric
  • La dimensione minima della finestra supportata è di 5 ore

Funzionamento di MaintenanceControl per SFMC

  • I clienti devono definire una configurazione di manutenzione contenente la pianificazione e la regola di ricorrenza per la finestra di manutenzione, creando una risorsa di configurazione di manutenzione con il punto di ripristino di manutenzione. Altri dettagli
  • Con questa configurazione di manutenzione, viene creata una risorsa di assegnazione per assegnare la configurazione di manutenzione alla risorsa cluster SFMC.
  • durante la creazione della risorsa di assegnazione, il punto di ripristino di manutenzione notifica al serviceFabric RP relativo al collegamento e al controllo di manutenzione viene quindi abilitato nel cluster SFMC. Tutte le operazioni di manutenzione in background vengono bloccate all'esterno della finestra di manutenzione.
  • Ogni volta che la finestra di manutenzione viene attivata in base alla pianificazione nella configurazione di manutenzione, il punto di ripristino di manutenzione invia una notifica all'rpo di ServiceFabric che attiva la finestra di manutenzione nel cluster SFMC corrispondente. Tutte le operazioni in background possono essere eseguite durante questa finestra.

Esempio di distribuzione

Di seguito è riportato un processo dettagliato per configurare un cluster con il controllo di manutenzione. Scaricare questo esempio, che contiene tutte le risorse necessarie. Esempio di cluster gestito di Service Fabric SKU Standard

  1. Creare un gruppo di risorse in un'area:

    Login-AzAccount
    Select-AzSubscription -SubscriptionId $subscriptionid
    New-AzResourceGroup -Name $myresourcegroup -Location $location
    
  2. Creare una risorsa cluster:

    Eseguire questo comando per distribuire la risorsa cluster:

    $parameters = @{
    clusterName = $clusterName
    adminPassword = $VmAdminPassword
    clientCertificateThumbprint = $clientCertificateThumbprint
    }
    New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
    
  3. Configurare il controllo di manutenzione nel cluster usando la configurazione di manutenzione seguente:

Questa configurazione di manutenzione definisce una pianificazione per gli aggiornamenti da eseguire ogni giorno dalle 10:00 PST per le 5 ore, a partire dal 30-05-2023. Altre informazioni sulla configurazione della manutenzione

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

Nota

Come descritto nella configurazione, la configurazione di manutenzione per la risorsa cluster SFMC deve avere maintenanceScope: 'Resource' e maintenanceSubScope: 'SFMC'.

Dopo aver creato la configurazione di manutenzione, deve essere collegata al cluster SFMC usando la risorsa di assegnazione. Altri dettagli sull'assegnazione:

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

Nota

  • Per disabilitare il controllo di manutenzione nel cluster, eliminare l'assegnazione per il cluster.
  • Le risorse di manutenzione e la risorsa cluster SFMC devono essere create nella stessa area.

Nota

Problemi noti:

  • Una risorsa di configurazione di manutenzione deve essere assegnata a un cluster gestito di Service Fabric. È in corso un'attività per impedire l'assegnazione di più configurazioni di manutenzione. Fino ad allora, gli utenti non devono eseguire più assegnazioni di configurazione per lo stesso cluster.
  • L'eliminazione solo della risorsa di configurazione di manutenzione non disabiliterà MaintenanceControl. Per disabilitare MaintenanceControl, è necessario eliminare in modo specifico il file configAssignment per il cluster prima di eliminare la risorsa di configurazione della manutenzione.
  • L'esperienza del portale di Azure per il controllo della manutenzione con SFMC è attualmente in corso, quindi i clienti non dovrebbero basarsi solo sul portale. I problemi relativi alle risorse di manutenzione come il cluster SFMC vengono visualizzati come risorsa macchina virtuale e non sono in grado di cercare/assegnare un cluster SFMC dal portale.