Compartir a través de


Introducción a MaintenanceControl en los clústeres administrados de Service Fabric

Los clústeres administrados de Service Fabric tienen varias operaciones en segundo plano necesarias para mantener todo el clúster actualizado, lo que garantiza la seguridad y la confiabilidad. Sin embargo, estas operaciones son críticas, pero la ejecución en segundo plano puede dar lugar a que la réplica del servicio se mueva a un nodo diferente. Esta conmutación por error produce interrupciones innecesarias y no deseadas, si la operación de mantenimiento se ejecuta durante el horario comercial máximo. Con la compatibilidad con MaintenanceControl en clústeres administrados de Service Fabric, los clientes podrían definir una ventana de mantenimiento periódica (diaria, semanal, mensual) y personalizada para su recurso de clúster SFMC, según sus necesidades. Todas las operaciones de mantenimiento en segundo plano solo se podrán ejecutar durante esta ventana de mantenimiento. MaintenanceControl es aplicable a estas operaciones en segundo plano:

  • Actualización automática del sistema operativo
  • Actualización automática de extensiones
  • Actualizaciones automáticas de la versión del entorno de ejecución de SF
  • Actualización automática de certificados de clúster

Requisitos:

  • La configuración de la ventana de mantenimiento solo debe definirse para el recurso de clúster administrado de Service Fabric
  • El tamaño mínimo admitido de la ventana es de 5 horas

¿Cómo funciona MaintenanceControl para SFMC?

  • Los clientes deben definir una configuración de mantenimiento que contenga la programación y la regla de periodicidad para la ventana de mantenimiento mediante la creación de un recurso de configuración de mantenimiento con el punto de retención de mantenimiento. Más detalles
  • Con esta configuración de mantenimiento, se crea un recurso de asignación para asignar la configuración de mantenimiento al recurso de clúster SFMC.
  • en la creación del recurso de asignación, el punto de retención de mantenimiento notifica al punto de retención de ServiceFabric sobre el vínculo y el control de mantenimiento se habilita en el clúster de SFMC. Todas las operaciones de mantenimiento en segundo plano se bloquean fuera de la ventana de mantenimiento.
  • Cada vez que la ventana de mantenimiento se activa según la programación de la configuración de mantenimiento, el punto de retención de mantenimiento notifica al punto de retención de ServiceFabric que activa la ventana de mantenimiento en el clúster de SFMC correspondiente. Todas las operaciones en segundo plano pueden ejecutarse durante esta ventana.

Implementación de ejemplo

El siguiente es un proceso paso a paso para configurar un clúster con control de mantenimiento. Descargue este ejemplo, que contiene todos los recursos necesarios. Ejemplo de clúster administrado de la SKU estándar de Service Fabric

  1. Crear un grupo de recursos en una región:

    Login-AzAccount
    Select-AzSubscription -SubscriptionId $subscriptionid
    New-AzResourceGroup -Name $myresourcegroup -Location $location
    
  2. Creación de un recurso de clúster:

    Ejecute este comando para implementar el recurso de clúster:

    $parameters = @{
    clusterName = $clusterName
    adminPassword = $VmAdminPassword
    clientCertificateThumbprint = $clientCertificateThumbprint
    }
    New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
    
  3. Configure el control de mantenimiento en el clúster mediante la siguiente configuración de mantenimiento:

Esta configuración de mantenimiento define una programación para que las actualizaciones se produzcan todos los días a partir de las 10PM PST para 5 horas, a partir del 30-05-2023. Más detalles sobre la configuración de mantenimiento

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

Como se describe en la configuración, la configuración de mantenimiento para el recurso del clúster de SFMC debe tener maintenanceScope: "Resource" y maintenanceSubScope: "SFMC".

Una vez creada la configuración de mantenimiento, debe asociarse al clúster de SFMC mediante el recurso de asignación. Más detalles sobre la asignación:

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

  • Para deshabilitar el control de mantenimiento en el clúster, elimine la asignación del clúster.
  • Los recursos de mantenimiento y el recurso del clúster de SFMC deben crearse en la misma región.

Nota:

Problemas conocidos:

  • Debe haber al menos un recurso de configuración de mantenimiento asignado a un clúster administrado de Service Fabric. Hay trabajo en curso para evitar la asignación de más de una configuración de mantenimiento. Hasta entonces, se espera que los usuarios no realicen varias asignaciones de configuración para el mismo clúster.
  • Al eliminar solo el recurso de configuración de mantenimiento, no se deshabilitará MaintenanceControl. Para deshabilitar MaintenanceControl, primero debe eliminar la configAssignment del clúster antes de eliminar el recurso de configuración de mantenimiento.
  • El trabajo para la experiencia de Azure Portal para el control de mantenimiento con SFMC está actualmente en curso, por lo que los clientes no deben confiar solo en el portal. Se conocen problemas con los recursos de mantenimiento, como que el clúster de SFMC aparece como un recurso de máquina virtual y no se puede buscar o asignar un clúster de SFMC desde el portal.