如果除了更新业务流程之外,还想要使用 Fleet Manager 进行 Kubernetes 对象传播,则需要使用中心群集创建 Fleet Manager 资源。
具有中心群集的机群管理器群集支持用于网络访问的公共模式和专用模式。 有关详细信息,请参阅 “选择 Azure Kubernetes Fleet Manager”选项。
公共中心群集
若要使用中心群集创建公共 Fleet Manager 资源,请使用以下 ARM 模板
查看模板
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"fleetName": {
"type": "string",
"defaultValue": "my-hubful-fleet"
}
},
"resources": [
{
"type": "Microsoft.ContainerService/fleets",
"apiVersion": "2025-03-01",
"name": "[parameters('fleetName')]",
"location": "[resourceGroup().location]",
"properties": {
"hubProfile": {
"dnsPrefix": "[parameters('fleetName')]"
}
}
}
]
}
部署模板
选择“部署到 Azure”,登录并打开模板。
在 “基本信息 ”页上,配置以下模板参数
- 订阅:选择 Azure 订阅。
-
资源组:选择“新建”。 输入资源组的唯一名称(例如 myResourceGroup),然后选择“确定”。
-
位置:选择一个位置,例如 ChinaNorth3。
-
舰队名称:输入舰队的唯一名称,例如 myFleet。
选择“查看 + 创建”>“创建”。
专用中心群集
使用专用中心群集创建 Fleet Manager 时,请考虑到以下其他注意事项:
- 机群管理器要求您指定用于放置Fleet Manager中心集群节点虚拟机(VM)的子网。 这可以通过在舰队管理器的
subnetId 的 agentProfile 中设置 hubProfile 来完成。
-
vnet vnetName 的地址前缀不得与 Azure Kubernetes 服务的 (AKS) 默认服务范围
10.0.0.0/16重叠。
- 专用访问模式不允许配置域名。
- 专用访问模式需要在代理子网上为舰队管理器的第一方服务主体分配
Network Contributor 角色(舰队管理器的第一方服务主体 ID 在不同的 Entra 租户之间有所不同)。 使用命令创建专用机群管理器时az fleet create此角色分配,因为 CLI 会自动创建角色分配。
- 提取舰队管理器的服务主体对象 ID:
az ad sp list --display-name "Azure Kubernetes Service - Fleet RP" --query "[].{id:id}" --output tsv
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- 查看模板
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vnetName": {
"type": "String",
"defaultValue": "myVnet"
},
"fleetName": {
"type": "String",
"defaultValue": "my-private-fleet"
},
"fleetSpObjectId": {
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2024-05-01",
"name": "[parameters('vnetName')]",
"location": "[resourceGroup().location]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"192.168.0.0/16"
]
}
}
},
{
"type": "Microsoft.ContainerService/fleets",
"apiVersion": "2025-03-01",
"name": "[parameters('fleetName')]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[guid(resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), 'subnet'), parameters('fleetSpObjectId'))]"
],
"properties": {
"hubProfile": {
"agentProfile": {
"subnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), 'subnet')]"
},
"apiServerAccessProfile": {
"enablePrivateCluster": true,
"enableVnetIntegration": false
}
}
}
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2024-05-01",
"name": "[concat(parameters('vnetName'), '/subnet')]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]"
],
"properties": {
"addressPrefix": "192.168.0.0/24"
}
},
{
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
"name": "[guid(resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), 'subnet'), parameters('fleetSpObjectId'))]",
"scope": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), 'subnet')]",
"properties": {
"roleDefinitionId": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '4d97b98b-1d4f-4787-a291-c67834d212e7')]",
"principalType": "ServicePrincipal",
"principalId": "[parameters('fleetSpObjectId')]"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), 'subnet')]"
]
}
]
}
使用从第一步获得的服务主体对象ID,部署ARM模板
在 “基本信息 ”页上,配置以下模板参数:
- 订阅:选择 Azure 订阅。
-
资源组:选择“新建”。 输入资源组的唯一名称(例如 myResourceGroup),然后选择“确定”。
-
位置:选择一个位置,例如 ChinaNorth3。
-
舰队名称:输入舰队的唯一名称,例如 myFleet。
-
Vnet 名称:输入虚拟网络的唯一名称,例如 myVnet
-
机队 SP 对象 ID:输入 步骤 1 输出中的服务主体对象 ID。
选择“查看 + 创建”>“创建”。