摘要:本機(jī)解析域名的優(yōu)先級(jí)為緩存服務(wù)。安裝我將本地服務(wù)安裝在了上,因?yàn)樵摐y(cè)試服務(wù)器的系統(tǒng)是,使用自帶的包管理器下載并安裝最簡(jiǎn)潔。設(shè)置路由器,將服務(wù)指向本地服務(wù)器
在開發(fā)、測(cè)試和正式環(huán)境中,我們總希望通過同一個(gè)域名找到對(duì)應(yīng)環(huán)境中的服務(wù)實(shí)例,簡(jiǎn)化配置流程,例如在測(cè)試環(huán)境中,讓api.changjinglu.net關(guān)聯(lián)到IP為192.168.1.34的測(cè)試服務(wù)器,而在正式環(huán)境中,讓api.changjinglu.net關(guān)聯(lián)到阿里云的正式服務(wù)器IP。
我們現(xiàn)在的解決方案是在本機(jī)的/etc/hosts文件中記錄相應(yīng)的域名IP映射關(guān)系,本機(jī)在嘗試解析一個(gè)域名時(shí),會(huì)先去/etc/hosts中查找該域名對(duì)應(yīng)的IP,并訪問相應(yīng)IP的服務(wù)器。只有當(dāng)/etc/hosts中沒有該域名的記錄時(shí),本機(jī)才會(huì)去DNS服務(wù)器進(jìn)行域名解析。本機(jī)解析域名的優(yōu)先級(jí)為DNS緩存 > /etc/hosts > DNS服務(wù)。
這個(gè)解決方案稍顯繁瑣,因?yàn)槊颗_(tái)機(jī)器都必須在自己的/etc/hosts文件中配置正確的域名IP映射關(guān)系,一旦映射關(guān)系發(fā)生改變,所有機(jī)器又必須全部做相應(yīng)的修改。一個(gè)更簡(jiǎn)潔的解決方案是構(gòu)建一個(gè)本地DNS服務(wù)器,讓路由器指向該本地DNS服務(wù)器,讓它統(tǒng)一管理所有通用的域名IP映射,如果個(gè)別開發(fā)者有自己的特別需要,可以利用域名解析的優(yōu)先級(jí)順序,通過修改自己本機(jī)的/etc/hosts覆蓋本地DNS服務(wù)的映射關(guān)系。使用這個(gè)新方案,當(dāng)局域網(wǎng)中新增某個(gè)服務(wù)或某個(gè)原有服務(wù)改變IP地址時(shí),只需要在本地DNS服務(wù)器上新增或修改映射配置,局域網(wǎng)中的所有機(jī)器無需做修改,就能享受到正確的映射關(guān)系了。
下面講一講如何通過Dnsmasq實(shí)現(xiàn)這個(gè)新方案。
1. 安裝Dnsmasq我將本地DNS服務(wù)安裝在了192.168.1.98上,因?yàn)樵摐y(cè)試服務(wù)器的系統(tǒng)是ubuntu,使用自帶的包管理器下載并安裝Dnsmasq最簡(jiǎn)潔。
sudo apt-get install dnsmasq2. 配置Dnsmasq
Dnsmasq所有的配置都在/etc/dnsmasq.conf文件中完成,按照需要簡(jiǎn)單做了以下修改。
#首先配置resolv-file,這個(gè)參數(shù)表示dnsmasq會(huì)從這個(gè)指定的文件中尋找上游DNS服務(wù)器 resolv-file=/etc/resolv.dnsmasq.conf #單設(shè)置127.0.0.1為只能本機(jī)使用,單設(shè)置本機(jī)IP為只能內(nèi)部全網(wǎng)使用而本機(jī)不能用,這里需要同時(shí)設(shè)置兩者 listen-address=127.0.0.1,192.168.1.98 #dnsmasq緩存設(shè)置 cache-size=1024
然后根據(jù)自己設(shè)置的resolv-file=/etc/resolv.dnsmasq.conf,配置/etc/resolv.dnsmasq.conf文件,指定上游DNS服務(wù)器
nameserver 114.114.114.1143. 坑
按以上配置配置好Dnsmasq并啟動(dòng)后,會(huì)發(fā)現(xiàn)Dnsmasq無法正常解析域名,使用ps -ef | grep dnsmasq查看后發(fā)現(xiàn)如下信息
dnsmasq 10384 1 0 15:16 ? 00:00:00 /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid -u dnsmasq -r /var/run/dnsmasq/resolv.conf -7 /etc/ dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,19036,8,2,49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
其中dnsmasq -r /var/run/dnsmasq/resolv.conf說明Dnsmasq是從/var/run/dnsmasq/resolv.conf文件中獲取上游DNS服務(wù)器,而非我們指定的resolv-file=/etc/resolv.dnsmasq.conf。
查閱了無數(shù)文檔以后,發(fā)現(xiàn)在/etc/default/dnsmasq中有一個(gè)IGNORE_RESOLVCONF屬性,說明如下
# If the resolvconf package is installed, dnsmasq will use its output # rather than the contents of /etc/resolv.conf to find upstream # nameservers. Uncommenting this line inhibits this behaviour. # Note that including a "resolv-file=" line in # /etc/dnsmasq.conf is not enough to override resolvconf if it is # installed: the line below must be uncommented. # IGNORE_RESOLVCONF=yes
這里必須取消IGNORE_RESOLVCONF=yes前的注釋,才能讓resolv-file=/etc/resolv.dnsmasq.conf生效。
4. 啟動(dòng)Dnsmasq大功告成,啟動(dòng)Dnsmasq。
sudo service dnsmasq start5. 設(shè)置路由器,將DNS服務(wù)指向本地DNS服務(wù)器
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/11858.html
摘要:基于的本地環(huán)境搭建與應(yīng)用部署歸納于分布式容器與編排,參考了一文,更多或者相關(guān)資料參閱。最后我們還可以用與命令來刪除應(yīng)用 showImg(https://segmentfault.com/img/remote/1460000006760432); 基于 Docker for MAC 的 Kubernetes 本地環(huán)境搭建與應(yīng)用部署歸納于分布式容器與編排,參考了 Docker + Kub...
摘要:基于的本地環(huán)境搭建與應(yīng)用部署歸納于分布式容器與編排,參考了一文,更多或者相關(guān)資料參閱。最后我們還可以用與命令來刪除應(yīng)用 showImg(https://segmentfault.com/img/remote/1460000006760432); 基于 Docker for MAC 的 Kubernetes 本地環(huán)境搭建與應(yīng)用部署歸納于分布式容器與編排,參考了 Docker + Kub...
摘要:通過監(jiān)視資源的變化,并根據(jù)的信息生成記錄寫入到中。是唯一保留的容器,依然提供健康檢查。操作會(huì)獲取最新的全量資源與本地狀態(tài)進(jìn)行比較來產(chǎn)生通知,可以避免網(wǎng)絡(luò)原因?qū)е碌膩G失通知的情況。最后一個(gè)參數(shù)用來設(shè)置處理事件的回調(diào)。 上一期我們以1.2版本為背景,介紹了K8S的服務(wù)發(fā)現(xiàn)和kube-dns插件的相關(guān)內(nèi)容。有了上一期內(nèi)容作為基礎(chǔ),這期了解最新版本的kube-dns就會(huì)容易很多。 本文主要對(duì)比...
摘要:創(chuàng)建用戶組并添加用戶。默認(rèn)情況下是過濾掉所有的入站規(guī)則。初始命令表示一旦容器啟動(dòng),需要運(yùn)行的命令,此時(shí)使用,表示什么也不做,只需進(jìn)入命令行即可。1.什么是docker docker翻譯為搬運(yùn)工,在這里應(yīng)該可以理解為搬運(yùn)應(yīng)用的工具,也就是云.先了解其運(yùn)用場(chǎng)景之后更容易對(duì)他形成深刻理解. Docker提供了一種可移植的配置標(biāo)準(zhǔn)化機(jī)制,允許你一致性地在不同的機(jī)器上運(yùn)行同一個(gè)Container;...
閱讀 2077·2019-08-30 15:52
閱讀 3062·2019-08-29 16:09
閱讀 1381·2019-08-28 18:30
閱讀 2518·2019-08-26 12:24
閱讀 1162·2019-08-26 12:12
閱讀 2324·2019-08-26 10:45
閱讀 629·2019-08-23 17:52
閱讀 966·2019-08-23 16:03