簡體   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