Delen via


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

Als u deze methode gebruikt 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.

Duurzaamheidskenmerken

Veiligheid krijgt prioriteit boven snelheid bij het gebruik van Remove-AzServiceFabricNodeType. Het knooppunttype moet het duurzaamheidsniveau Silver of Gold hebben, omdat:

  • Bronze geeft u geen garanties over het opslaan van statusinformatie.
  • Silver en Gold-duurzaamheid vallen eventuele wijzigingen in de schaalset.
  • Gold biedt u ook controle over de Azure-updates onder de schaalset.

In Service Fabric worden onderliggende wijzigingen en updates ingedeeld, zodat gegevens niet verloren gaan. Wanneer u echter een knooppunttype verwijdert met bronzen duurzaamheid, kunt u statusinformatie verliezen. Als u een primair knooppunttype verwijdert en uw toepassing staatloos is, is Bronze acceptabel. Wanneer u stateful workloads uitvoert in productie, moet de minimale configuratie Silver zijn. Voor productiescenario's moet het primaire knooppunttype altijd Silver of Gold zijn.

Meer informatie over de duurzaamheid van brons

Wanneer u een knooppunttype verwijdert dat Brons is, gaan alle knooppunten in het knooppunttype onmiddellijk omlaag. Service Fabric trapt geen bronzen knooppuntschaalsetupdates, waardoor alle VM's onmiddellijk omlaag gaan. Als u stateful op deze knooppunten had, gaan de gegevens verloren. Zelfs als u staatloos was, nemen alle knooppunten in de Service Fabric deel aan de ring, zodat een hele buurt verloren kan gaan, waardoor het cluster zelf kan worden 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 om het knooppunttype van het knooppunttype te gebruiken.

    • Wijzig het toepassings-/servicemanifest om niet langer naar het knooppunttype te verwijzen.
    • Implementeer de wijziging.

    Valideer vervolgens dat:

    • Alle services die hierboven zijn gewijzigd, worden niet meer uitgevoerd op het knooppunt dat deel uitmaakt van het knooppunttype.
    • Alle services zijn in orde.
  3. Het knooppunttype opheffen als niet-primair (overslaan voor niet-primaire knooppunttypen)

    • Zoek de Azure Resource Manager-sjabloon die wordt gebruikt voor 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 gewijzigde Azure Resource Manager-sjabloon. ** Afhankelijk van de clusterconfiguratie kan deze stap enige tijd duren.

    Valideer vervolgens dat:

    • Service Fabric-sectie in de portal geeft aan dat het cluster gereed is.
    • Het cluster is in orde.
    • Geen van de knooppunten die tot het knooppunttype behoren, worden gemarkeerd als Seed Node.
  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 totdat alle knooppunten de status Uitgeschakeld krijgen
    • Voor duurzaamheid van zilver en goud worden sommige knooppunten uitgeschakeld en wordt de rest uitgeschakeld. Controleer het tabblad Details van de knooppunten in het uitschakelen van de status, als ze allemaal vastzitten bij het garanderen van quorum voor infrastructuurservicepartities, dan is het veilig om door te gaan.
  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 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 hogere duurzaamheidsclusters werkt u de clusterresource in de sjabloon bij en configureert u statusbeleid om infrastructuur te negeren:/Systeemtoepassingsstatus door toe te voegen applicationDeltaHealthPolicies onder clusterresource properties , zoals hieronder wordt aangegeven. Het onderstaande beleid moet bestaande fouten negeren, maar geen nieuwe statusfouten 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 gewijzigde Azure Resource Manager-sjabloon. ** Deze stap duurt een tijdje, meestal maximaal twee uur. Deze upgrade wijzigt instellingen voor infrastructureservice, daarom is opnieuw opstarten van het knooppunt nodig. In dit geval forceRestart wordt genegeerd. De parameter upgradeReplicaSetCheckTimeout geeft de maximale tijd aan die Service Fabric wacht tot een partitie in een veilige status is, als deze nog niet in een veilige status staat. 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 teruggebracht tot 6 uur, maar voor maximale veiligheid 12 uur moet worden gebruikt.

    Valideer vervolgens dat:

    • Service Fabric-resource in de portal toont gereed.
  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 implementatie.
    • Verwijder de virtuele-machineschaalset en andere resources die betrekking hebben op het knooppunttype uit de sjabloon.
    • Implementeer de wijzigingen.

    Daarna kunt u het volgende doen:

    • Wacht tot de implementatie is voltooid.
  10. Verwijder resources met betrekking tot het knooppunttype dat niet meer wordt gebruikt. 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 reparatietaak 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 HET IP-adres opnieuw wordt gebruikt tussen knooppunttypen.

Volgende stappen