部署每个 NodeType 一个子网的 Service Fabric 托管群集

自带虚拟网络方案中,Service Fabric 托管群集现在支持每个 NodeType 使用不同子网。 由于每个 NodeType 使用不同子网,客户可以将特定应用程序部署到特定子网,并通过网络安全组 (NSG) 规则利用流量管理。 客户可以通过这种配置加强部署的网络隔离。 此功能适用于主要 NodeType 和辅助 NodeType。

先决条件

为方案正确配置托管群集的网络。 在自带虚拟网络方案中,每个 NodeType 可以使用不同子网。 还可以根据需要自带 Azure 负载均衡器。 按照群集的相应步骤操作:

你需要在子网上配置 NSG 的规则,以允许来自 Service Fabric 资源提供程序 (SFRP) 的连接。 具体而言,必须允许 SFMC_AllowServiceFabricGatewayToSFRPSFMC_AllowServiceFabricGatewayToLB

SFMC_AllowServiceFabricGatewayToSFRP NSG 规则应采用以下形式:

规则 目标端口范围 协议 源地址前缀 目标地址前缀 Access
SFMC_AllowServiceFabricGatewayToSFRP 19000、19080 TCP ServiceFabric VirtualNetwork 允许

SFMC_AllowServiceFabricGatewayToLB NSG 规则应采用以下形式:

规则 目标端口范围 协议 源地址前缀 目标地址前缀 Access
SFMC_AllowServiceFabricGatewayToLB 任意 任意 AzureLoadBalancer VirtualNetwork 允许

有关 NSG 规则的 ARM 模板格式设置,请参阅“为 Service Fabric 托管群集配置网络设置”的“NSG 规则:SFMC_AllowServiceFabricGatewayToSFRP”部分作为示例。

每个 NodeType 一个子网仅适用于 Service Fabric API 版本 2022-10-01 preview 或更高版本。

注意事项和限制

  • 对于指定了 subnetId 的自带虚拟网络配置中的现有群集,启用每个 NodeType 一个子网将替代当前 NodeType 的现有值。
  • 对于新群集,客户需要在群集级别指定 useCustomVNet : true。 此设置指示群集使用自带虚拟网络,但子网在 NodeType 级别指定。 对于此类群集,不会在托管资源组中创建虚拟网络。 对于此类群集,NodeType 需要 subnetId 属性。

在 ARM 模板中包含 subnetId 属性

创建新的 NodeType 时,需要使用这个新的 subnetId 属性修改 ARM 模板。

{
  "apiVersion": "2022-10-01-preview",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
  "location": "[parameters('clusterLocation')]",
  "dependsOn": [
    "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
  ],
  "properties": {
    "isPrimary": false,
    "subnetId": "[parameters('nodeTypeSubnetId')]",
    "dataDiskSizeGB": "[parameters('dataDiskSizeGB')]",
    "vmImagePublisher": "[parameters('vmImagePublisher')]",
    "vmImageOffer": "[parameters('vmImageOffer')]",
    "vmImageSku": "[parameters('vmImageSku')]",
    "vmImageVersion": "[parameters('vmImageVersion')]",
    "vmSize": "[parameters('vmSize')]",
    "vmInstanceCount": "[parameters('vmInstanceCount')]"
  }
}

后续步骤