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
Crie um grupo de recursos em uma região:
Login-AzAccount Select-AzSubscription -SubscriptionId $subscriptionid New-AzResourceGroup -Name $myresourcegroup -Location $location
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
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.