【发布时间】:2019-12-02 22:47:04
【问题描述】:
AKS 最近发布了对节点池 https://docs.microsoft.com/en-us/azure/aks/use-multiple-node-pools 的支持。 ARM 模板是否支持节点池?如果是这样,使用它们的语法是什么?我无法在线找到任何有关 ARM 模板支持的文档。
【问题讨论】:
标签: azure azure-aks azure-template
AKS 最近发布了对节点池 https://docs.microsoft.com/en-us/azure/aks/use-multiple-node-pools 的支持。 ARM 模板是否支持节点池?如果是这样,使用它们的语法是什么?我无法在线找到任何有关 ARM 模板支持的文档。
【问题讨论】:
标签: azure azure-aks azure-template
这是一个工作模板示例:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.ContainerService/ManagedClusters",
"apiVersion": "2019-04-01",
"name": "aks-test",
"location": "eastus",
"properties": {
"kubernetesVersion": "1.13.5",
"dnsPrefix": "xxx",
"agentPoolProfiles": [
{
"name": "nodepool1",
"count": 1,
"vmSize": "Standard_DS2_v2",
"osDiskSizeGB": 100,
"storageProfile": "ManagedDisks",
"maxPods": 110,
"osType": "Linux",
"enable_auto_scaling": true,
"min_count": 1,
"max_count": 3,
"type": "VirtualMachineScaleSets"
},
{
"name": "nodepool2",
"count": 1,
"vmSize": "Standard_DS2_v2",
"osDiskSizeGB": 100,
"storageProfile": "ManagedDisks",
"maxPods": 110,
"osType": "Linux",
"enable_auto_scaling": true,
"min_count": 1,
"max_count": 3,
"type": "VirtualMachineScaleSets"
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": "key"
}
]
}
},
"servicePrincipalProfile": {
"clientId": "yyy",
"secret": "zzz"
},
"enableRBAC": true,
"networkProfile": {
"networkPlugin": "kubenet",
"podCidr": "10.244.0.0/16",
"serviceCidr": "10.0.0.0/16",
"dnsServiceIP": "10.0.0.10",
"dockerBridgeCidr": "172.17.0.1/16"
}
}
}
]
}
您需要在运行之前启用 vmss 预览。
【讨论】:
很遗憾,目前恐怕您无法使用 Azure 模板创建具有多个节点池的 AKS。在您提供的文档中,您需要启用 VMSS 以创建具有多个节点池的 AKS。这是代理类型,您可以在CLI preview version for AKS 中启用它。而且您在模板中找不到它。
除了属性agentPoolProfiles中的元素之外,创建单节点池和多节点池的模板没有区别:
"agentPoolProfiles": [
{
"name": "nodepool1",
"count": 1,
"vmSize": "Standard_DS2_v2",
"osDiskSizeGB": 100,
"storageProfile": "ManagedDisks",
"maxPods": 110,
"osType": "Linux"
},
{
"name": "secnodepool",
"count": 1,
"vmSize": "Standard_DS2_v2",
"osDiskSizeGB": 100,
"storageProfile": "ManagedDisks",
"maxPods": 110,
"osType": "Linux"
}
],
我认为当它真正发布时,模板中将提供多个节点池,而不是预览版。所以你只需要耐心等待。
更新
为上述错误答案道歉。在“2019-02-01”“apiVersion”中,您已经可以在“agentPoolProfiles”的“type”属性中将代理类型设置为“VirtualMachineScaleSets”。我在“2018-03-31”“apiVersion”中测试的错误。
【讨论】: