我正在尝试使用此 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:正在创建...╷│错误:创建群集:(托管群集名称“assessment-cluster”/资源组“assessment”):containerservice.ManagedClustersClient#CreateOrUpdate:发送请求失败:StatusCode=400——原始错误:代码=“NoRegisteredProviderFound”消息=“未找到位置“centralus”和 API 版本“2022-01-02-preview”的注册资源提供程序,类型为“managedClusters”。支持的 api 版本为'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-预览, 2022-08-01, 2022-08-02-预览, 2022-08-03-预览, 2022-09-01, 2022-09-02-预览, 2022-10-02-预览, 2022-11-01, 2022-11-02-预览, 2023-01-01, 2023-01-02-预览, 2023-02-01, 2023-02-02-预览, 2023-03-01, 2023-03-02-预览, 2023-04-01, 2023-04-02-预览, 2023-05-01, 2023-05-02-预览, 2023-06-01, 2023-06-02-预览, 2023-07-01, 2023-07-02-预览, 2023-08-01, 2023-08-02-预览, 2023-09-01, 2023-09-02-预览, 2023-10-01, 2023-10-02-预览, 2023-11-01, 2023-11-02-预览, 2024-01-01, 2024-01-02-预览, 2024-02-01, 2024-02-02-预览'。支持的位置是“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、norwayeurope、norwayeast、norwaywest、polandcentral、qatarcentral、soutafricanorth、soutafricawest、soutcentralus、soutindia、souteastasia、swedencentral、switzerlandnorth、switzerlandwest、uaecentral、uaenorth、uksouth、ukwest、westcentralus、westeurope、westus、westus2、westus3”。│ │ 使用 azurerm_kubernetes_cluster.k8s,│ 在 aks.tf 第 12 行,在资源“azurerm_kubernetes_cluster”“k8s”中:│ 12:资源“azurerm_kubernetes_cluster”“k8s”{
如果您知道我做错了什么,哇,那真是太棒了。我不知道为什么我会遇到这个错误消息,也不知道我需要查看哪里,因为错误消息根本没有帮助。
答案1
错误“NoRegisteredProviderFound”表示 AKS 资源提供程序未注册到你在 Terraform 配置中使用的特定位置和 API 版本。有两种可能的解决方案:
1.使用受支持的 API 版本:
- 错误消息列出了您选择的位置(根据代码可能是“centralus”)支持的 API 版本。
- 检查支持的版本,如果当前设置为您所在地区不可用的预览版本,请更新 Terraform 代码中的 API 版本。
2.注册 AKS 资源提供程序:
- 如果您特别需要使用预览 API 版本,则可能需要为您的订阅注册 AKS 资源提供程序。
- 使用 Azure CLI 通过以下命令注册提供程序:
az provider register --namespace Microsoft.ContainerService
以下是一些其他提示:
- 有关 AKS 支持的位置和 API 版本的详细信息,请参阅 Azure 文档:https://learn.microsoft.com/en-us/azure/aks/
- 确保您使用的是最新版本的 AzureRM Terraform 提供程序,因为新版本可能可以更好地处理 API 版本。