【问题标题】:Azure Templates Support For AKS Node PoolsAKS 节点池的 Azure 模板支持
【发布时间】: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


    【解决方案1】:

    这是一个工作模板示例:

    {
        "$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 预览。

    【讨论】:

    • 指出错误答案有什么不礼貌的?这不是您第一次给出错误的答案,您甚至没有撤回\编辑它们。那是不礼貌的\有害和误导。你只关心这个网站上的积分,这甚至没有任何意义@CharlesXu
    【解决方案2】:

    很遗憾,目前恐怕您无法使用 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”中测试的错误。

    【讨论】:

    • 为什么您认为它们不可用?至少从 12 月(或 1 月)开始,您可以使用 arm 模板创建多个节点池 aks。 4c74356b41.com/post5785
    • @4c74356b41 在模板中设置相同但没有成功。它只创建一个池。多个节点池需要 vmss 代理,并且没有设置它的属性。您真的通过您提供的模板创建多个节点池吗?还是直接部署成功?
    • 是的,它确实创建了多个节点池。它不会被支持,只有第一个池是可扩展的。但可以升级集群
    • @4c74356b41 就是这样。 AKS 不支持它,即使它可以在 kubernetes 集群中创建多个池。它比 AKS 更多的 k8s。并且它没有具有多个节点池的 AKS 的特点。
    • 您可以使用带有 arm 模板的 vmss 创建 aks。不确定我是否遵循这个论点
    猜你喜欢
    • 2020-02-06
    • 2022-01-05
    • 2021-12-17
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2020-08-20
    相关资源
    最近更新 更多