【问题标题】:terraform azurerm_kubernetes_cluster nodesterraform azurerm_kubernetes_cluster 节点
【发布时间】:2018-10-02 12:26:25
【问题描述】:

我绑定了不同的方法来获取 terraform 中 azurerm_kubernetes_cluster 的 vm 列表,但没有成功。这里有许多可能的元素:https://www.terraform.io/docs/providers/azurerm/d/kubernetes_cluster.html,但其中没有允许获取 VM 列表的接缝。有办法吗?

【问题讨论】:

    标签: azure-aks terraform-provider-azure


    【解决方案1】:

    好的,我通过子网找到了方法。要使用这种方法,您需要使用您知道的子网使用高级网络创建 Kubernetes 集群。

    第一部分从子网获取 ip_configurations 并提取具有丑陋拆分的网络接口名称。

    data "null_data_source" "all_kubernetes_nic_name" {
      count = "${length(azurerm_subnet.kubernetes.ip_configurations)}"
      inputs {
        nic = "${element(split("/", azurerm_subnet.kubernetes.ip_configurations[count.index]), 8)}"
      }
    }
    

    由于每个 kubernetes 节点都获取了我需要在上一个列表中区分的 IP 地址数量。

    data "null_data_source" "kubernetes_nic_name" {
      count = "${length(distinct(data.null_data_source.all_kubernetes_nic_name.*.outputs.nic))}"
      inputs {
        nic = "${element(distinct(data.null_data_source.all_kubernetes_nic_name.*.outputs.nic), count.index)}"
      }
    }
    

    那么就很容易得到kubernetes集群中每个节点的网络接口的准确引用。注意resource_group_name 直接从集群对象中提取。

    data "azurerm_network_interface" "kubernetes_nic" {
      count = "${length(data.null_data_source.kubernetes_nic_name.*.outputs.nic)}"
      name = "${data.null_data_source.kubernetes_nic_name.*.outputs.nic[count.index]}"
      resource_group_name = "${azurerm_kubernetes_cluster.cluster.node_resource_group}"
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-16
      • 2019-03-03
      • 2019-08-23
      • 2021-10-12
      • 2020-08-19
      • 2019-05-05
      • 2020-12-03
      • 2021-03-16
      • 2020-03-19
      相关资源
      最近更新 更多