2017-04-04 130 views
0

我部署了一個帶有「kubeadm」的單節點kubernetes集羣。這部署了Kubernetes 1.6。根據說明(https://kubernetes.io/docs/getting-started-guides/kubeadm/),我需要爲pod網絡安裝一個網絡層。kubeadm和weave不能一起工作

我決定給「編織」一試,因爲這很容易根據使用一個簡單的一行文檔(https://www.weave.works/weave-net-kubernetes-integration/)安裝:

kubectl apply -f https://git.io/weave-kube 

當我檢查機器,我看到有現在是一個編織適配器:

weave: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1376 
     inet 10.32.0.1 netmask 255.240.0.0 broadcast 0.0.0.0 
     inet6 fe80::bca7:f5ff:fefb:c7a2 prefixlen 64 scopeid 0x20<link> 
     ether be:a7:f5:fb:c7:a2 txqueuelen 1000 (Ethernet) 
     RX packets 12 bytes 780 (780.0 B) 
     RX errors 0 dropped 0 overruns 0 frame 0 
     TX packets 9 bytes 690 (690.0 B) 
     TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 

我再部署KUBE-儀表盤所提供的YAML文件:

kubectl create -f https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml 

這樣做很好,但是pod的IP地址是172.17.0.0。這是docker配置文件中定義的範圍,而不是「weave」所使用的範圍。

這看起來並不適合我。它不應該在織造範圍內獲得IP嗎?

我一直在研究整個cni的內容,但是我越讀越多,我對所有不同的組件(docker,weave,kubernetes,cni)如何一起工作感到困惑。

回答

2

應該發生的是Kubernetes應該用標誌安裝到kubelet --network-plugin=cni,然後kubelet將尋找一個CNI配置文件中/etc/cni/net.d,並且使用網絡配置在該文件中找一個CNI插件(可執行)來電。

通過kubectl apply -f https://git.io/weave-kube安裝織網應該創建這個配置文件(/etc/cni/net.d/10-weave.conf),然後將該吊艙後應該得到的編織IP分配範圍內的地址(默認10.32.0.0/12)

既然你看到一個帶有Docker地址的吊艙,是否有可能--network-plugin=cni標誌失蹤?

+0

似乎我受到了這個bug的影響:https://github.com/kubernetes/kubernetes/issues/43815 –

+0

啊哈 - 請注意Kubernetes 1.6.1現在已經出來,它應該解決這個問題 – Bryan