[英]Azure Kubernetes Service, AKS with terraform, private dns link
我正在部署具有中心辐射型网络拓扑的专用 AKS 群集。 我还想用 terraform 代码指定“private_dns_link”。 我想将 AKS 子网链接到我的集线器网络。
我将此资源添加到 my.tf 文件中。
resource "azurerm_private_dns_zone_virtual_network_link" "link_to_hub_vnet" {
name = "link_to_hub_vnet"
private_dns_zone_name = join(".", slice(split(".",
azurerm_kubernetes_cluster.dev.private_fqdn), 1, length(split(".",
azurerm_kubernetes_cluster.dev.private_fqdn))))
resource_group_name = azurerm_resource_group.k8srg.name
virtual_network_id = azurerm_virtual_network.hubVnetAddress.id
depends_on = [azurerm_kubernetes_cluster.dev]
}
但是什么时候“terraform apply”它给了我下面的错误。
错误:创建/更新虚拟网络链接“link_to_hub_vnet”(私有 DNS 区域“5ed135c0-266f-4350-b537-872c095f3696.privatelink.northeurope.azmk8s.io”/资源组“k8srg”):privatedns.VirtualNetworksClient请求:StatusCode = 0 - 原始错误:代码 =“ParentResourceNotFound”消息 =“无法对嵌套资源执行请求的操作。未找到父资源 '5ed135c0-266f-4350-b537-872c095f3696.privatelink.northeurope.azmk8s.io' 。”
据我了解,它找不到 dns 名称,但是当我检查 Azure 门户中的私有 dns 区域时,我看到它在那里。
有人可能体验过吗?
如果您通读 for hub andspoke model,它会说
默认情况下,配置私有集群时,会在集群管理的资源组中创建一个私有端点 (1) 和一个私有 DNS 区域 (2)。 集群使用私有区域中的 A 记录来解析私有端点的 IP 以与 API 服务器通信。
https://docs.microsoft.com/en-us/azure/aks/private-clusters#hub-and-spoke-with-custom-dns
所以我怀疑你是否可以将外部私有 dns 链接到集群
但是,如果您希望将集群私有 dns 链接到 vnet,那么您可以创建一个 null_resource 并调用下面链接中的 shell 脚本。
resource "null_resource" "dns_zone_link" {
provisionor "local-exec" {
interpreter = ["bash"]
command = "./dns-zone-link.sh"
environment {
VNET = ""
}
}
}
https://github.com/Azure/terraform/blob/master/quickstart/301-aks-private-cluster/dns-zone-link.sh
问题是“resource_group_name = azurerm_resource_group.k8srg.name”
在 azure 中部署 AKS 群集时,它会为 NODE_POOL 及其其他服务创建单独的资源组。 所以“私人区域”也在那个单独的组中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.