2017-04-04 98 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