Масштабирование кластера Service Fabric путем добавления масштабируемого набора виртуальных машин

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

Добавление дополнительного масштабируемого набора в существующий кластер

Добавление нового типа узла (с резервным копированием в масштабируемом наборе виртуальных машин) в существующий кластер выполняется так же, как изменение типа первичного узла, но в этом случае вы используете другой NodeTypeRef. Очевидно также, что при этом не будут отключаться активно работающие масштабируемые наборы виртуальных машин и для сохранения доступности кластера не требуется обновлять тип первичного узла.

Свойство NodeTypeRef объявляется в свойствах расширения Service Fabric масштабируемого набора виртуальных машин.

<snip>
"publisher": "Microsoft.Azure.ServiceFabric",
     "settings": {
     "clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]",
     "nodeTypeRef": "[parameters('vmNodeType2Name')]",
     "dataPath": "D:\\\\SvcFab",
     "durabilityLevel": "Silver",
<snip>

Кроме того, вам нужно будет добавить этот новый тип узла в ресурс кластера Service Fabric:

<snip>
"nodeTypes": [
      {
      "name": "[parameters('vmNodeType2Name')]",
      "applicationPorts": {
                "endPort": "[parameters('nt2applicationEndPort')]",
                "startPort": "[parameters('nt2applicationStartPort')]"
      },
      "clientConnectionEndpointPort": "[parameters('nt2fabricTcpGatewayPort')]",
      "durabilityLevel": "Silver",
       "ephemeralPorts": {
                "endPort": "[parameters('nt2ephemeralEndPort')]",
                "startPort": "[parameters('nt2ephemeralStartPort')]"
      },
      "httpGatewayEndpointPort": "[parameters('nt2fabricHttpGatewayPort')]",
      "isPrimary": false,
      "vmInstanceCount": "[parameters('nt2InstanceCount')]"
},
<snip>

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