Partilhar via


Introdução ao MaintenanceControl em clusters gerenciados do Service Fabric

Os clusters gerenciados pelo Service Fabric têm várias operações em segundo plano que são necessárias para manter todo o cluster atualizado, garantindo assim segurança e confiabilidade. Embora essas operações sejam críticas, a execução em segundo plano pode fazer com que a réplica de serviço seja movida para um nó diferente. Esse failover resulta em interrupções indesejadas e desnecessárias, se a operação de manutenção for executada durante o horário comercial de pico. Com o suporte para MaintenanceControl em clusters gerenciados do Service Fabric, os clientes poderiam definir uma janela de manutenção recorrente (diária, semanal, mensal) e personalizada para seu recurso de cluster SFMC, de acordo com suas necessidades. Todas as operações de manutenção em segundo plano poderão ser executadas apenas durante esta janela de manutenção. MaintenanceControl é aplicável a estas operações em segundo plano:

  • Atualização automática do SO
  • Atualização automática de extensão
  • Atualizações automáticas da versão do tempo de execução do SF
  • Atualização automática do certificado de cluster

Requisitos:

  • A configuração da janela de manutenção precisa ser definida apenas para o recurso de cluster gerenciado do Service Fabric
  • O tamanho mínimo de janela suportado é de 5 horas

Como funciona o MaintenanceControl para o SFMC

  • Os clientes precisam definir uma configuração de manutenção que contenha o cronograma e a regra de recorrência para a janela de manutenção, criando um recurso de configuração de manutenção com o RP de manutenção. Mais detalhes
  • Com essa configuração de manutenção, um recurso de atribuição é criado para atribuir a configuração de manutenção ao recurso de cluster SFMC.
  • na criação do recurso de atribuição, o RP de manutenção notifica o RP do ServiceFabric sobre o link e o controle de manutenção é habilitado no cluster SFMC. Todas as operações de manutenção em segundo plano são bloqueadas fora da janela de manutenção.
  • Sempre que a janela de manutenção é ativada de acordo com o cronograma na configuração de manutenção, o RP de manutenção notifica o RP do ServiceFabric que ativa a janela de manutenção no cluster SFMC correspondente. Todas as operações em segundo plano podem ser executadas durante esta janela.

Exemplo de implantação

A seguir está um processo passo a passo para configurar um cluster com controle de manutenção. Faça o download deste exemplo, que contém todos os recursos necessários. Exemplo de cluster gerenciado do SKU Service Fabric padrão

  1. Crie um grupo de recursos em uma região:

    Login-AzAccount
    Select-AzSubscription -SubscriptionId $subscriptionid
    New-AzResourceGroup -Name $myresourcegroup -Location $location
    
  2. Criar recurso de cluster:

    Execute este comando para implantar o recurso de cluster:

    $parameters = @{
    clusterName = $clusterName
    adminPassword = $VmAdminPassword
    clientCertificateThumbprint = $clientCertificateThumbprint
    }
    New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
    
  3. Configure o controle de manutenção no cluster usando a seguinte configuração de manutenção:

Esta configuração de manutenção define um cronograma para que as atualizações aconteçam todos os dias a partir das 22h PST por 5 horas, começando em 30-05-2023. Mais detalhes sobre a configuração de manutenção

    "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

Conforme descrito na configuração, a configuração de manutenção para o recurso de cluster SFMC deve ter maintenanceScope: 'Resource' e maintenanceSubScope: 'SFMC'.

Depois que a configuração de manutenção é criada, ela deve ser anexada ao cluster SFMC, usando o recurso de atribuição. Mais detalhes sobre a atribuição:

    "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 desativar o controle de manutenção no cluster, exclua a atribuição para o cluster.
  • Os recursos de manutenção e o recurso de cluster SFMC devem ser criados na mesma região.

Nota

Problemas conhecidos:

  • Deve haver no máximo um recurso de configuração de manutenção atribuído a um cluster gerenciado do Service Fabric. Há trabalho em andamento para evitar a atribuição de mais de uma configuração de manutenção. Até lá, espera-se que os usuários não façam várias atribuições de configuração para o mesmo cluster.
  • Excluir apenas o recurso de configuração de manutenção não desativará o MaintenanceControl. Para desabilitar o MaintenanceControl, você precisa excluir especificamente o configAssignment para o cluster primeiro, antes de excluir o recurso de configuração de manutenção.
  • O trabalho para a experiência do Portal do Azure para controle de manutenção com o SFMC está atualmente em andamento, portanto, os clientes não devem confiar apenas no portal. Problemas com recursos de manutenção como cluster SFMC aparecendo como um recurso de Máquina Virtual e não sendo capaz de pesquisar/atribuir um cluster SFMC a partir do portal são conhecidos.