首页 > 解决方案 > aks nodepool 通过 terraform 既不增加也不减少

问题描述

在创建时,它会创建指定的所需节点计数,但是当节点池的节点计数或最小计数值发生更改时,不会反映更改。

resource "azurerm_kubernetes_cluster" "aks" {
  name                = var.cluster-name
  location            = var.cluster-region
  resource_group_name = var.rg
  dns_prefix          = var.cluster-dns_prefix

  tags = {
    Environment = var.cluster-tag
  }

  default_node_pool {
    name                = var.prod-node-name
    type                = "VirtualMachineScaleSets"
    enable_auto_scaling = "true"
    //node_count          = var.prod-node-count
    max_count           = var.prod-max-count
    min_count           = var.prod-min-count
    vm_size             = var.prod-vm-size
    vnet_subnet_id      = azurerm_subnet.aks-stage-sub.id
    node_labels         = { "node_pool" = "prod" }
  }
  service_principal {
    client_id     = var.client_id
    client_secret = var.client_secret
  }
}

resource "azurerm_kubernetes_cluster_node_pool" "dev" {
  name                  = "dev"
  kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
  vm_size               = var.dev-vm-size
  enable_auto_scaling   = "true"
  mode          = "User"
  node_count        = 2
  max_count             = 5
  min_count             = 1
  vnet_subnet_id        = azurerm_subnet.aks-stage-sub.id
  node_labels           = { "node_pool" = "dev" }

  tags = {
    Environment = var.dev-tag
  }
}

output "kube_config" {
  value = azurerm_kubernetes_cluster.aks.kube_config_raw
}

注意:在第一次创建资源时,它在 dev nodepool 中创建了 2 个节点,但后来将 dev nodepool 的节点数增加到 3。应用了 terraform 并 kubectl get nodes 它在 dev nodepool 中只显示了 2 个节点。我尝试了很多次,但节点数没有反映出来。

先感谢您。

标签: kubernetesterraformnodesautoscalingazure-aks

解决方案


文档中说这node_count是该节点池中应该存在的初始节点数。我认为由于enable_auto_scaling设置为 true,node_count只会影响创建时的节点数,然后自动缩放配置将用于定义正确的节点数。如果您希望在创建节点池后能够更改节点数,也许您应该停用自动缩放或更改自动缩放配置


推荐阅读