在Kubernetes中,為應用配置Pod的DNS策略可以控制Pod如何訪問DNS服務,以及如何處理DNS解析,確保Pod能夠找到其他服務并與服務通信。本文介紹在創建應用時,如何為應用設置Pod的DNS策略、DNS配置和域名別名。
操作步驟
登錄EDAS控制臺,在左側導航欄,單擊 ,在頂部菜單欄選擇地域并在頁面上方選擇所屬微服務空間,然后在應用列表頁面左上角,單擊創建應用。
在應用基本信息頁簽,完成相關配置后,單擊下一步。
在應用配置頁簽,設置應用的環境信息、基本信息、部署方式和資源參數,設置完成后單擊下一步。
在應用高級設置頁簽展開DNS配置,并根據您的業務需求配置DNS,然后在頁面最下方單擊下一步。
配置項
描述
DNS策略(dnsPolicy)
目前支持通過DNS策略(dnsPolicy)字段為每個Pod配置不同的DNS策略。
ClusterFirst:通過CoreDNS做域名解析,Pod內/etc/resolv.conf配置的DNS服務地址是集群DNS服務的kube-dns地址。該策略是集群工作負載的默認策略。
ClusterFirstWithHostNet:結合hostNetwork網絡模式使用,使Pod既能解析Kubernetes內部服務的域名,也能解析外部域名。
Default:Pod直接繼承集群節點的域名解析配置。即在集群中直接使用ECS的/etc/resolv.conf文件(文件內配置的是阿里云DNS服務)。
None:忽略集群DNS策略,需要您提供DNS配置(dnsConfig)字段來指定DNS配置信息。
DNS配置(dnsConfig)
DNS配置(dnsConfig)中的參數說明如下:
nameserver:將用作Pod的DNS服務器的IP地址列表。最多可以指定3個IP地址。
說明當Pod的DNS策略(dnsPolicy)設置為None時,列表必須至少包含一個IP地址,否則此屬性是可選的。列出的DNS的IP列表將合并到基于DNS策略(dnsPolicy)生成的域名解析文件的nameserver字段中,并刪除重復的地址。
searches:Pod中主機名查找的DNS搜索域列表。此屬性是可選的,指定后,提供的列表將合并到從所選DNS策略(dnsPolicy)生成的基本搜索域名中,并刪除重復的域名。Kubernetes最多允許6個搜索域。
options:可選的對象列表,其中每個對象可以具有名稱屬性(必需)和變量值屬性(可選)。此屬性中的內容將合并到從指定的DNS策略(dnsPolicy)生成的選項中,并刪除重復的條目。
域名別名(hostAliases)
通過hostAliases允許為Pod中的hosts文件增加本地域名解析條目。
IP地址:主機列表被解析到的目標IP地址。
主機名:將指定的主機解析到IP地址,多個主機名通過英文半角逗號(,)分隔。
完成設置后單擊創建應用。
完成設置后單擊創建應用,然后在應用創建完成頁簽,單擊確定創建應用。
在應用變更預檢確認對話框,單擊開始預檢。
在應用變更預檢確認的下一頁,確認預檢項和預檢結果,單擊繼續。
可選:如您有更改以上預檢項,請單擊重新檢測。
應用創建可能需要幾分鐘,創建過程中,可以通過查看變更記錄跟蹤應用的創建流程。創建完成后,返回應用總覽頁面,查看實例Pod的運行狀態。若運行狀態為運行中,說明應用發布成功。單擊Pod的運行狀態可以查看應用實例的工作負載(Deployment)、容器組(Pod)和高級配置信息。
驗證結果
在應用總覽頁面,在基本信息區域,單擊運行狀態右側的點擊查看。
在容器組(Pod)區域,選擇需要驗證的Pod,單擊操作列的終端。
在終端頁面,執行以下命令,查看DNS設置是否已被寫入到
/etc/resolv.conf
文件中。cat /etc/resolv.conf
相關文檔
關于創建或部署應用過程中的其他配置項,請參見使用默認應用來源創建K8s應用。
如需了解Kubernetes為Service和Pod創建的DNS記錄,請參見Service與Pod的DNS。