Service Fabric düğüm türünü kaldırma

Bu makalede, bir kümeden mevcut düğüm türünü kaldırarak Azure Service Fabric kümesinin nasıl ölçeklendirildiği açıklanır. Service Fabric kümesi, mikro hizmetlerinizin dağıtıldığı ve yönetildiği, ağa bağlı bir sanal veya fiziksel makine kümesidir. Kümenin parçası olan makine veya VM'ye düğüm adı verilir. Sanal makine ölçek kümeleri, bir sanal makine koleksiyonunu küme olarak dağıtmak ve yönetmek için kullandığınız bir Azure işlem kaynağıdır. Azure kümesinde tanımlanan her düğüm türü ayrı bir ölçek kümesi olarak ayarlanır. Ardından her düğüm türü ayrı ayrı yönetilebilir. Service Fabric kümesi oluşturduktan sonra, bir düğüm türünü (sanal makine ölçek kümesi) ve tüm düğümlerini kaldırarak kümeyi yatay olarak ölçeklendikleyebilirsiniz. küme üzerinde iş yükleri çalışırken bile kümeyi istediğiniz zaman ölçeklendikleyebilirsiniz. Küme ölçeklendirildikçe, uygulamalarınız da otomatik olarak ölçeklendirilir.

Uyarı

Üretim kümesinden düğüm türünü kaldırmak için bu yaklaşımın kullanılması sık sık kullanılması önerilmez. Düğüm türünün arkasındaki sanal makine ölçek kümesi kaynağını sildiğinden tehlikeli bir komut olur.

Dayanıklılık özellikleri

Remove-AzServiceFabricNodeType kullanılırken güvenlik hıza göre önceliklendirilir. Düğüm türü Silver veya Gold dayanıklılık düzeyi olmalıdır, çünkü:

  • Bronz, durum bilgilerini kaydetme konusunda size herhangi bir garanti vermez.
  • Silver ve Gold dayanıklılık, ölçek kümesindeki tüm değişiklikleri yakalar.
  • Gold ayrıca ölçek kümesinin altındaki Azure güncelleştirmeleri üzerinde de denetim sağlar.

Service Fabric, verilerin kaybolmaması için temel alınan değişiklikleri ve güncelleştirmeleri "düzenler". Ancak Bronz dayanıklılığa sahip bir düğüm türünü kaldırdığınızda durum bilgilerini kaybedebilirsiniz. Birincil düğüm türünü kaldırıyorsanız ve uygulamanız durum bilgisi yoksa Bronz kabul edilebilir. Üretimde durum bilgisi olan iş yüklerini çalıştırdığınızda en düşük yapılandırma Silver olmalıdır. Benzer şekilde, üretim senaryoları için birincil düğüm türü her zaman Silver veya Gold olmalıdır.

Bronz dayanıklılık hakkında daha fazla bilgi

Bronz olan bir düğüm türü kaldırılırken, düğüm türündeki tüm düğümler hemen aşağı gider. Service Fabric bronz düğüm ölçek kümesi güncelleştirmelerini yakalamaz, bu nedenle tüm VM'ler hemen kapanır. Bu düğümlerde durum bilgisi olan bir şey varsa veriler kaybolur. Durum bilgisi olmasa bile Service Fabric'teki tüm düğümler halkaya katılır, dolayısıyla tüm mahalle kaybolabilir ve bu da kümenin dengesini bozabilir.

