本文介绍如何使用 Azure 命令行接口(AzureCLI)创建网络结构控制器(NFC)。 本文档还演示如何检查状态或删除网络结构控制器。
先决条件
在配置 NFC 之前,请确保满足以下要求:
资源名称必须以字母(大写或小写)开头。
仅允许字母、数字和连字符。
不允许使用下划线(_)和其他特殊字符。
最大长度为 63 个字符。
验证 ExpressRoute 线路
验证 ExpressRoute 线路是否正确连接(CircuitID)(AuthID):如果连接不正确,NFC 预配将失败。
网络结构控制器的虚拟机 (VM) SKU 更新
通过最新更新,所有新的 NFC 群集部署都使用 Standard_D8s_v3 虚拟机 SKU,而不是 Standard_Ds4_v2。
由于多个 Azure 区域的可用性 Standard_Ds4_v2 有限,因此需要进行此更改。
注释
为了确保最佳性能和可伸缩性,必须为每个网络结构控制器(NFC)内所需的网络结构实例(NF)预配适当的节点池计数。 如果必要的节点池数量不可用,则必须提前提交配置请求。 根据当前配置(建议的 SKU:StandardDS4v2(8 个 vCPU、28 GiB 内存),名为 nfcCluster 的 AKS 群集的预期节点池缩放要求如下所示:
| 每个 NFC 的 NF 数 | AKS 集群 nfc 集群所需的最小节点池数量 |
|---|---|
| 1 – 5 | 2 |
| 6 - 10 | 3 |
| 11 - 15 | 4 |
最低 vCPU 规格要求
新的 VM SKU“DSv3”至少需要 120 个 vCPU ,以确保最佳性能和资源可用性。
核查新 SKU 的虚拟机配额
若要检查订阅是否有足够的 vCPU 配额用于新的 SKU“DSv3”,请执行以下步骤:
Azure 门户:
导航到 Azure 门户 → 订阅
转到 使用情况 + 配额
搜索所需的 VM SKU“DSv3”
检查 总配额 和 当前使用情况
Azure CLI:
运行以下命令来检查可用配额:
az vm list-usage --location <region> --output table
查找 vCPU 配额并确保它满足最低要求。
请求更多 vCPU 配额
如果配额不足,请通过以下方式请求增加:
通过 Azure 门户 提交配额增加请求→ 帮助 + 支持 → 新的支持请求
选择 “配额 ”作为问题类型并指定所需的增加
注释
在继续部署之前,请确保已批准配额请求。
创建网络结构控制器
必须先创建资源组,然后才能创建 NFC。
注释
应为每个 NFC 创建单独的资源组。
通过运行以下命令创建资源组:
az group create -n NFCResourceGroupName -l "<Location>"
用于 NFC 创建的属性
| 参数 | Description | values | Example | 必选 | 类型 |
|---|---|---|---|---|---|
| 资源组 | 资源组是用于保存 Azure 解决方案相关资源的容器。 | NFCResourceGroupName | XYZNFCResourceGroupName | True | String |
| 位置 | Azure 区域是部署时必需的。 | eastus、westus3、southcentralus、eastus2euap | eastus | True | String |
| 资源名称 | 资源名称是网络结构控制器的名称。 | NFC名称 | XYZnfcname | True | String |
| IPv4地址空间 | IPv4 网络结构控制器地址空间,默认子网块为 10.0.0.0/19,也不应与任何 ExpressRoute IP 重叠 | 10.0.0.0/19 | 10.0.0.0/19 | 不需要 | String |
| IPv6 地址空间 | IPv6 网络结构控制器地址空间,此参数默认为 FC00::/59,允许的范围/59 | “FC00::/59” | “FC00::/59” | 不需要 | String |
| Express Route 线路 | ExpressRoute 线路是一个专用的 10G 链接,用于连接 Azure 和本地。 你需要知道 ExpressRoute 线路 ID 和身份验证密钥,才可以成功预配 NFC。 有两条 Express Route 线路,一条用于基础结构服务,另一条用于工作负荷(租户)服务 | --infra-er-connections '[{“expressRouteCircuitId”: “xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx”, “expressRouteAuthorizationKey”: “xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx”}]' --workload-er-connections '[{“expressRouteCircuitId”:“xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx”,“expressRouteAuthorizationKey”:“xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx”}]' |
subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-01“, ”expressRouteAuthorizationKey“: ”xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx“}] | True | 字符串 |
| 托管资源组 | 托管资源组配置属性。 | NFC管理资源组名称 | XYZNFCManagedResourceGroupName | True | String |
下面是如何使用 Azure CLI 创建 NFC 的示例。 有关详细信息,请参阅 “属性”部分。
az networkfabric controller create \
--resource-group "NFCResourceGroupName" \
--location "<Location>" \
--resource-name "nfcname" \
--ipv4-address-space "10.0.0.0/19" \
--ipv6-address-space "FC00::/59" \
--infra-er-connections '[{"expressRouteCircuitId": "/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-01", "expressRouteAuthorizationKey": "<auth-key>"}]'
--workload-er-connections '[{"expressRouteCircuitId": "/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-01"", "expressRouteAuthorizationKey": "<auth-key>"}]' \
--debug --no-wait
注释
NFC 创建需要 30-45 分钟。
> 使用 show 命令监视 NFC 创建进度。
可以看到不同的预配状态,例如“已接受”、“更新”和“成功/失败”。
> 如果创建失败,Failed请删除并重新创建 NFC。
预期输出仅在通过 AzureCLI 执行时立即显示为运行中
预期输出:
{
"id": "/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/NFCResourceGroupName/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/nfcname",
"infrastructureExpressRouteConnections": [
{
"expressRouteCircuitId": "/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-02"
}
],
"infrastructureServices": {
"ipv4AddressSpaces": [
"10.0.0.0/21"
],
"ipv6AddressSpaces": []
},
"ipv4AddressSpace": "10.0.0.0/19",
"ipv6AddressSpace": "FC00::/59",
"isWorkloadManagementNetworkEnabled": "True",
"location": "<Location>",
"managedResourceGroupConfiguration": {},
"name": "NFCName",
"provisioningState": "Succeeded",
"resourceGroup": "NFCResourceGroupName",
"systemData": {
"createdAt": "2023XX-XXT18:59:41.7805324Z",
"createdBy": "email@address.com",
"createdByType": "User",
"lastModifiedAt": "2023-XX-XXT09:50:27.4598499Z",
"lastModifiedBy": "d1bd24c7-b27f-477e-86dd-939e107873d7",
"lastModifiedByType": "Application"
},
"type": "microsoft.managednetworkfabric/networkfabriccontrollers",
"workloadExpressRouteConnections": [
{
"expressRouteCircuitId": "/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx//resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-03"
}
],
"workloadManagementNetwork": true,
"workloadServices": {
"ipv4AddressSpaces": [
"10.0.28.0/22"
],
"ipv6AddressSpaces": []
}
}
获取网络结构控制器
az networkfabric controller show --resource-group "NFCResourceGroupName" --resource-name "nfcname"
预期输出:
{
"id": "/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/NFCResourceGroupName/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/nfcname",
"infrastructureExpressRouteConnections": [
{
"expressRouteCircuitId": "/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-02"
}
],
"infrastructureServices": {
"ipv4AddressSpaces": [
"10.0.0.0/21"
],
"ipv6AddressSpaces": []
},
"ipv4AddressSpace": "10.0.0.0/19",
"ipv6AddressSpace": "FC00::/59",
"isWorkloadManagementNetworkEnabled": "True",
"location": "<Location>",
"managedResourceGroupConfiguration": {},
"name": "NFCName",
"provisioningState": "Succeeded",
"resourceGroup": "NFCResourceGroupName",
"systemData": {
"createdAt": "2023XX-XXT18:59:41.7805324Z",
"createdBy": "email@address.com",
"createdByType": "User",
"lastModifiedAt": "2023-XX-XXT09:50:27.4598499Z",
"lastModifiedBy": "d1bd24c7-b27f-477e-86dd-939e107873d7",
"lastModifiedByType": "Application"
},
"type": "microsoft.managednetworkfabric/networkfabriccontrollers",
"workloadExpressRouteConnections": [
{
"expressRouteCircuitId": "/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx//resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-03"
}
],
"workloadManagementNetwork": true,
"workloadServices": {
"ipv4AddressSpaces": [
"10.0.28.0/22"
],
"ipv6AddressSpaces": []
}
}
更新网络结构控制器
Network Fabric 控制器中的 PATCH 功能使用户能够毫不费力地添加或替换其他 Express Route 线路。 此功能在失败或潜在迁移事件期间特别有用。 在这种情况下,网络操作员可以通过添加或删除 ExpressRoute 专线和密钥来灵活地修改活动的网络结构控制器,同时确保操作不受影响。
注释
启动更新命令时,提供在创建过程中提供的所有参数至关重要。 这是因为 update 命令将覆盖现有内容,因此需要包含所有相关参数,以确保全面和准确的修改。
az networkfabric controller update \
--resource-group "NFCResourceGroupName" \
--location "<Location>" \
--resource-name "nfcname" \
--ipv4-address-space "10.0.0.0/19" \
--infra-er-connections '[{"expressRouteCircuitId":"/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-01", "expressRouteAuthorizationKey": "<auth-key>"}]'
--workload-er-connections '[{"expressRouteCircuitId":"/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-01"", "expressRouteAuthorizationKey": "<auth-key>"}]'
注释
运行 az networkfabric controller show 以检索有关网络结构控制器的信息。
使用多个 ExpressRoute 电路更新网络架构控制器。
az networkfabric controller update \
--resource-group "NFCResourceGroupName" \
--location "eastus" \
--resource-name "nfcname" \
--ipv4-address-space "10.0.0.0/19" \
--infra-er-connections "[{expressRouteCircuitId:'/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-01',expressRouteAuthorizationKey:'<auth-key>'},{expressRouteCircuitId:'/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-02',expressRouteAuthorizationKey:'<auth-key>'}]"
--workload-er-connections "[{expressRouteCircuitId:'/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-03',expressRouteAuthorizationKey:'<auth-key>'},{expressRouteCircuitId:'/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-04',expressRouteAuthorizationKey:'<auth-key>'}]"
| 命令 | 说明 |
|---|---|
az networkfabric controller update |
用于更新 Azure 中现有网络结构控制器的命令 |
| 参数 | 说明 | 示例值 |
|---|---|---|
--resource-group |
指定网络结构控制器所在的资源组。 | "NFCResourceGroupName" |
--location |
指定部署网络结构控制器的 Azure 区域。 | "eastus" |
--resource-name |
要更新的网络结构控制器资源的名称。 | "nfcname" |
--ipv4-address-space |
定义网络构造控制器的 IPv4 地址空间。 | "10.0.0.0/19" |
--infra-er-connections |
以 JSON 数组格式指定基础结构 ExpressRoute 连接。 | "[{expressRouteCircuitId:'/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-11',expressRouteAuthorizationKey:'<auth-key>'},{expressRouteCircuitId:'/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-13',expressRouteAuthorizationKey:'<auth-key>'}]" |
--workload-er-connections |
以 JSON 数组格式指定 ExpressRoute 连接的工作负荷。 | "[{expressRouteCircuitId:'/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-11',expressRouteAuthorizationKey:'<auth-key>'},{expressRouteCircuitId:'/subscriptions/xxxxxx-xxxxxx-xxxx-xxxx-xxxxxx/resourceGroups/ER-Dedicated-WUS2-AFO-Circuits/providers/Microsoft.Network/expressRouteCircuits/MSFT-ER-Dedicated-PvtPeering-WestUS2-AFO-Ckt-12',expressRouteAuthorizationKey:'<auth-key>'}]" |
注释
将占位符替换为"NFCResourceGroupName"、"nfcname"和"<auth-key>"与设置相关的实际值。
删除网络结构控制器
只有在删除所有关联的网络结构后,才应删除 NFC。
az networkfabric controller delete --resource-group "NFCResourceGroupName" --resource-name "nfcname"
预期输出:
"name": "nfcname",
"networkFabricIds": [],
"operationalState": null,
"provisioningState": "succeeded",
"resourceGroup": "NFCResourceGroupName",
"systemData": {
"createdAt": "2022-10-31T10:47:08.072025+00:00",
注释
删除 NFC 需要 30 分钟。 在 Azure 门户中,验证托管资源是否已删除。
后续步骤
成功创建 NFC 后,下一步是创建 群集管理器。