2
votes

I've been trying to provision a 2-node-type service fabric cluster using ARM. The secondary node type (backend) should not be exposed to the internet. For that I've created a loadbalancer with an internal IP-Address.

Everything gets provisioned correctly but I cannot get the nodes added to the cluster. From the Azure portal when I open the cluster it says it has no nodes in it even though it has the node types configured.

I have even tried downloading the template produced by the azure portal after creating a service fabric cluster. I have also executed one of the templates provided on github and I cannot still see any nodes in the cluster.

Any suggestion what I could be missing?

Thanks

1
Is it a secured or un-secured cluster? - Edward Rixon
it is unsecured....but for now...for my integration staging i would provision a secured cluster - R Gr
I was going to suggest you check the cert and KV parameters, but it's unsecured... Without seeing the template, it is hard to tell. But you say you can't even get the portal template to work... I just tried out this github one github.com/Azure/azure-quickstart-templates/tree/master/… which worked fine for me. Does the cluster status just stay as 'waiting for nodes'? - Edward Rixon
I just got it. I was misusing the probe ports of the loadbalancers for the node types...now it works...thanks a lot. What I am trying to find out now is how can deploy my backend application to the backend note-type (vm scaleset)? - R Gr

1 Answers

1
votes

Glad to hear you got that sorted. Regarding your follow-up question on deploying to the backend node-types, that's where you'd use placement constraints. When you create clusters in Azure through ARM, it automatically sets up a placement property on each node using the node type name you defined. So on your back-end nodes, assuming your node type is called "backendnode" you'll have the following placement policy defined:

 NodeTypeName: backendnode

When you deploy your services, just use that as your placement constraint:

 New-ServiceFabricService -ApplicationName "fabric:/myapp" -ServiceName "fabric:/myapp/myservice" -ServiceTypeName "myservicetype" -Stateful -MinReplicaSetSize 2 -TargetReplicaSetSize 3 -PartitionSchemeSingleton -PlacementConstraint "NodeTypeName == backendnode"