kubeadm 和 weave 不能一起工作
kubeadm and weave not working together
我使用 "kubeadm" 部署了一个单节点 kubernetes 集群。这部署了 Kubernetes 1.6。根据说明(https://kubernetes.io/docs/getting-started-guides/kubeadm/)我需要为pod联网安装一个网络层
我决定尝试 "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
然后我使用提供的 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".
使用的范围
我觉得这不对。它不应该在 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
),然后 pods 应该在 Weave IP 分配范围内获得一个地址(默认为 10.32 .0.0/12)
既然您看到的是一个地址为 Docker 的 pod,是否有可能 --network-plugin=cni
标志丢失了?
我使用 "kubeadm" 部署了一个单节点 kubernetes 集群。这部署了 Kubernetes 1.6。根据说明(https://kubernetes.io/docs/getting-started-guides/kubeadm/)我需要为pod联网安装一个网络层
我决定尝试 "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
然后我使用提供的 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".
使用的范围我觉得这不对。它不应该在 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
),然后 pods 应该在 Weave IP 分配范围内获得一个地址(默认为 10.32 .0.0/12)
既然您看到的是一个地址为 Docker 的 pod,是否有可能 --network-plugin=cni
标志丢失了?