terraform azurerm_kubernetes_cluster 个节点
terraform azurerm_kubernetes_cluster nodes
我结合了不同的方法来获取 terraform 中 azurerm_kubernetes_cluster 的虚拟机列表,但没有成功。这里有许多可能的元素:https://www.terraform.io/docs/providers/azurerm/d/kubernetes_cluster.html 但没有接缝以允许获取 VM 列表。有办法吗?
好的,我找到了通过子网的方式。要使用这种方法,您需要使用您知道的子网使用高级网络创建 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}"
}
我结合了不同的方法来获取 terraform 中 azurerm_kubernetes_cluster 的虚拟机列表,但没有成功。这里有许多可能的元素:https://www.terraform.io/docs/providers/azurerm/d/kubernetes_cluster.html 但没有接缝以允许获取 VM 列表。有办法吗?
好的,我找到了通过子网的方式。要使用这种方法,您需要使用您知道的子网使用高级网络创建 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}"
}