null

Установка Service Fabric на Standalone кластере

Service Fabric — это оркестратор контейнеров корпорации Майкрософт, который развертывает микрослужбы в кластере виртуальных машин. Service Fabric работает где угодно. Кластеры Service Fabric можно создавать во многих средах, включая среду Azure или локальную среду, платформу Windows Server или Linux. Можно даже создать кластеры в других общедоступных облаках.

Развёртыванием и конфигурацией Service Fabric сегодня мы и займёмся.

Для начала взглянем на доступную инфраструктуру:

Кластер будет состоять из трёх виртуалных машин с идентичными характеристиками:

  • Два виртуальных процессора по 2.7 ГГц
  • 8 ГБ оперативной памяти
  • Два диска: под систему и сам SF
  • Имеют IP-адреса из диапазона 10.10.0.11 - 10.10.0.13

Рекомендуемые требования от Microsoft:

  • A minimum of 16 GB of RAM
  • A minimum of 40 of GB available disk space
  • A 4 core or greater CPU
  • Connectivity to a secure network or networks for all machines
  • Windows Server 2012 R2 or Windows Server 2016
  • .NET Framework 4.5.1 or higher, full install
  • Windows PowerShell 3.0
  • The RemoteRegistry service should be running on all the machines
  • The cluster administrator deploying and configuring the cluster must have administrator privileges on each of the machines. You cannot install Service Fabric on a domain controller.

Для начала скачаем пакет установщика Service Fabric Standalone Package и распакуем.

Пакет содержит в себе набор PowerShell скриптов для инсталляции кластера Serfice Fabric.

Нам понадобятся следующие из них:

  • CreateServiceFabricCluster.ps1 - Сценарий PowerShell, который создает кластер, используя параметры из файла ClusterConfig.json.
  • RemoveServiceFabricCluster.ps1 - Сценарий PowerShell, который удаляет кластер, используя параметры из файла ClusterConfig.json.
  • TestConfiguration.ps1 - Сценарий PowerShell для анализа инфраструктуры в соответствии с указаниями в cluster.JSON.

Создадим файл конфигурации на основе одного из существующих с необходимыми параметрами:

{
    "name": "SF-CLUSTER",
    "clusterConfigurationVersion": "1.0.0",
    "apiVersion": "08-2017",
    "nodes": [
        {
            "nodeName": "node01",
            "iPAddress": "10.10.0.11",
            "nodeTypeRef": "NodeType0",
            "faultDomain": "fd:/vm1",
            "upgradeDomain": "UD0"
        },
        {
            "nodeName": "node02",
            "iPAddress": "10.10.0.12",
            "nodeTypeRef": "NodeType0",
            "faultDomain": "fd:/vm2",
            "upgradeDomain": "UD1"
        },
        {
            "nodeName": "node03",
            "iPAddress": "10.10.0.13",
            "nodeTypeRef": "NodeType0",
            "faultDomain": "fd:/vm3",
            "upgradeDomain": "UD2"
        }
    ],
    "properties": {
        "diagnosticsStore": 
        {
            "metadata":  "Please replace the diagnostics file share with an actual file share accessible from all cluster machines.",
            "dataDeletionAgeInDays": "7",
            "storeType": "FileShare",
            "connectionstring": "\\\\10.10.0.11\\DiagnosticsStore"
        },
        "reliabilityLevel": "Bronze",
        "fabricClusterAutoupgradeEnabled": true,
        "nodeTypes": [
            {
                "name": "NodeType0",
                "clientConnectionEndpointPort": "19000",
                "clusterConnectionEndpointPort": "19001",
                "leaseDriverEndpointPort": "19002",
                "serviceConnectionEndpointPort": "19003",
                "httpGatewayEndpointPort": "19080",
                "reverseProxyEndpointPort": "19081",
                "applicationPorts": {
                    "startPort": "20001",
                    "endPort": "20031"
                },
                "isPrimary": true
            }
        ],
        "fabricSettings": [
            {
                "name": "Setup",
                "parameters": [
                    {
                        "name": "FabricDataRoot",
                        "value": "D:\\SF"
                    },
                    {
                        "name": "FabricLogRoot",
                        "value": "D:\\SF\\Log"
                    }
                ]
            }
        ]
    }
}

На одном из узлов кластера (а лучше на отдельной машине) нужно создать директорию D:\DiagbisticsStore, для которой установить полные права на доступ с узлов кластера. И открыть для неё общий доступ по адресу \\10.10.0.11\DiagnosticsStore, для которого установлены полные права на доступ для узлов кластера.

Теперь можно выполнить установку Service Fabric кластера, запустив следующий скрипт:

.\CreateServiceFabricCluster.ps1 -ClusterConfigFilePath ClusterConfig.json

После его выполнения, можно зайти в Service Fabric Explorer по адресу http://localhost:19080/Explorer/ и наблюдать за состоянием кластера.

Теперь можно создавать и деплоить приложения из Visual Studio, указывая в качестве эндпойнта - 10.10.0.11:19000.