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

Bu makalede, mevcut bir düğüm türünü bir kümeden kaldırarak Azure Service Fabric kümesinin nasıl ölçeklendirildiği açıklanır. Service Fabric kümesi, mikro hizmetlerin dağıtılıp 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ı olarak 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ümede 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ı

Bir düğüm türünü üretim kümesinden 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 komutdur.

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 denetim sahibi olmanıza da neden olur.

Service Fabric, verilerin kaybolmaması için temel 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, bu nedenle tüm mahalle kaybolabilir ve bu da kümenin güvenliğini bozabilir.

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

  1. İşleme başlamadan önce bu önkoşullarla ilgilenin.

    • 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ünden dışarı taşıyın.

    • Artık düğüm türüne başvurmamak için Uygulama/Hizmet Bildirimi'ni 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ıdır.
  3. Düğüm türünün işaretini birincil olmayan olarak kaldır (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 geri kalanlar devre dışı bırakılacaktır. Devre dışı bırakma durumundaki düğümlerin ayrıntılar sekmesine bakın. Bunların tümü Altyapı hizmeti bölümleri için çekirdek sağlama konusunda takıldıysa, 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. Düğümleri özgün Sanal Makine Ölçek Kümesinde serbest bırakma

    Ölçek kümesinin dağıtıldığı Azure aboneliğinde oturum açın ve Sanal Makine Ölçek Kümesini 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üğümlerin kümeden kaldırılmasını 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ık kümeleri için şablondaki küme kaynağını güncelleştirin ve sistem durumu ilkelerini, aşağıda gösterildiği gibi küme kaynağının properties altına ekleyerek applicationDeltaHealthPolicies 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 bir düğüm yeniden başlatması 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 (henüz güvenli durumda değilse) belirtir. Güvenlik denetimleri bir düğümdeki tüm bölümler için geçirildikten sonra Service Fabric bu düğümdeki yükseltmeye devam eder. Parametrenin upgradeTimeout değeri 6 saate düşürülebilir, ancak maksimum 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 kaynaklara yönelik tüm başvuruları 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 kullanılan powershell komutunu kullanarak belirli kaynak türünü ve API sürümünü belirtebilirsiniz.
    • Gümüş ve altın dayanıklılık 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

Bu adım, aynı Load Balancer ise isteğe bağlıdır ve düğüm türleri arasında IP yeniden kullanılır.

Sonraki adımlar