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