You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AKS扩展部署失败:Microsoft.KubernetesConfiguration版本未找到求助

问题描述

我们计划在Azure Marketplace提供Kubernetes集群服务,已构建所需的CNAB Bundle并在Partner Center创建产品/计划,该Bundle已通过微软验证并上线。但测试部署时,创建Microsoft.KubernetesConfiguration extensions环节失败,报错指定API版本下资源类型未找到。使用ARM-TTK验证发现警告后,更换API版本为2023-05-01重新发布,虽通过验证但仍报错。已确认公司Azure订阅中ExtensionTypes特性已注册,附上使用的ARM模板,寻求问题解决方法。

报错信息

初始报错(API版本2024-11-01)

{
  "code": "InvalidResourceType",
  "message": "Resource type 'extensions' of provider namespace 'Microsoft.KubernetesConfiguration' was not found in global location for api version '2024-11-01'."
}

更换API版本为2023-05-01后的报错

{
  "code": "InvalidResourceType",
  "message": "Resource type 'extensions' of provider namespace 'Microsoft.KubernetesConfiguration' was not found in global location for api version '2023-05-01'."
}

使用的ARM模板

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "plan-name": "myPlanName",
    "plan-publisher": "myCompanyName",
    "plan-offerID": "planOfferID",
    "releaseTrain": "stable",
    "clusterExtensionTypeName": "myClusterExtensionTypeName"
  },
  "plan": {
    "name": "myPlanName",
    "publisher": "myCompanyName",
    "product": "productName"
  },
  "parameters": {
    "location": {
      "type": "string",
      "metadata": {
        "description": "部署区域"
      }
    },
    "adminUsername": {
      "type": "string",
      "defaultValue": "azureuser",
      "metadata": {
        "description": "Linux节点的管理员用户名"
      }
    },
    "clusterName": {
      "type": "string",
      "defaultValue": "myApp-aks",
      "metadata": {
        "description": "AKS集群名称"
      }
    },
    "clusterDnsPrefix": {
      "type": "string",
      "defaultValue": "myAppdns",
      "metadata": {
        "description": "AKS集群的DNS前缀"
      }
    },
    "agentCount": {
      "type": "int",
      "defaultValue": 3,
      "metadata": {
        "description": "AKS集群中的节点数量"
      }
    },
    "agentVMSize": {
      "type": "string",
      "defaultValue": "Standard_DS2_v2",
      "metadata": {
        "description": "AKS节点的VM大小"
      }
    },
    "extensionName": {
      "type": "string",
      "defaultValue": "myClusterExtensionTypeName",
      "metadata": {
        "description": "Kubernetes扩展名称"
      }
    },
    "configurationSettings": {
      "type": "object",
      "metadata": {
        "description": "来自UI定义的配置设置(命名空间、副本数等)"
      }
    },
    "sshPublicKey": {
     "type": "string",
     "metadata": {
       "description": "用于访问AKS Linux节点的SSH公钥"
     }
   }
  },
  "resources": [
    {
      "type": "Microsoft.ContainerService/managedClusters",
      "apiVersion": "2023-10-01",
      "name": "[parameters('clusterName')]",
      "location": "[parameters('location')]",
      "identity": { 
        "type": "SystemAssigned" 
      },  
      "properties": {
        "dnsPrefix": "[parameters('clusterDnsPrefix')]",
        "agentPoolProfiles": [
          {
            "name": "agentpool",
            "count": "[parameters('agentCount')]",
            "vmSize": "[parameters('agentVMSize')]",
            "osType": "Linux",
            "type": "VirtualMachineScaleSets",
            "mode": "System"
          }
        ],
        "linuxProfile": {
          "adminUsername": "[parameters('adminUsername')]",
          "ssh": {
            "publicKeys": [
              {
                "keyData": "[parameters('sshPublicKey')]"
              }
            ]
          }
        }
      }
    },
    {
      "type": "Microsoft.KubernetesConfiguration/extensions",
      "apiVersion": "2023-05-01",
      "name": "[parameters('extensionName')]",       
      "dependsOn": [
        "[resourceId('Microsoft.ContainerService/managedClusters', parameters('clusterName'))]"
      ],
      "identity": {
        "type": "SystemAssigned"
      },
      "plan": {                                      
        "name": "[variables('plan-name')]",         
        "publisher": "[variables('plan-publisher')]",
        "product": "[variables('plan-offerID')]"    
      },
      "properties": {
        "extensionType": "[variables('clusterExtensionTypeName')]",
        "autoUpgradeMinorVersion": true,
        "configurationSettings": "[parameters('configurationSettings')]",
        "scope": {
          "cluster": {
            "releaseNamespace": "[parameters('clusterDnsPrefix')]" 
          }
        }
      }
    }    
  ],
  "outputs": {
    "plan-name": {
      "type": "string",
      "value": "[variables('plan-name')]"
    },
    "plan-publisher": {
      "type": "string",
      "value": "[variables('plan-publisher')]"
    },
    "plan-offerID": {
      "type": "string",
      "value": "[variables('plan-offerID')]"
    },
    "releaseTrain": {
      "type": "string",
      "value": "[variables('releaseTrain')]"
    },
    "clusterExtensionTypeName": {
      "type": "string",
      "value": "[variables('clusterExtensionTypeName')]"
    }
  }
}
问题排查与解决建议

1. 确认资源类型的API版本兼容性

Microsoft.KubernetesConfiguration/extensions资源的有效API版本需与目标Azure区域支持的版本匹配。执行以下步骤确认:

  • 运行Azure CLI命令查看该资源类型在目标区域支持的API版本:
    az provider show --namespace Microsoft.KubernetesConfiguration --query "resourceTypes[?resourceType=='extensions'].apiVersions" -o table
    
  • 选择命令返回的稳定版本(如2022-11-01)替换当前模板中的apiVersion字段。

2. 修正扩展资源的命名格式

AKS扩展资源的命名必须关联目标AKS集群,正确格式为{clusterName}/{extensionName},而非单独的extensionName。修改模板中扩展资源的name字段:

"name": "[concat(parameters('clusterName'), '/', parameters('extensionName'))]",

3. 添加扩展资源的位置字段

扩展资源的location必须与关联AKS集群的位置一致,当前模板缺少该字段,需补充:

"type": "Microsoft.KubernetesConfiguration/extensions",
"apiVersion": "2022-11-01",
"name": "[concat(parameters('clusterName'), '/', parameters('extensionName'))]",
"location": "[parameters('location')]", // 添加此行
"dependsOn": [
  "[resourceId('Microsoft.ContainerService/managedClusters', parameters('clusterName'))]"
],

4. 验证Microsoft.KubernetesConfiguration提供商注册状态

即使已注册ExtensionTypes特性,仍需确认整个提供商在订阅中的注册状态:

  • 运行Azure CLI命令:
    az provider show --namespace Microsoft.KubernetesConfiguration --query "registrationState"
    
  • 若状态不是Registered,执行注册命令:
    az provider register --namespace Microsoft.KubernetesConfiguration
    

5. 检查Partner Center产品配置

  • 确认Partner Center中产品/计划的extensionType值与模板中variables('clusterExtensionTypeName')完全一致,包括大小写和拼写。
  • 验证CNAB Bundle中的扩展定义与ARM模板配置匹配,特别是API版本和资源类型。

内容的提问来源于stack exchange,提问作者user26660520

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:13:18