Share via


Introdução ao MaintenanceControl em clusters gerenciados pelo 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 a segurança e a confiabilidade. Embora essas operações sejam críticas, a execução em segundo plano pode fazer com que a réplica do serviço seja movida para um nó diferente. Esse failover resulta em interrupções desnecessárias e indesejadas, se a operação de manutenção for executada durante o horário comercial de pico. Com o suporte ao MaintenanceControl em clusters gerenciados pelo Service Fabric, os clientes poderão definir uma janela de manutenção recorrente (diária, semanal, mensal) e personalizada para seu recurso de cluster do SFMC, de acordo com suas necessidades. Todas as operações de manutenção em segundo plano terão permissão para serem executadas somente durante esta janela de manutenção. O MaintenanceControl é aplicável a essas operações em segundo plano:

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

Requisitos:

  • A configuração da janela de manutenção precisa ser definida somente para o recurso de cluster gerenciado pelo Service Fabric
  • O menor tamanho de janela com suporte é 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, é criado um recurso de atribuição para atribuir a configuração de manutenção para o recurso de cluster do 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 é então habilitado no cluster do SFMC. Todas as operações de manutenção em segundo plano estão bloqueadas fora da janela de manutenção.
  • Sempre que a janela de manutenção for ativada de acordo com o agendamento na configuração da manutenção, o RP de manutenção notificará 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 essa janela.

Exemplo de implantação

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

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

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

    Execute esse 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 da manutenção no cluster usando a seguinte configuração de manutenção:

Essa configuração de manutenção define um cronograma para que as atualizações ocorram todos os dias a partir das 22h PST por 5 horas, a partir de 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"
                }
            }
        }

Observação

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

Após a criação da configuração de manutenção, ela deve ser anexada ao cluster do SFMC, usando o recurso de atribuição. Mais detalhes sobre a tarefa:

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

Observação

  • Para desabilitar o controle da manutenção no cluster, exclua a atribuição para o cluster.
  • Os recursos de manutenção e o recurso de cluster do SFMC devem ser criados na mesma região.

Observação

Problemas conhecidos:

  • Deve haver no máximo um recurso de configuração de manutenção atribuído a um cluster gerenciado pelo Service Fabric. Há um 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.
  • A exclusão apenas do recurso de configuração de manutenção não desabilitará o MaintenanceControl. Para desabilitar o MaintenanceControl, é necessário excluir especificamente o configAssignment do 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 SFMC está em andamento, portanto, os clientes não devem confiar apenas no portal. São conhecidos os problemas com recursos de manutenção, como o cluster SFMC, que aparece como um recurso de Máquina Virtual e a impossibilidade de pesquisar/atribuir um cluster SFMC do portal.