Een Service Fabric-knooppunttype verwijderen

In dit artikel wordt beschreven hoe u een Azure Service Fabric-cluster schaalt door een bestaand knooppunttype uit een cluster te verwijderen. Een Service Fabric-cluster is een met het netwerk verbonden reeks virtuele of fysieke machines waarop uw microservices worden geïmplementeerd en beheerd. Een machine of VM die deel uitmaakt van een cluster wordt een knooppunt genoemd. Virtuele-machineschaalsets zijn een Azure-rekenresource die u gebruikt voor het implementeren en beheren van een verzameling virtuele machines als een set. Elk knooppunttype dat is gedefinieerd in een Azure-cluster, wordt ingesteld als een afzonderlijke schaalset. Elk knooppunttype kan vervolgens afzonderlijk worden beheerd. Nadat u een Service Fabric-cluster hebt gemaakt, kunt u de schaal van een cluster horizontaal aanpassen door een knooppunttype (virtuele-machineschaalset) en alle bijbehorende knooppunten te verwijderen. U kunt de schaal van het cluster op elk gewenst moment aanpassen, zelfs als er workloads op het cluster worden uitgevoerd. Tijdens het schalen van het cluster worden uw toepassingen ook automatisch geschaald.

Waarschuwing

Het gebruik van deze methode om een knooppunttype uit een productiecluster te verwijderen, wordt niet aanbevolen om regelmatig te worden gebruikt. Het is een gevaarlijke opdracht omdat hiermee de virtuele-machineschaalsetresource achter het knooppunttype wordt verwijderd.

Kenmerken van duurzaamheid

Bij het gebruik van Remove-AzServiceFabricNodeType wordt prioriteit gegeven aan veiligheid boven snelheid. Het knooppunttype moet het duurzaamheidsniveau Silver of Gold hebben, omdat:

  • Brons geeft u geen garanties over het opslaan van statusinformatie.
  • Silver en Gold-duurzaamheid vangen wijzigingen in de schaalset op.
  • Gold geeft u ook controle over de Azure-updates onder de schaalset.

Service Fabric 'organiseert' onderliggende wijzigingen en updates, zodat er geen gegevens verloren gaan. Wanneer u echter een knooppunttype verwijdert met de duurzaamheid van brons, kan de statusinformatie verloren gaan. Als u een primair knooppunttype verwijdert en uw toepassing staatloos is, is Brons acceptabel. Wanneer u stateful workloads in productie uitvoert, moet de minimale configuratie Silver zijn. Op dezelfde manier moet voor productiescenario's het primaire knooppunttype altijd Silver of Gold zijn.

Meer informatie over de duurzaamheid van brons

Wanneer u een knooppunttype brons verwijdert, worden alle knooppunten in het knooppunttype onmiddellijk uitgeschakeld. Service Fabric trapt geen bronzen knooppunten schaalsetupdates, dus alle VM's gaan onmiddellijk uit. Als u stateful op deze knooppunten hebt, gaan de gegevens verloren. Zelfs als u staatloos bent, nemen alle knooppunten in de Service Fabric deel aan de ring, zodat een hele buurt verloren kan gaan, waardoor het cluster zelf mogelijk wordt gedestabiliseerd.

