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

Terraform部署AKS遇NoRegisteredProviderFound错误求助

解决AKS部署中的NoRegisteredProviderFound错误

我尝试用以下Terraform代码部署AKS集群:

resource "azurerm_kubernetes_cluster" "k8s" {
  name                = local.k8s.name
  location            = azurerm_resource_group.k8s_rg.location
  resource_group_name = azurerm_resource_group.k8s_rg.name
  dns_prefix          = local.k8s.dns_prefix

  default_node_pool {
    name       = "default"
    node_count = 1
    vm_size    = "Standard_D2_v2"
  }

  identity {
    type = "SystemAssigned"
  }

  tags = local.k8s.tags
}

部署时遇到如下错误:

azurerm_kubernetes_cluster.k8s: Creating...
╷
│ Error: creating Cluster: (Managed Cluster Name "assessment-cluster" / Resource Group "assessment"): containerservice.ManagedClustersClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="NoRegisteredProviderFound" Message="No registered resource provider found for location 'centralus' and API version '2022-01-02-preview' for type 'managedClusters'. The supported api-versions are '2017-08-31, 2018-03-31, 2019-02-01, 2019-04-01, 2019-06-01, 2019-08-01, 2019-10-01, 2019-11-01, 2020-01-01, 2020-02-01, 2020-03-01, 2020-04-01, 2020-06-01, 2020-07-01, 2020-09-01, 2020-11-01, 2020-12-01, 2021-02-01, 2021-03-01, 2021-05-01, 2021-07-01, 2021-08-01, 2021-09-01, 2021-10-01, 2022-01-01, 2022-02-01, 2022-03-01, 2022-04-01, 2022-06-01, 2022-07-01, 2022-07-02-preview, 2022-08-01, 2022-08-02-preview, 2022-08-03-preview, 2022-09-01, 2022-09-02-preview, 2022-10-02-preview, 2022-11-01, 2022-11-02-preview, 2023-01-01, 2023-01-02-preview, 2023-02-01, 2023-02-02-preview, 2023-03-01, 2023-03-02-preview, 2023-04-01, 2023-04-02-preview, 2023-05-01, 2023-05-02-preview, 2023-06-01, 2023-06-02-preview, 2023-07-01, 2023-07-02-preview, 2023-08-01, 2023-08-02-preview, 2023-09-01, 2023-09-02-preview, 2023-10-01, 2023-10-02-preview, 2023-11-01, 2023-11-02-preview, 2024-01-01, 2024-01-02-preview, 2024-02-01, 2024-02-02-preview'. The supported locations are 'australiacentral, australiacentral2, australiaeast, australiasoutheast, brazilsouth, brazilsoutheast, canadacentral, canadaeast, centralindia, centralus, eastasia, eastus, eastus2, francecentral, francesouth, germanynorth, germanywestcentral, israelcentral, italynorth, japaneast, japanwest, jioindiacentral, jioindiawest, koreacentral, koreasouth, northcentralus, northeurope, norwayeast, norwaywest, polandcentral, qatarcentral, southafricanorth, southafricawest, southcentralus, southindia, southeastasia, swedencentral, switzerlandnorth, switzerlandwest, uaecentral, uaenorth, uksouth, ukwest, westcentralus, westeurope, westus, westus2, westus3'."
│
│ with azurerm_kubernetes_cluster.k8s,
│ on aks.tf line 12, in resource "azurerm_kubernetes_cluster" "k8s":
│ 12: resource "azurerm_kubernetes_cluster" "k8s" {


问题原因

错误核心是两点:

  1. 当前使用的AzureRM Provider调用了2022-01-02-preview这个API版本,但该版本在centralus区域不被支持(从错误给出的支持列表可见,2022年的preview版本只有2022-07-02-preview及之后的,没有2022-01-02-preview)。
  2. 你的Azure订阅可能未注册Microsoft.ContainerService资源提供商。

解决步骤

  • 升级AzureRM Provider版本
    旧版本Provider会绑定过时的API版本,在你的Terraform配置文件(如versions.tf)中指定较新的稳定版本:

    terraform {
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = ">= 3.0.0"
        }
      }
    }
    

    执行命令升级Provider:

    terraform init -upgrade
    
  • 注册Microsoft.ContainerService资源提供商
    运行Azure CLI命令完成注册:

    az provider register --namespace Microsoft.ContainerService
    

    检查注册状态,直到返回Registered:

    az provider show --namespace Microsoft.ContainerService --query registrationState
    
  • 手动指定兼容API版本(可选)
    若不想升级Provider,可在AKS资源块中直接指定错误列表里centralus支持的API版本,比如2022-01-01:

    resource "azurerm_kubernetes_cluster" "k8s" {
      name                = local.k8s.name
      location            = azurerm_resource_group.k8s_rg.location
      resource_group_name = azurerm_resource_group.k8s_rg.name
      dns_prefix          = local.k8s.dns_prefix
      api_version         = "2022-01-01" # 指定支持的API版本
    
      default_node_pool {
        name       = "default"
        node_count = 1
        vm_size    = "Standard_D2_v2"
      }
    
      identity {
        type = "SystemAssigned"
      }
    
      tags = local.k8s.tags
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:51:14