Terraform可以在Azure AKS中创建内部负载均衡器

3
我通过以下Terraform语句在现有的虚拟网络中部署了一个Azure AKS集群。它成功了,AKS集群已经与Azure负载均衡器和分配给它的公共IP地址一起创建。但我需要设置仅具有内部Azure负载均衡器的集群。我该如何更改Terraform代码以仅获取内部Azure负载均衡器?谢谢。
resource "azurerm_kubernetes_cluster" "aks" {
  name                 = "${var.tags.department}-${var.tags.stage}-${var.tags.environment}_aks"
  location             = var.location
  resource_group_name  = azurerm_resource_group.aksrg.name
  dns_prefix           = lower("${var.tags.department}-${var.tags.stage}-${var.tags.environment}-aks")
  private_link_enabled = true
  node_resource_group  = "${var.tags.department}-${var.tags.stage}-${var.tags.environment}_aks_nodes_rg"

  linux_profile {
    admin_username = "testadmin"
    ssh_key {
      key_data = file("/ssh/id_rsa.pub") #ssh-keygen
    }
  }

  default_node_pool {
    name                  = "default"
    vm_size               = "Standard_DS1_v2"
    enable_auto_scaling   = false
    enable_node_public_ip = false
    node_count            = 1
    vnet_subnet_id        = azurerm_subnet.akssubnet.id
  }

  network_profile {
    network_plugin     = "azure"
    service_cidr       = "172.100.0.0/24"
    dns_service_ip     = "172.100.0.10"
    docker_bridge_cidr = "172.101.0.1/16"
    load_balancer_sku  = "standard"
  }

  service_principal {
    client_id     = azurerm_azuread_service_principal.aks_sp.application_id
    client_secret = azurerm_azuread_service_principal_password.aks_sp_pwd.value
  }
  addon_profile {
    kube_dashboard {
      enabled = true
    }
  }
  role_based_access_control {
    enabled = false
  }
}

为什么你想要使用Azure创建负载均衡器,而不是Kubernetes? - 4c74356b41
在第一步中,我希望通过Terraform部署没有公共面向Azure资源。但是,在Terraform部署后(azurerm v.1.41),我得到了一个具有公共IP的Azure负载均衡器。 - Christian Schroeder
还有更多问题吗?这个解决方案是否解决了您的问题?如果是,请接受它。如果您没有给出任何响应,那么如何解决问题呢?或者您只是想得到答案却什么都不做? - Charles Xu
3个回答

3

针对您的问题,您可以看到您设置了 AKS 集群的 network_profile 如下:

network_profile {

    network_plugin = "azure"

    service_cidr = "172.100.0.0/24"

    dns_service_ip = "172.100.0.10"

    docker_bridge_cidr = "172.101.0.1/16"

    load_balancer_sku = "standard"

  }

当你设置属性load_balancer_sku时,它将为您创建一个standard类型的负载均衡器。而这个属性只能使用值basicstandard。因此似乎不可能创建没有负载均衡器的AKS集群。您可以在Github上查看问题。正如它所说,最新的CLI也无法帮助您实现这一点。
如果您对此问题有更多疑问,请告诉我。如果我能帮助您解决问题,我会很高兴的。

2

有什么更改可以防止TF创建公共接口? - lordisp

1

这个公共IP用于出站连接。如果要禁止创建此IP,您需要指定参数outbound_type =“userDefinedRouting”,并提供附加路由表的网络。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接