Een knooppunttype verwijderen

  1. Zorg voor deze vereisten voordat u het proces start.

    • Het cluster is in orde.
    • Er is nog steeds voldoende capaciteit nadat het knooppunttype is verwijderd, bijvoorbeeld het aantal knooppunten om het vereiste aantal replica's te plaatsen.
  2. Verplaats alle services met plaatsingsbeperkingen voor het gebruik van het knooppunttype van het knooppunttype.

    • Wijzig het toepassings-/servicemanifest zodat deze niet meer naar het knooppunttype verwijst.
    • Implementeer de wijziging.

    Valideer vervolgens het volgende:

    • Alle services die hierboven zijn gewijzigd, worden niet meer uitgevoerd op het knooppunt dat bij het knooppunttype hoort.
    • Alle services zijn in orde.
  3. De markering van het knooppunttype opheffen als niet-primair (Overslaan voor niet-primaire knooppunttypen)

    • Zoek de Azure Resource Manager-sjabloon die wordt gebruikt voor de implementatie.
    • Zoek de sectie met betrekking tot het knooppunttype in de sectie Service Fabric.
    • Wijzig de eigenschap isPrimary in false. ** Verwijder de sectie met betrekking tot het knooppunttype in deze taak niet.
    • Implementeer de aangepaste Azure Resource Manager-sjabloon. ** Afhankelijk van de clusterconfiguratie kan deze stap enige tijd duren.

    Valideer vervolgens het volgende:

    • Service Fabric-sectie in portal geeft aan dat het cluster gereed is.
    • Het cluster is in orde.
    • Geen van de knooppunten die tot het knooppunttype behoren, zijn gemarkeerd als Seed-knooppunt.
  4. Schakel elk knooppunt in het knooppunttype uit.

    Maak verbinding met het cluster met behulp van PowerShell en voer vervolgens de volgende stap uit.

    $nodeType = "" # specify the name of node type
    $nodes = Get-ServiceFabricNode
    
    foreach($node in $nodes)
    {
      if ($node.NodeType -eq $nodeType)
      {
        $node.NodeName
    
        Disable-ServiceFabricNode -Intent RemoveNode -NodeName $node.NodeName -Force
      }
    }
    
    • Voor de duurzaamheid van brons wacht u tot alle knooppunten de status Uitgeschakeld hebben
    • Voor duurzaamheid van zilver en goud worden sommige knooppunten uitgeschakeld en de rest heeft de status Uitschakelen. Controleer het tabblad Details van de knooppunten in de status Uitschakelen. Als ze allemaal vastzitten bij het garanderen van quorum voor infrastructuurservicepartities, kunt u veilig doorgaan.
  5. Stop gegevens voor het knooppunttype.

    Maak verbinding met het cluster met behulp van PowerShell en voer vervolgens de volgende stap uit.

    foreach($node in $nodes)
    {
      if ($node.NodeType -eq $nodeType)
      {
        $node.NodeName
    
        Start-ServiceFabricNodeTransition -Stop -OperationId (New-Guid) -NodeInstanceId $node.NodeInstanceId -NodeName $node.NodeName -StopDurationInSeconds 10000
      }
    }
    

    Wacht totdat alle knooppunten voor het knooppunttype zijn gemarkeerd als Omlaag.

  6. Toewijzing van knooppunten in de oorspronkelijke virtuele-machineschaalset ongedaan maken

    Meld u aan bij het Azure-abonnement waar de schaalset is geïmplementeerd en verwijder de virtuele-machineschaalset.

    $scaleSetName="myscaleset"
    $scaleSetResourceType="Microsoft.Compute/virtualMachineScaleSets"
    
    Remove-AzResource -ResourceName $scaleSetName -ResourceType $scaleSetResourceType -ResourceGroupName $resourceGroupName -Force
    
  7. Verwijder gegevens voor het knooppunttype.

    Maak verbinding met het cluster met behulp van PowerShell en voer vervolgens de volgende stap uit.

    foreach($node in $nodes)
    {
      if ($node.NodeType -eq $nodeType)
      {
        $node.NodeName
    
        Remove-ServiceFabricNodeState -NodeName $node.NodeName -Force
      }
    }
    

    Wacht totdat alle knooppunten uit het cluster zijn verwijderd. De knooppunten mogen niet worden weergegeven in SFX.

  8. Verwijder het knooppunttype uit de sectie Service Fabric.

    • Zoek de Azure Resource Manager-sjabloon die wordt gebruikt voor de implementatie.
    • Zoek de sectie met betrekking tot het knooppunttype in de sectie Service Fabric.
    • Verwijder de sectie die overeenkomt met het knooppunttype.
    • Alleen voor Silver- en clusters met een hogere duurzaamheid werkt u de clusterresource bij in de sjabloon en configureert u het statusbeleid om de status van de infrastructuur-/systeemtoepassing te negeren door toe te voegen applicationDeltaHealthPolicies onder clusterresource properties , zoals hieronder wordt aangegeven. Het onderstaande beleid moet bestaande fouten negeren, maar nieuwe statusfouten niet toestaan.
    "upgradeDescription":  
    { 
     "forceRestart": false, 
     "upgradeReplicaSetCheckTimeout": "10675199.02:48:05.4775807", 
     "healthCheckWaitDuration": "00:05:00", 
     "healthCheckStableDuration": "00:05:00", 
     "healthCheckRetryTimeout": "00:45:00", 
     "upgradeTimeout": "12:00:00", 
     "upgradeDomainTimeout": "02:00:00", 
     "healthPolicy": { 
       "maxPercentUnhealthyNodes": 100, 
       "maxPercentUnhealthyApplications": 100 
     }, 
     "deltaHealthPolicy":  
     { 
       "maxPercentDeltaUnhealthyNodes": 0, 
       "maxPercentUpgradeDomainDeltaUnhealthyNodes": 0, 
       "maxPercentDeltaUnhealthyApplications": 0, 
       "applicationDeltaHealthPolicies":  
       { 
           "fabric:/System":  
           { 
               "defaultServiceTypeDeltaHealthPolicy":  
               { 
                       "maxPercentDeltaUnhealthyServices": 0 
               } 
           } 
       } 
     } 
    },
    
    • Implementeer de aangepaste Azure Resource Manager-sjabloon. ** Deze stap duurt even, meestal maximaal twee uur. Met deze upgrade worden de instellingen voor de InfrastructureService gewijzigd. Daarom moet het knooppunt opnieuw worden opgestart. In dit geval forceRestart wordt genegeerd. De parameter upgradeReplicaSetCheckTimeout geeft de maximale tijd aan die Service Fabric wacht totdat een partitie een veilige status heeft, als dit nog niet de veilige status is. Zodra de veiligheidscontroles zijn geslaagd voor alle partities op een knooppunt, gaat Service Fabric verder met de upgrade op dat knooppunt. De waarde voor de parameter upgradeTimeout kan worden gereduceerd tot 6 uur, maar voor maximale veiligheid moet 12 uur worden gebruikt.

    Valideer vervolgens het volgende:

    • Service Fabric-resource in de portal wordt gereed weergegeven.
  9. Verwijder alle verwijzingen naar de resources met betrekking tot het knooppunttype uit de ARM-sjabloon.

    • Zoek de Azure Resource Manager-sjabloon die wordt gebruikt voor de implementatie.
    • Verwijder de virtuele-machineschaalset en andere resources met betrekking tot het knooppunttype uit de sjabloon.
    • Implementeer de wijzigingen.

    Daarna kunt u het volgende doen:

    • Wacht totdat de implementatie is voltooid.
  10. Verwijder resources met betrekking tot het knooppunttype die niet meer in gebruik zijn. Voorbeeld van Load Balancer en openbaar IP-adres.

    • Als u deze resources wilt verwijderen, kunt u dezelfde PowerShell-opdracht gebruiken als in stap 6, waarbij u het specifieke resourcetype en de API-versie opgeeft.
    • Voor duurzaamheid van zilver en goud moet elke hersteltaak in het cluster, die gericht is op een van de knooppunten die aanwezig waren in het knooppunttype dat is verwijderd, worden voltooid met de opdracht:
       Complete-ServiceFabricRepairTask -TaskId <repair task name>
    

Notitie

Deze stap is optioneel als dezelfde Load Balancer en IP opnieuw wordt gebruikt tussen knooppunttypen.

Volgende stappen