Udostępnij za pośrednictwem


Wprowadzenie do kontrolek MaintenanceControl w klastrach zarządzanych usługi Service Fabric

Klastry zarządzane usługi Service Fabric mają wiele operacji w tle, które są niezbędne do aktualizowania całego klastra, co zapewnia bezpieczeństwo i niezawodność. Mimo że te operacje są krytyczne, ale wykonywanie w tle może spowodować przejście repliki usługi do innego węzła. To przejście w tryb failover powoduje niepożądane i niepotrzebne przerwy, jeśli operacja konserwacji zostanie wykonana w godzinach szczytu pracy. Dzięki obsłudze maintenancecontrol w klastrach zarządzanych usługi Service Fabric klienci będą mogli zdefiniować cykliczne (codziennie, co tydzień, co miesiąc) i niestandardowe okno obsługi dla zasobu klastra SFMC zgodnie z potrzebami. Wszystkie operacje konserwacji w tle będą mogły być wykonywane tylko w tym oknie obsługi. Funkcja MaintenanceControl ma zastosowanie do tych operacji w tle:

  • Automatyczne uaktualnianie systemu operacyjnego
  • Automatyczne uaktualnianie rozszerzenia
  • Automatyczne aktualizacje wersji środowiska uruchomieniowego SF
  • Automatyczna aktualizacja certyfikatu klastra

Wymagania:

  • Konfiguracja okna obsługi musi być zdefiniowana tylko dla zasobu klastra zarządzanego usługi Service Fabric
  • Minimalny obsługiwany rozmiar okna to 5 godzin

Jak działa funkcja MaintenanceControl dla kontrolera SFMC

  • Klienci muszą zdefiniować konfigurację konserwacji, która zawiera harmonogram i regułę cyklu dla okna obsługi, tworząc zasób konfiguracji konserwacji przy użyciu dostawcy zasobów konserwacji. Więcej szczegółów
  • W przypadku tej konfiguracji konserwacji tworzony jest zasób przypisania w celu przypisania konfiguracji konserwacji do zasobu klastra SFMC.
  • podczas tworzenia zasobu przypisania dostawca zasobów konserwacji powiadamia dostawcę usługi ServiceFabric o łączem i kontroli konserwacji jest następnie włączony w klastrze SFMC. Wszystkie operacje konserwacji w tle są blokowane poza oknem obsługi.
  • Za każdym razem, gdy okno obsługi jest aktywowane zgodnie z harmonogramem w konfiguracji konserwacji, dostawca zasobów obsługi powiadamia dostawcę usługi ServiceFabric, który aktywuje okno obsługi w odpowiednim klastrze SFMC. Wszystkie operacje w tle mogą być wykonywane w tym oknie.

Przykładowe wdrożenie

Poniżej przedstawiono krok po kroku proces konfigurowania klastra z kontrolą konserwacji. Pobierz ten przykład, który zawiera wszystkie wymagane zasoby. Przykład klastra zarządzanego usługi Service Fabric w warstwie Standardowa

  1. Utwórz grupę zasobów w regionie:

    Login-AzAccount
    Select-AzSubscription -SubscriptionId $subscriptionid
    New-AzResourceGroup -Name $myresourcegroup -Location $location
    
  2. Utwórz zasób klastra:

    Wykonaj to polecenie, aby wdrożyć zasób klastra:

    $parameters = @{
    clusterName = $clusterName
    adminPassword = $VmAdminPassword
    clientCertificateThumbprint = $clientCertificateThumbprint
    }
    New-AzResourceGroupDeployment -Name "deploy_cluster" -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterObject $parameters -Verbose
    
  3. Skonfiguruj kontrolę konserwacji w klastrze przy użyciu następującej konfiguracji konserwacji:

Ta konfiguracja konserwacji definiuje harmonogram aktualizacji, które mają być wykonywane codziennie od 10PM PST dla 5 godzin, począwszy od 30-05-2023. Więcej szczegółów na temat konfiguracji konserwacji

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

Uwaga

Zgodnie z opisem w konfiguracji konfiguracja konfiguracja konserwacji zasobu klastra SFMC powinna mieć wartość maintenanceScope: "Zasób" i konserwacjaSubScope: "SFMC".

Po utworzeniu konfiguracji konserwacji należy dołączyć ją do klastra SFMC przy użyciu zasobu przypisania. Więcej szczegółów na temat przypisywania:

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

Uwaga

  • Aby wyłączyć kontrolkę konserwacji w klastrze, usuń przypisanie klastra.
  • Zasoby konserwacji i zasób klastra SFMC powinny zostać utworzone w tym samym regionie.

Uwaga

Znane problemy:

  • Powinien istnieć co najwyżej jeden zasób konfiguracji konserwacji przypisany do klastra zarządzanego usługi Service Fabric. Trwa prace, aby zapobiec przypisaniu więcej niż jednej konfiguracji konserwacji. Do tego czasu użytkownicy nie będą wykonywać wielu przypisań konfiguracji dla tego samego klastra.
  • Usunięcie tylko zasobu konfiguracji konserwacji nie spowoduje wyłączenia MaintenanceControl. Aby wyłączyć funkcję MaintenanceControl, należy najpierw usunąć element configAssignment dla klastra przed usunięciem zasobu konfiguracji konserwacji.
  • Praca w witrynie Azure Portal dotycząca kontroli konserwacji za pomocą sfMC jest obecnie w toku, więc klienci nie powinni polegać tylko na portalu. Znane są problemy z zasobami konserwacji, takimi jak klaster SFMC, który jest wyświetlany jako zasób maszyny wirtualnej i nie można wyszukać/przypisać klastra SFMC z portalu.