我正在尝试使用weave作为cni插件来引导k8s集群,该插件最初没有配置--pod-cidr和weave插件
root@kube1:/etc/systemd/system/kubelet.service.d# kubectl get no
NAME STATUS ROLES AGE VERSION
kube1 Ready master 31m v1.18.2
kube2 Ready <none> 30m v1.18.2
kube3 Ready <none> 31m v1.18.2
root@kube1:/etc/systemd/system/kubelet.service.d#
所以我已经使用以下命令进行了清理
kubectl drain kube2 --delete-local-data --force --ignore-daemonsets
kubectl drain kube3 --delete-local-data --force --ignore-daemonsets
kubectl drain kube1 --delete-local-data --force --ignore-daemonsets
kubectl delete no kube1 kube2 kube3
kubeadm reset
curl -L git.io/weave -o /usr/local/bin/weave
chmod a+x /usr/local/bin/weave
kubeadm reset
weave reset --force
rm /opt/cni/bin/weave-*
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
systemctl restart docker
我确保在所有3个节点上都删除了编织桥接口,并重新启动了集群
kubeadm init --apiserver-advertise-address=192.168.56.101 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.100.0.0/16
我确保将node-cidr分配给以下工作节点(pod-cidr-10.244.0.0./16)
root@kube1:/etc/systemd/system/kubelet.service.d# kubectl get no kube2 -o yaml|grep -i podCIDR|grep -i 24
podCIDR: 10.244.2.0/24
root@kube1:/etc/systemd/system/kubelet.service.d# kubectl get no kube3 -o yaml|grep -i podCIDR|grep -i 24
podCIDR: 10.244.1.0/24
创建编织窗格的后,我希望在10.244。*中看到编织桥接口ip,但它似乎是使用默认编织配置(10.32.0.1)创建的
root@kube2:/etc/kubernetes# ifconfig weave
weave: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1376
inet 10.32.0.1 netmask 255.240.0.0 broadcast 10.47.255.255
inet6 fe80::187b:63ff:fe5c:a2ae prefixlen 64 scopeid 0x20<link>
ether 1a:7b:63:5c:a2:ae txqueuelen 1000 (Ethernet)
有什么我想清理的东西吗?还是编织插件的默认行为?
答案 0 :(得分:2)
默认情况下,Weave Net使用其自己的IP分配器,可以通过环境变量IPALLOC_RANGE
对其进行配置。 Link to docs
如果您将每个节点上的CNI配置更改为使用不同的IPAM插件,例如"host-local" 您可能可以完全按照您的尝试去做。