Добавление узлов в автономный кластер Service Fabric под управлением Windows Server или удаление узлов из него

После создания автономного кластера Service Fabric на компьютерах под управлением Windows Server потребности (компании) могут измениться. Возможно, вам понадобится добавить несколько узлов в кластер или удалить их из него. Процесс описан в этой статье.

Примечание

Возможности добавления и удаления узлов не поддерживаются для локальных кластеров разработки.

Добавление узлов в кластер

  1. Подготовьте виртуальную машину или компьютер, который вы хотите добавить в кластер. Для этого выполните действия, описанные в статье Планирование и подготовка развертывания изолированного кластера Service Fabric.

  2. Определите, в какой домен сбоя и домен обновления нужно добавить эту виртуальную машину или компьютер.

    Если вы используете сертификаты для защиты кластеров, их нужно заранее установить в локальное хранилище сертификатов, чтобы успешно добавить узел в кластер. Это справедливо и для других используемых мер безопасности.

  3. Подключитесь к виртуальной машине или компьютеру, который нужно добавить в кластер, с помощью удаленного рабочего стола.

  4. Скопируйте или скачайте отдельный пакет для Service Fabric для Windows Server на виртуальную машину или компьютер и извлеките его содержимое.

  5. Запустите PowerShell с более высоким уровнем привилегий и перейдите к расположению распакованного пакета.

  6. Запустите скрипт AddNode.ps1, указав параметры, описывающие новый узел, который будет добавлен. В следующем примере новый узел с именем VM5, типом NodeType0 и IP-адресом 182.17.34.52 добавляется в UD1 и fd:/dc1/r0. ExistingClusterConnectionEndPoint обозначает конечную точку подключения для узла, который уже есть в существующем кластере. Это может быть IP-адрес любого узла в этом кластере.

    Незащищенный (для разработки):

    .\AddNode.ps1 -NodeName VM5 -NodeType NodeType0 -NodeIPAddressorFQDN 182.17.34.52 -ExistingClientConnectionEndpoint 182.17.34.50:19000 -UpgradeDomain UD1 -FaultDomain fd:/dc1/r0 -AcceptEULA
    

    Защищенный (с сертификатом):

    $CertThumbprint= "***********************"
    
    .\AddNode.ps1 -NodeName VM5 -NodeType NodeType0 -NodeIPAddressorFQDN 182.17.34.52 -ExistingClientConnectionEndpoint 182.17.34.50:19000 -UpgradeDomain UD1 -FaultDomain fd:/dc1/r0 -X509Credential -ServerCertThumbprint $CertThumbprint  -AcceptEULA
    

    Когда выполнение скрипта завершится, можно проверить, добавлен ли новый узел. Для этого выполните командлет Get-ServiceFabricNode.

  7. Чтобы обеспечить согласованность на различных узлах в кластере, нужно обновить конфигурацию. Выполните командлет Get- ServiceFabricClusterConfiguration, чтобы получить самый новый файл конфигурации, и добавьте только что добавленный узел в раздел Nodes (Узлы). Кроме того, мы рекомендуем всегда иметь последнюю конфигурацию кластера на случай, если понадобится развернуть кластер с той же конфигурацией.

    {
        "nodeName": "vm5",
        "iPAddress": "182.17.34.52",
        "nodeTypeRef": "NodeType0",
        "faultDomain": "fd:/dc1/r0",
        "upgradeDomain": "UD1"
    }
    
  8. Выполните команду Start-ServiceFabricClusterConfigurationUpgrade, чтобы начать обновление.

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    Ход выполнения обновления можно отслеживать с помощью Service Fabric Explorer. В качестве альтернативы можно выполнить команду Get-ServiceFabricClusterUpgrade.

Добавление узлов в кластеры, настроенные с помощью Windows Security, с использованием gMSA

Для кластеров, настроенных с помощью групповой управляемой учетной записи службы (https://technet.microsoft.com/library/hh831782.aspx), можно добавить новый узел, используя обновление конфигурации:

  1. Выполните команду Get-ServiceFabricClusterConfiguration на любом из имеющихся узлов, чтобы получить самый последний файл конфигурации, и добавьте сведения о новом узле, который нужно добавить в раздел узлов. Убедитесь, что новый узел входит в ту же учетную запись, которой управляет группа. Этой учетной записи нужно назначить роль "Администратор" на всех компьютерах.

    {
        "nodeName": "vm5",
         "iPAddress": "182.17.34.52",
         "nodeTypeRef": "NodeType0",
         "faultDomain": "fd:/dc1/r0",
         "upgradeDomain": "UD1"
    }
    
  2. Выполните команду Start-ServiceFabricClusterConfigurationUpgrade, чтобы начать обновление.

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    Ход выполнения обновления можно отслеживать с помощью Service Fabric Explorer. Кроме того, с этой же целью можно выполнить команду Get-ServiceFabricClusterUpgrade.

Добавление типов узлов в кластер

Чтобы добавить новый тип узла, измените конфигурацию, чтобы добавить новый тип узла в разделе NodeTypes в области Properties, и начните обновление конфигурации, используя ServiceFabricClusterConfigurationUpgrade. После завершения обновления в кластер можно добавить новые узлы этого типа.

Удаление узлов из кластера

Вы можете удалить узел из кластера в ходе обновления конфигурации следующим образом:

  1. Выполните команду Get-ServiceFabricClusterConfiguration, чтобы получить последний файл конфигурации, и удалите узел из раздела узлов. Добавьте параметр NodesToBeRemoved в раздел Setup в разделе FabricSettings. В качестве значений принимается разделенный запятыми список узлов, которые необходимо удалить.

     "fabricSettings": [
         {
         "name": "Setup",
         "parameters": [
             {
             "name": "FabricDataRoot",
             "value": "C:\\ProgramData\\SF"
             },
             {
             "name": "FabricLogRoot",
             "value": "C:\\ProgramData\\SF\\Log"
             },
             {
             "name": "NodesToBeRemoved",
             "value": "vm0, vm1"
             }
         ]
         }
     ]
    
  2. Выполните команду Start-ServiceFabricClusterConfigurationUpgrade, чтобы начать обновление.

    Start-ServiceFabricClusterConfigurationUpgrade -ClusterConfigPath <Path to Configuration File>
    

    Ход выполнения обновления можно отслеживать с помощью Service Fabric Explorer. В качестве альтернативы можно выполнить команду Get-ServiceFabricClusterUpgrade.

Примечание

При удалении узлов может выполниться несколько обновлений. Некоторые узлы будут отмечены тегом IsSeedNode=”true”. Их можно определить, запросив манифест кластера с использованием Get-ServiceFabricClusterManifest. Удаление таких узлов может занимать больше времени, чем других, так как в таких сценариях начальные узлы придется перемещать. Кластер должен поддерживать как минимум 3 первичных узла.

Удаление типов узлов из кластера

Прежде чем удалить тип узла, проверьте, нет ли узлов, которые ссылаются на этот тип. Перед удалением соответствующего типа узла удалите эти узлы. После удаления всех соответствующих узлов NodeType можно удалить из конфигурации кластера и начать обновление конфигурации с помощью ServiceFabricClusterConfigurationUpgrade.

Замена основных узлов кластера

Замену основных узлов следует выполнять последовательно, вместо того чтобы удалять, а затем добавлять их массово.

Дальнейшие действия