混合雲情境下,如果需要使用內網的鏡像倉庫來拉取鏡像,或者容器需要訪問內網中的網域名稱,則需要配置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值。以下為一些常見選項:
|
配置樣本如下:
請根據自身業務需求為Pod配置dnsPolicy
,建議配置dnsPolicy
為Default
,表示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概述。