【问题标题】:AKS Using Terraform - Error waiting for completionAKS 使用 Terraform - 等待完成时出错
【发布时间】:2019-07-21 01:57:37
【问题描述】:

我一直在尝试使用 terraform 部署 aks 集群。下面是我的模板文件:
ma​​in.tf

locals {
  cluster_name               = "aks-${random_integer.random_int.result}"
  agents_resource_group_name = "MC_${var.resource_group_name}_${local.cluster_name}_${azurerm_resource_group.k8s.location}"
}

resource "azurerm_resource_group" "k8s" {
  name     = "${var.resource_group_name}"
  location = "${var.resource_group_location}"
}

#Keep the AKS name (and dns label) somewhat unique
resource "random_integer" "random_int" {
  min = 100
  max = 999
}

resource "azurerm_kubernetes_cluster" "k8s" {
  name                = "${local.cluster_name}"
  location            = "${azurerm_resource_group.k8s.location}"
  resource_group_name = "${azurerm_resource_group.k8s.name}"
  dns_prefix          = "${local.cluster_name}"

  linux_profile {
    admin_username = "${var.linux_admin_username}"

    ssh_key {
      key_data = "${file("${var.linux_admin_ssh_publickey}")}"
    }
  }

  agent_pool_profile {
    name            = "agentpool"
    count           = "${var.node_count}"
    vm_size         = "${var.vm_size}"
    os_type         = "Linux"
    os_disk_size_gb = "${var.os_disk_size_gb}"
  }

  service_principal {
    client_id     = "${var.client_id}"
    client_secret = "${var.client_secret}"
  }

  tags {
    Environment = "Production"
  }
}

data "azurerm_resource_group" "agents" {
  name = "${local.agents_resource_group_name}"

  depends_on = [
    "azurerm_kubernetes_cluster.k8s",
  ]
}  

变量都是正确的,因为我没有遇到任何错误。我在~2m 之后不断收到的错误是

azurerm_kubernetes_cluster.k8s:等待完成时出错 托管 Kubernetes 集群“aks-136”(资源组“azure-aks”): Code="NotFound" Message="resources.DeploymentsClient#Get: 失败 响应请求:StatusCode=404 - 原始错误: autorest/azure:服务返回错误。状态=404 代码=\"DeploymentNotFound\" 消息=\"部署 找不到“898a5255-0c27-4eed-963a-65183e7d693c”。\"

似乎 azure API 拒绝响应,也许 terraform 将其识别为错误并出现恐慌。

【问题讨论】:

  • 看起来很奇怪,您在门户上看到任何错误吗?上述资源组中是否有任何部署?
  • 您的部署似乎失败了。我这边有两个可能的原因。一是你的配额不够。另一个是您部署的区域不支持 AKS,至少当前不支持。
  • @CharlesXu 谢谢,有帮助!你会发布这个作为答案吗?
  • @AnshulVerma 我添加了答案。

标签: azure terraform azure-aks terraform-provider-azure


【解决方案1】:

从错误显示来看,您的部署似乎失败了。我这边有两个可能的原因。一是你的配额不够。另一个是您部署的区域不支持 AKS,至少当前不支持。

【讨论】:

    【解决方案2】:

    试试下面的代码

        #variables file
    arm_subscription_id = "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
    
    arm_client_id = "XXXXXXXXXXXXXXXXXXXXXXX"
    
    arm_client_secret = "XXXXXXXXXXXXXXXXXXX"
    
    arm_tenent_id = "XXXXXXXXXXXXXXX"
    
    resource_group_name = "k8terraform"
    
    location = "East US"
    
    cluster_name = "k8terraform"
    
    dns_prifix = "k8terraform1232"
    
    #Running on a Windows add front slash to ignore characters 
    ssh_public_key = "E:\\DevOps\\Terraform\\Azure\\AKS\\aksdeploy"
    
    agent_count = 3
    
    #Variable
    variable "arm_subscription_id" {
    }
    
    variable "arm_client_id" {
    }
    
    variable "arm_client_secret" {
    }
    
    variable "arm_tenent_id" {
    }
    
    variable "location" {
    }
    
    variable "cluster_name" {
    }
    
    variable "dns_prifix" {
    }
    
    variable "ssh_public_key" {
    }
    
    variable "agent_count" {
        default = 3
    }
    
    variable "resource_group_name" {
    }
    
    #Add Azure Provider
    provider "azurerm" {
    }
    
    #Create Resource Group
    resource "azurerm_resource_group" "k8terraform" {
        name = "${var.resource_group_name}"
        location = "${var.location}"
    }
    
    #Create AKS Cluster
    resource "azurerm_kubernetes_cluster" "k8cluster" {
        name = "${var.cluster_name}"
        location = "${azurerm_resource_group.k8terraform.location}"
        resource_group_name = "${azurerm_resource_group.k8terraform.name}"
        dns_prefix = "${var.dns_prifix}"
    
        linux_profile{
            admin_username = "localadmin"
            ssh_key{
                key_data = "${file("${var.ssh_public_key}")}"
            }
        }
    
        agent_pool_profile{
            name = "aksterraform"
            count = "${var.agent_count}"
            vm_size = "Standard_B2ms"
            os_type = "Linux"
            os_disk_size_gb = 30
        }
    
        service_principal{
            client_id = "${var.arm_client_id}"
            client_secret = "${var.arm_client_secret}"
        }
        tags{
            Environment = "Development"
        }
    }
    
    #Outputs -Optional
    #output "kube_config" {
    #  value = "${azurerm_kubernetes_cluster.k8s.kube_config_raw}"
    #}
    
    #output "host" {
    #  value = "${azurerm_kubernetes_cluster.k8s.kube_config.0.host}"
    #}
    

    【讨论】:

      猜你喜欢
      • 2020-09-18
      • 1970-01-01
      • 2016-07-03
      • 2022-06-12
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 2020-10-30
      相关资源
      最近更新 更多