+-
ARM AKS 必须定义至少一个系统池。

我正在创建AKS集群使用ARM脚本.目标是创建集群从0与所有需要的配置VNs,NGS和AgentPool.这里是我的ManagedCluster ARM模板。

  {
            "apiVersion": "2020-03-01",
            "name": "[parameters('clusterName')]",
            "type": "Microsoft.ContainerService/managedClusters",
            "location": "[parameters('templateSettings').location]",
            "properties": {
                "kubernetesVersion": "[parameters('kubernetesVersion')]",
                "enableRBAC": true,
                "dnsPrefix": "[parameters('dnsPrefix')]",
                "agentPoolProfiles": [
                    {
                        "name": "nodepool",
                        "count": "[parameters('agentCount')]",
                        "vmSize": "[parameters('agentVMSize')]",
                        "osDiskSizeGB": "[parameters('osDiskSizeGB')]",
                        "vnetSubnetID": "[parameters('vnetSubnetID')]",
                        "maxPods": 110,
                        "minCount": 1,
                        "maxCount": 100,
                        "enableAutoScaling": true,
                        "type": "VirtualMachineScaleSets",
                        "storageProfile": "ManagedDisks"
                    }
                ],
                "servicePrincipalProfile": {
                    "ClientId": "[parameters('servicePrincipalClientId')]",
                    "Secret": "[parameters('servicePrincipalClientSecret')]"
                },
                "networkProfile": {
                    "loadBalancerSku": "standard",
                    "networkPlugin": "kubenet"
                },
                "addonProfiles": {
                    "httpApplicationRouting": {
                        "enabled": true
                    },
                    "omsagent": {
                        "enabled": true,
                        "config": {
                            "logAnalyticsWorkspaceResourceID": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspaceName'))]"
                        }
                    }
                },
                "nodeResourceGroup": "[concat(resourceGroup().name, '-nodes')]"
            }
        }

在部署到Azure,我收到这个错误,这是没有提到的任何地方在文档。

{
    "error": {
        "code": "InvalidTemplateDeployment",
        "message": "The template deployment 'AksDeployment' is not valid according to the validation procedure. The tracking id is 'b68b569d-**********************'. See inner errors for details.",
        "details": [
            {
                "code": "MustDefineAtLeastOneSystemPool",
                "message": "Provisioning of resource(s) for container service aks-arm-test in resource group rg-arm-test failed. Message: {\n  \"code\": \"MustDefineAtLeastOneSystemPool\",\n  \"message\": \"Must define at least one system pool.\"\n }. Details: "
            }
        ]
    }
}
2
投票

实际上,你可以直接把它标记为一个系统。

{
    "name": "nodepool",
    "count": "[parameters('agentCount')]",
    "vmSize": "[parameters('agentVMSize')]",
    "osDiskSizeGB": "[parameters('osDiskSizeGB')]",
    "vnetSubnetID": "[parameters('vnetSubnetID')]",
    "maxPods": 110,
    "minCount": 1,
    "maxCount": 100,
    "enableAutoScaling": true,
    "type": "VirtualMachineScaleSets",
    "storageProfile": "ManagedDisks",
    "mode" : "System"
}

https:/docs.microsoft.comen-usazureaksuse-system-pool#show-details-for-your-node-pool。

旧版的api也可以使用