[Docker二]DNS

nintyuui發表於2021-09-09

DNS

圖片描述

image

DNS的重要性

  • 幾乎所有應用都要使用DNS服務,她的重要性不言而喻,DNS的故障經常會導致網路中依賴她的應用的連鎖反應,我就曾遇到過k8s叢集的coreDNS不斷重啟,原因就是連線不到上層的DNS,因此建立一個穩定的內部DNS致關重要。

兩種實現

  • 傳統的DNS應用是bind,穩定而高效

  • 新生的DNS應用叫dnsmasq,kubernetes也是使用它,簡單易配,包含dhcp服務,但從使用中發現,經常觸發查詢上限而拒絕服務,調高上限也解決不了問題

三種執行方法

  • 下面給出了兩種DNS使用docker執行的三種方法:


1.  dnsmasq使用docker run啟動


docker run   --name dnsmasq -d 
-p 53:53/udp   -p 8080:8080 
-v /opt/dnsmasq.conf:/etc/dnsmasq.conf 
-e TZ='Asia/Shanghai' 
-e "HTTP_USER=admin"  -e "HTTP_PASS=admin" 
--restart always   jpillora/dnsmasq
注:dnsmasq.conf參考

2.  bind 使用compose


mkdir cmp_bind; cd cmp_bind; 
cat  >docker-compose.yml
<<EOFbind:
image: sameersbn/bindvolumes:
- /opt/bind:/data
- /opt/bind/entrypoint.sh:/sbin/entrypoint.sh
ports:
- "53:53/udp"environment:
- WEBMIN_ENABLED=falserestart: always
EOF
docker-compose up -d
注: 程式碼中的opt/bind目錄可以從下載,也可以先執行一個不帶-v引數的容器,

3. bind使用docker run啟動


docker run --name bind -d 
-p 53:53/udp 
-e WEBMIN_ENABLED=false 
-v /opt/bind:/data 
-v /opt/bind/entrypoint.sh:/sbin/entrypoint.sh 
sameersbn/bind:latest

注:

  • 程式碼中的-v引數掛載的卷,都可以先執行一個不帶-v引數的容器,從裡面CP出來,這樣做的好處是方便儲存和修改。

  • 如果配置主從DNS,注意增加-p 53:53/tcp,來同步資料。



作者:LinuxMan_yang
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3209/viewspace-2820818/,如需轉載,請註明出處,否則將追究法律責任。

相關文章