我使用“kubeadm”部署了一个单节点kubernetes集群。这部署了Kubernetes 1.6。根据说明(https://kubernetes.io/docs/getting-started-guides/kubeadm/),我需要安装用于Pod网络的网络层。

我决定尝试一下“编织”,因为根据文档(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

然后,我使用提供的yaml文件部署了kube-dashboard:
kubectl create -f https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml

一切顺利,但是pod从172.17.0.0范围分配了一个IP。这是在docker配置文件中定义的范围,而不是“weave”使用的范围。

这对我来说似乎不对。它不应该在编织范围内获得IP吗?

我一直在研究整个cni内容,但是阅读的越多,我就对所有不同组件(docker,weave,kubernetes,cni)应该如何协同工作感到困惑。

最佳答案

应该发生的是,应该在Kubernetes上安装kubelet --network-plugin=cni的标志,然后kubelet将在/etc/cni/net.d中查找CNI配置文件,并使用该文件中的网络配置来查找要调用的CNI插件(可执行文件)。

通过kubectl apply -f https://git.io/weave-kube安装Weave Net将创建此配置文件(/etc/cni/net.d/10-weave.conf),然后在此之后,Pod应该获得一个Weave IP分配范围内的地址(默认为10.32.0.0/12)

既然您看到的是带有Docker地址的Pod,是否可能--network-plugin=cni标志丢失了?

关于kubernetes - kubeadm和weave无法一起工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43201643/

10-11 06:37