【问题标题】:weave cni is not assigning ip address to weave bridge with in the node cidr in k8sweave cni 没有在 k8s 的节点 cidr 中为 weave 网桥分配 IP 地址
【发布时间】:2020-09-09 05:22:46
【问题描述】:

我正在尝试使用 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 个节点上删除了 weave 桥接接口并重新启动了集群

  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

在我创建了 weave pod 之后,我希望在 10.244.* 中看到 weave 桥接口 ip,但它似乎是使用默认 weave 配置 (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)

有什么我错过了清理的地方吗?还是编织插件的默认行为?

【问题讨论】:

  • 你以前有不同的cni吗?那是什么?
  • 同样织法前

标签: kubernetes weave cni


【解决方案1】:

默认情况下,Weave Net 使用自己的 IP 分配器,可以通过环境变量 IPALLOC_RANGE 进行配置。 Link to docs

如果您更改每个节点上的 CNI 配置以使用不同的 IPAM 插件,例如"host-local" 你也许可以让它完全按照你的想法去做。

【讨论】:

  • 在这种情况下,flannel 使用的是主机本地ipam?
猜你喜欢
  • 2020-11-02
  • 2017-11-01
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
  • 2017-09-26
  • 2019-12-08
  • 2023-03-06
  • 1970-01-01
相关资源
最近更新 更多