Düğüm türünü kaldırma

  1. İşleme başlamadan önce bu önkoşullara dikkat edin.

    • Küme iyi durumda.
    • Düğüm türü kaldırıldıktan sonra da yeterli kapasite olacaktır; örneğin, gerekli çoğaltma sayısını yerleştirmek için düğüm sayısı.
  2. Düğüm türünü kullanmak için yerleştirme kısıtlamaları olan tüm hizmetleri düğüm türünün dışına taşıyın.

    • Uygulama/Hizmet Bildirimi'ni düğüm türüne artık başvurmamak için değiştirin.
    • Değişikliği dağıtın.

    Ardından şu doğrulamayı yapın:

    • Yukarıda değiştirilen tüm hizmetler artık düğüm türüne ait Düğümde çalışmıyor.
    • Tüm hizmetler sağlıklı.
  3. Düğüm türünün işaretini birincil olmayan olarak kaldırma (Birincil olmayan düğüm türleri için atla)

    • Dağıtım için kullanılan Azure Resource Manager şablonunu bulun.
    • Service Fabric bölümünde düğüm türüyle ilgili bölümü bulun.
    • isPrimary özelliğini false olarak değiştirin. ** Bu görevdeki düğüm türüyle ilgili bölümü kaldırmayın.
    • Değiştirilen Azure Resource Manager şablonunu dağıtın. ** Küme yapılandırmasına bağlı olarak bu adım biraz zaman alabilir.

    Ardından şu doğrulamayı yapın:

    • Portaldaki Service Fabric Bölümü, kümenin hazır olduğunu gösterir.
    • Küme iyi durumda.
    • Düğüm türüne ait düğümlerin hiçbiri Çekirdek Düğüm olarak işaretlenmez.
  4. Düğüm türündeki her düğümü devre dışı bırakın.

    PowerShell kullanarak kümeye bağlanın ve aşağıdaki adımı çalıştırın.

    $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
      }
    }
    
    • Bronz dayanıklılık için tüm düğümlerin devre dışı duruma gelmesini bekleyin
    • Gümüş ve altın dayanıklılığı için bazı düğümler devre dışı durumuna geçer ve gerisi devre dışı bırakılacaktır. Devre dışı bırakma durumundaki düğümlerin ayrıntılar sekmesine bakın; altyapı hizmeti bölümleri için çekirdek sağlama konusunda takılı kaldılarsa, devam etmek güvenlidir.
  5. Düğüm türü için verileri durdurun.

    PowerShell kullanarak kümeye bağlanın ve aşağıdaki adımı çalıştırın.

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

    Düğüm türü için tüm düğümlerin Aşağı olarak işaretlenmesini bekleyin.

  6. Özgün Sanal Makine Ölçek Kümesindeki düğümleri serbest bırakma

    Ölçek kümesinin dağıtıldığı Azure aboneliğinde oturum açın ve Sanal Makine Ölçek Kümesi'ni kaldırın.

    $scaleSetName="myscaleset"
    $scaleSetResourceType="Microsoft.Compute/virtualMachineScaleSets"
    
    Remove-AzResource -ResourceName $scaleSetName -ResourceType $scaleSetResourceType -ResourceGroupName $resourceGroupName -Force
    
  7. Düğüm türü için verileri kaldırın.

    PowerShell kullanarak kümeye bağlanın ve aşağıdaki adımı çalıştırın.

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

    Tüm düğümler kümeden kaldırılana kadar bekleyin. Düğümler SFX'te görüntülenmemelidir.

  8. Service Fabric bölümünden düğüm türünü kaldırın.

    • Dağıtım için kullanılan Azure Resource Manager şablonunu bulun.
    • Service Fabric bölümünde düğüm türüyle ilgili bölümü bulun.
    • Düğüm türüne karşılık gelen bölümü kaldırın.
    • Yalnızca Silver ve daha yüksek dayanıklılığa sahip kümeler için şablondaki küme kaynağını güncelleştirin ve aşağıda gösterildiği gibi küme kaynağının properties altına ekleyerek applicationDeltaHealthPolicies sistem durumu ilkelerini fabric:/System uygulama durumunu yoksayacak şekilde yapılandırın. Aşağıdaki ilke mevcut hataları yoksaymalı ancak yeni sistem durumu hatalarına izin vermemelidir.
    "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 
               } 
           } 
       } 
     } 
    },
    
    • Değiştirilen Azure Resource Manager şablonunu dağıtın. ** Bu adım genellikle iki saate kadar sürer. Bu yükseltme ayarları InfrastructureService'e değiştirir, bu nedenle düğümün yeniden başlatılması gerekir. Bu durumda forceRestart yoksayılır. parametresi upgradeReplicaSetCheckTimeout , Service Fabric'in bir bölümün güvenli durumda olmasını beklediği en uzun süreyi (güvenli durumda değilse) belirtir. Bir düğümdeki tüm bölümler için güvenlik denetimleri geçtikten sonra Service Fabric bu düğümdeki yükseltmeye devam eder. Parametrenin upgradeTimeout değeri 6 saate düşürülebilir, ancak en yüksek güvenlik için 12 saat kullanılmalıdır.

    Ardından şu doğrulamayı yapın:

    • Portalda Service Fabric Kaynağı hazır görünüyor.
  9. ARM şablonundan düğüm türüyle ilgili tüm kaynaklara başvuruyu kaldırın.

    • Dağıtım için kullanılan Azure Resource Manager şablonunu bulun.
    • Sanal makine ölçek kümesini ve düğüm türüyle ilgili diğer kaynakları şablondan kaldırın.
    • Değişiklikleri dağıtın.

    Ardından:

    • Dağıtımın tamamlanmasını bekleyin.
  10. Artık kullanımda olmayan düğüm türüyle ilgili kaynakları kaldırın. Örnek Load Balancer ve Genel IP.

    • Bu kaynakları kaldırmak için, 6. adımda belirli kaynak türünü ve API sürümünü belirten aynı PowerShell komutunu kullanabilirsiniz.
    • Gümüş ve altın dayanıklılığı için, kaldırılan düğüm türündeki düğümlerden herhangi birini hedefleyen kümede kalan tüm onarım görevleri şu komutla tamamlanmalıdır:
       Complete-ServiceFabricRepairTask -TaskId <repair task name>
    

Not

Aynı Load Balancer ve düğüm türleri arasında IP yeniden kullanılırsa bu adım isteğe bağlıdır.

Sonraki adımlar