全部產品
Search
文件中心

Elastic Container Instance:為ECI Pod配置自訂DNS

更新時間:Jul 06, 2024

混合雲情境下,如果需要使用內網的鏡像倉庫來拉取鏡像,或者容器需要訪問內網中的網域名稱,則需要配置ECI Pod使用的DNS為使用者內網DNS,以便解析內網網域名稱。本文介紹如何為ECI Pod配置自訂DNS。

背景資訊

混合雲情境下,例如Kubernetes叢集包含本地節點,鏡像倉庫在本地的情況下,如果使用叢集的DNS,可能會因為無法解析內網網域名稱而導致Pod無法訪問本地的內網環境。因此,ECI支援了配置自訂DNS功能,您可以為ECI Pod配置自訂DNS來解析內網網域名稱,滿足訪問本地內網的需求。

配置說明

您可以在Pod metadata中添加k8s.aliyun.com/eci-custom-dnsconfig的Annotation來指定ECI Pod使用自訂DNS。該Annotation的取值格式為{\"nameservers\":\"20.1.xx.xx,20.1.xx.xx\",\"searches\":\"xx.com,xx.eee\",\"options\":\"ndots:2,edns0\"}。各欄位說明如下:

欄位

說明

nameservers

DNS伺服器的IP地址清單。僅支援填入2個IP地址,多餘的會自動忽略。

同時,系統會在最後自動追加阿里雲DNS伺服器的IP地址,以保證系統服務正常。

searches

DNS搜尋域列表。最多允許32個。

進行網域名稱解析時,如果輸入的網域名稱不完整,系統會自動嘗試使用該列表中的網域名稱尾碼來補全並進行解析。

options

DNS解析選項。可包含多個KV值。以下為一些常見選項:

  • ndots:設定DNS在主機名稱中必須至少包含多少個點號(.)才會將其視為絕對網域名稱,否則會嘗試在搜尋域中進行解析。

  • edns0:開啟EDNS0擴充支援,以支援更大的UDP資料包大小和提高安全性。

  • timeout:設定DNS查詢逾時時間。

  • attempts:設定DNS查詢嘗試次數。

配置樣本如下:

說明

請根據自身業務需求為Pod配置dnsPolicy,建議配置dnsPolicyDefault,表示Pod繼承所在節點的DNS配置。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/eci-custom-dnsconfig: "{\"nameservers\":\"20.1.xx.xx,20.1.xx.xx\",\"searches\":\"xx.com,xx.eee\",\"options\":\"ndots:2,edns0\"}"
    spec:
      dnsPolicy: Default  
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80

相關文檔

如需瞭解更多關於DNS配置的資訊,請參見DNS概述