Ubuntu 18.04的DNS問題(已解決)

Kubernetes出現Pod中沒法解析DNS的問題(Ubuntu 16.04),通過摸索,獲得瞭解決(參見:Kubernetes中的Pod沒法訪問外網-Ubuntu16.04 LTS )。但在升級到Ubuntu 18.04後,該問題再次出現,並且老辦法也不靈了!html

咋整?ubuntu

下面的幾個思路,都試了一遍:spa

  • /etc/resolv.conf,這是通常修改的文件,但此次改了之後,重啓系統後又被改回去了。系統提示該文件是由networkmanager建立的。
  • /etc/systemd/resolved.conf,是resolv服務的配置,改了之後重啓服務,好像沒啥變化。.net

  • /run/resolveconf/resolv.conf,有人說是/etc/resolv.conf的鏈接指向文件,但個人系統沒有。code

  • /etc/resolvconf/resolv.conf.d/head,這個目錄下有幾個聽說是resolv的配置文件,聽說用於更新/etc/resolv.conf文件,但與/etc/resolv.conf裏的數據不一樣。下面採用辦法編輯了這個文件,終於搞定了。server

  • Networkmanagerhtm

    • /etc/networkmanager/interfaces,之前版本都是該這裏頭的,沒有效果。blog

  • dnsmasq,雖然系統安裝了,可是配置都是空的,應該沒有做用。dns

  • netplan,這是Ubuntu 18.04的主流配置,但是裏面的/etc/netplan目錄是空的(不知道/etc/resolv.conf裏的內容從哪裏來的)。get

 

不知道哪個是真正起做用的了,實在不行的話,就只能蠻幹了。

Disable systemd-resolved:

https://www.feiqy.com/ubuntu-dns/

systemctl disable systemd-resolved

沒有效果,重啓系統也沒有效果。

 

須要注意的是:

  • Kubernetes目前的DNS會從宿主機/etc/resolv.conf複製到pod。
  • 所以,其它的設置方式即便在宿主機有效,但在kubernetes的pod中是無效的。

修改/etc/resolv.conf的指向:

#修改/etc/resolv.conf爲軟連接,從resolvconf配置文件來更新。
sudo mv /etc/resolv.conf /etc/resolv.conf.orig
sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

#修改/etc/resolvconf/resolv.conf.d/head或者base
sudo nano /etc/resolvconf/resolv.conf.d/head

#而後,應用一下。
sudo resolvconf -u

#再去看一下,應該已經變了。
cat /etc/resolv.conf

這個是能夠的!雖然笨了點。

相關文章
相關標籤/搜索