全部產品
Search
文件中心

Container Service for Kubernetes:配置混合雲節點池DNS解析

更新時間:Sep 26, 2025

混合雲節點池如通過雲上CoreDNS解析網域名稱,頻繁的訪問會加重專線負載,還可能出現因專線不穩定導致的網域名稱解析失敗,配置NodeLocal DNSCache可減少這些問題的影響。

工作原理

NodeLocal DNSCache在每個節點上運行DNS緩衝代理。節點上Pod的DNS請求會優先由本機快取處理,僅在緩衝未命中時,才會通過專線回源到雲端的CoreDNS服務。這種架構帶來了兩個優勢:

  • 絕大多數DNS查詢在本地完成,減少了專線的流量負載。

  • 專線網路異常時,已緩衝的網域名稱解析不受影響。

重要
  • NodeLocal DNSCache首次解析某個網域名稱需要回源到CoreDNS Server,如果此時遇到專線網路異常,會導致網域名稱解析失敗。

  • 專線網路異常時,快取資料無法即時更新。

適用範圍

  • 已建立ACK託管叢集Pro版,且滿足以下條件:

    • ACK託管叢集Pro版所在的VPC,已打通跨雲網路

    • ACK託管叢集Pro版版本為1.33及以上。

  • 使用混合雲節點池時,同時保有ECS節點,用於部署部分ACK管控組件(建議使用3個及以上ECS節點以保證高可用)。

  • 已安裝Terway Hybrid網路外掛程式

操作步驟

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理

  3. 網路頁簽中找到ACK NodeLocal DNSCache卡片,單擊安裝,在彈出的對話方塊中單擊確認

  4. 在左側導覽列選擇組態管理 > 配置項,然後在上方命名空間中選擇kube-system

  5. 編輯名為node-local-dns的ConfigMap,在其中添加prefetch 10serve_stale配置,為組件開啟預熱、取和服務保持的能力:

    升級NodeLocal DNSCache組件後,這些配置項將被覆蓋,請重新設定。
    apiVersion: v1
    data:
      Corefile: |
        .:53 {
            errors
            cache {
              ...
              prefetch 1 30s 10% # 預取
              serve_stale 1h immediate # 服務保持
            }
    
            ...
        }
    kind: ConfigMap
    metadata:
    ...
    • prefetch 1 30s 10%:緩衝的預取配置。當一個網域名稱在30秒內被請求超過1次時,在其條目緩衝到期前的最後10%時間內,自動在後台更新該條目。

    • serve_stale 1h immediate:配置緩衝到期後的服務保持策略。緩衝到期1小時內仍可以使用到期的緩衝提供網域名稱解析;到期緩衝重新整理策略為immediate,表示命中到期緩衝時,會立即向用戶端返回到期條目,然後再向上遊DNS伺服器請求最新的條目。