Terraform Azure - 部署 AKS NoRegisteredProviderFound 时出错

问题描述 投票:0回答:1

我正在尝试使用此 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 -- 原始错误:Code="NoRegisteredProviderFound" Message="No找到了位置“centralus”的注册资源提供程序和类型“managementClusters”的 API 版本“2022-01-02-preview”。支持的 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、norwaywest、norwayeast、norwaywest、polandcentral、qatarcentral、southafricanorth、southafricawest、southcentralus、南印度、东南亚、swedencentral、switzerlandnorth、switzerlandwest、uaecentral、uaenorth、uksouth、ukwest、westcentralus、西欧、westus、westus2、westus3 '。” │ │ 使用 azurerm_kubernetes_cluster.k8s, │ 在 aks.tf 第 12 行,资源“azurerm_kubernetes_cluster”“k8s”中: │ 12: 资源“azurerm_kubernetes_cluster”“k8s”{

如果你知道我做错了什么,哇,那就太棒了。我不知道为什么会遇到此错误消息,也不知道我需要在哪里查看,因为该错误消息根本没有任何帮助。

kubernetes terraform azure-aks
1个回答
0
投票

Terraform Azure - 部署 AKS NoRegisteredProviderFound 时出错是由于订阅下缺少容器注册表。

提到的错误列出了支持的 API 版本,并确认“centralus”是受支持的位置,这表明问题不在于该区域本身,而在于为该操作调用的 API 版本。

如果 Azure Kubernetes 服务 (AKS) 提供商未向你的 Azure 订阅注册,则可能会发生此错误。您可以使用 Azure CLI 验证并注册提供程序:

az provider show -n Microsoft.ContainerService -o table
az provider register --namespace Microsoft.ContainerService

一旦资源提供者注册,它在订阅下看起来就像这样。

enter image description here

如果您没有使用最新版本的 Terraform 和 AzureRM 提供程序,请考虑更新它们。较新的版本可能对 API 版本有更好的默认处理和其他改进。

我的地形配置:

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
    }
  }
}

provider "azurerm" {
  features {}
}

locals {
  k8s = {
    name       = "assessment-cluster"
    dns_prefix = "assessmentdns"
    tags       = {
      Environment = "Test"
    }
  }
}

resource "azurerm_resource_group" "k8s_rg" {
  name     = "assessment-rg"
  location = "centralus"
}

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
}

部署成功:

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.