服務探索和 DNS 總覽

本主題說明 Azure 上的 GKE 如何與網域名稱服務 (DNS) 互動。

服務探索

服務探索是指工作負載在不知道服務 IP 位址的情況下,探索服務的程序。本節說明 GKE on Azure 如何實作服務探索和受管理 DNS。

Kubernetes 會自動產生服務名稱,並使用下列規格

service.namespace.svc.cluster.local

其中:

  • service:服務名稱
  • namespace:服務的命名空間

工作負載也會使用 DNS 名稱存取外部服務,例如 example.net。如要進一步瞭解 Kubernetes 中的 DNS 行為,請參閱「服務和 Pod 的 DNS」。

CoreDNS

Azure 上的 GKE 會使用 CoreDNS 解析叢集內的 DNS 名稱。CoreDNS 會以冗餘的調整式部署形式,在 kube-system 命名空間中執行。CoreDNS 部署作業會建立 Service,將 CoreDNS Pod 分組,並為這些 Pod 指派單一 IP 位址。CoreDNS 部署會根據叢集大小和用量進行擴充。

NodeLocal DNSCache

Azure 上的 GKE 會使用 NodeLocal DNSCache 提升 DNS 查詢效能。NodeLocal DNSCache 會在叢集的每個節點上以 DaemonSet 形式執行。當 Pod 發出 DNS 要求時,要求會先傳送至同一節點上的 DNS 快取。如果快取無法解析 DNS 要求,就會將要求轉送至下列其中一個位置:

  • 內部名稱的 CoreDNS,例如 foo.bar.svc.cluster.local

後續步驟