頻道欄目
首頁 > 資訊 > 云計算 > 正文

kubenetes源碼分析之DNS(一)

17-04-14        來源:[db:作者]  
收藏   我要投稿

kubernetes服務發現有兩個機制,一個是環境變量另一個則是域名解析,而提供域名解析的正是今天要說的主題kube-dns。這篇文章我先介紹一下dns的發展歷程接下來的blog會繼續進行源碼閱讀分享。我把發展定義了三個階段:

階段一

如果使用過kubernetes 1.2的應該都會知道dns的四件套:kube2sky、etcd、skydns和exechealthz。Kube2sky通過K8S API監視K8S Service資源的變化,并根據Service的信息生成DNS記錄寫入到etcd中。Skydns為集群中的Pod提供DNS查詢服務,DNS記錄從etcd中讀取。Exechealthz提供健康檢查功能。結構如下圖所示:

 

這里寫圖片描述

 

階段二

kubernetes 1.4以后把以前的四件套整成了三件套,最大的變化是去掉etcd,降低系統的復雜度,exechealth會檢查兩個容器的健康狀態;為集群提供DNS查詢服務的skydns變為了dnsmasq;Kubedns替代了kube2sky來監視Service和Endpoint的資源變化。

 

這里寫圖片描述

 

去除了etcd,那數據存儲在哪里呢?這個要看的kubedns的treeCache實現,是一個樹存儲結構,把:服務名稱.命名空間.域名(kubernetes.default.svc.cluster.local),反過來(顛倒順序local.cluster.svc.default.kubernetes)存儲,詳細的看后續代碼詳解。

階段三

最新的kubernetes是單獨建立的kubernetes子項目,最大的變化是把exechealth改為了sidecar,它是一個daemon進程負責監控dns并提供metric性能數據。和階段二沒有本質變化,就不畫結構圖了。

相關TAG標簽
上一篇:臺積電:絕大多數7nm客戶都會轉向6nm_IT新聞_博客園
下一篇:最后一頁
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片