繁体   English   中英

Azure Kubernetes 服务,AKS 与 terraform,私有 ZB3BF60B851EBAEF2768B01A2F2 链接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM