全部產品
Search
文件中心

Container Service for Kubernetes:DNS概述

更新時間:Jan 18, 2025

DNS為Kubernetes叢集內的工作負載提供網域名稱解析服務,CoreDNS是Kubernetes叢集中預設內建的DNS伺服器,用於提供動態服務發現和網域名稱解析的能力,使得叢集內部的服務可以通過服務名相互訪問,無需知道具體的IP地址。本文主要介紹CoreDNS網域名稱解析原理和ACK Edge叢集中的CoreDNS。

CoreDNS網域名稱解析原理

序號

描述

業務Pod(Pod Client)試圖訪問Nginx服務(Service Nginx)時,先會請求本地DNS設定檔(/etc/resolv.conf)中指向的DNS伺服器(nameserver 172.21.0.10,即Service kube-dns)擷取服務IP地址,得到解析結果為172.21.0.30的IP地址。

業務Pod(Pod Client)再直接發起往該IP地址的請求,請求最終經過Nginx服務(Service Nginx)轉寄到達後端的Nginx容器(Pod Nginx-1和Pod Nginx-2)上。

ACK Edge叢集中的CoreDNS

ACK Edge叢集將多地區、多網路域的計算裝置納入一個Kubernetes叢集進行統一管理,由於邊緣裝置分散,CoreDNS採用DaemonSet的方式運行在每個邊緣節點上。

當用戶端Pod訪問網域名稱時,它會先向本地的CoreDNS請求解析網域名稱,並使用解析得到的地址串連到目標服務或目標Pod。

關於CoreDNS的詳細配置,請參見如下ACK相關文檔:

說明

ACK Edge叢集中暫不支援NodeLocal DNSCache 以及ExternalDNS服務。

文檔

是否適用

說明

DNS策略配置和網域名稱解析說明

適用

DNS解析及緩衝策略說明

適用

CoreDNS配置說明

部分適用

ACK Edge叢集佔用了預設域的Hosts配置,如需自訂CoreDNS配置,請參見CoreDNS自訂配置

CoreDNS自動升級

適用

分析和監控CoreDNS日誌

適用

DNS最佳實務

部分適用

  • 採用DaemonSet方式部署,無法修改部署狀態。

  • 監控指標需要開啟Raven隧道模式。