2016-01-12 62 views
1

我對丟失DNS有什麼瞭解。我跟着在這裏列出的說明: https://github.com/kubernetes/kubernetes/tree/v1.2.0-alpha.5/cluster/addons/dnskubernetes.default未通過DNS解析

當我的測試莢似乎工作的DNS吊艙的節點上運行,但是當我的測試吊艙,沒有它不與DNS莢節點上運行。這使我相信某些東西沒有正確配置,但我不確定是什麼。

我有一個主節點和兩個使用Kubernetes運行CentOS的minion節點:1.2.0-alpha.5。 DNS在minion-2上運行。我正在使用的測試窗格是上面鏈接中概述的示例。

如果測試吊艙運行在僕從-1(節點WITHOUT DNS)然後DNS產量測試:

$ kubectl exec busybox -- nslookup kubernetes.default 
Server: 10.0.0.10 
Address 1: 10.0.0.10 

nslookup: can't resolve 'kubernetes.default' 
error: error executing remote command: Error executing command in container: Error executing in Docker Container: 1 

測試吊艙的resolv.conf是:

search default.svc.cluster.local svc.cluster.local cluster.local 
nameserver 10.0.0.10 
options ndots:5 

服務羣集IP範圍:10.0.0.0/24 法蘭絨網絡配置:18.16.0.0/16

我已經查看了Kuberentes回購和大多數文檔中的大多數DNS問題與DNS有關,但我仍然處於虧損狀態。如果任何人都可以提供任何見解或其他文檔來查看調試此問題,將不勝感激。

UPDATE 好吧看來這個問題可能是由於我沒有正確安裝法蘭絨。我已經重新啓動的設置和驗證絨布以下這裏列出的說明:我得到https://github.com/kubernetes/kubernetes/blob/v1.2.0-alpha.5/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md

從奴才-1:

$ ip -4 a|grep inet 
inet 127.0.0.1/8 scope host lo 
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 
inet 172.28.128.9/24 brd 172.28.128.255 scope global enp0s8 
inet 18.16.45.0/16 scope global flannel0 
inet 18.16.45.1/24 scope global docker0 

從奴才-2我得到:

$ ip -4 a|grep inet 
inet 127.0.0.1/8 scope host lo 
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 
inet 172.28.128.9/24 brd 172.28.128.255 scope global enp0s8 
inet 18.16.45.0/16 scope global flannel0 
inet 18.16.45.1/24 scope global docker0 

這似乎與迄今爲止記錄的內容相匹配。但是,對於下一步,我沒有爲每個節點獲取一個塊。我只看到一個塊:

$ curl -s http://172.28.128.8:4001/v2/keys/coreos.com/network/subnets | python -mjson.tool 
    { 
     "action": "get", 
     "node": { 
      "createdIndex": 15, 
      "dir": true, 
      "key": "/coreos.com/network/subnets", 
      "modifiedIndex": 15, 
      "nodes": [ 
       { 
        "createdIndex": 18, 
        "expiration": "2016-01-13T19:59:09.489854201Z", 
        "key": "/coreos.com/network/subnets/18.16.45.0-24", 
        "modifiedIndex": 18, 
        "ttl": 86272, 
        "value": "{\"PublicIP\":\"10.0.2.15\"}" 
       } 
      ] 
     } 
    } 

所有subnet.env文件似乎匹配 從奴才-1:

$ cat /run/flannel/subnet.env 
    FLANNEL_NETWORK=18.16.0.0/16 
    FLANNEL_SUBNET=18.16.45.1/24 
    FLANNEL_MTU=1472 
    FLANNEL_IPMASQ=true 

從奴才-2:

$ cat /run/flannel/subnet.env 
    FLANNEL_NETWORK=18.16.0.0/16 
    FLANNEL_SUBNET=18.16.45.1/24 
    FLANNEL_MTU=1472 
    FLANNEL_IPMASQ=true 

如果我繼續進行下一步驗證跨宿主容器通信的方法,最終使用具有相同IP地址的minion-1和minion-2上的容器。這顯然是不正確的。

[[email protected] /]# ip -4 a l eth0 | grep inet 
    inet 18.16.45.2/24 scope global eth0 

[[email protected] /]# ip -4 a l eth0 | grep inet 
    inet 18.16.45.2/24 scope global eth0 

法蘭絨服務正在啓動以下參數如果這能幫助任何:

flanneld --ip-masq -etcd-endpoints=http://172.28.128.8:4001 -etcd-prefix=/coreos.com/network 

回答

0

問題是由於我沒有明確說明哪些網絡接口絨布應該使用主機間的通信。它似乎默認它找到的第一個界面,但這不是我的設置使用的正確界面。所以要解決這個問題,我只能告訴法蘭絨明確哪個接口用於--iface命令行選項。