Kuberntes使用CNI(Calico)同一台节点分配了两个不同的Pod IP段问题?

Lance.Wu 发表于: 2022-10-17   最后更新时间: 2022-11-16 15:39:58   956 游览
# kubectl get pod -A -o wide|grep kube-node18
...

ns-demo   service-5f5b786556-xp2st  1/1     Running     0      34d     172.23.14.198    kube-node18
ns-demo   service-6b4bd8c9ff-w57ln  1/1     Running     0      5d16h   172.23.15.28     kube-node18

上述代码中的同一台宿主机,kube-node18 分配了172.23.14.198172.23.15.28 两个不同段的IP。如何解决在同一台宿主机上只分配一个IP段?

Calico自定义配置如下:

apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: default
spec:
  calicoNetwork:
    ipPools:
    - blockSize: 26
      cidr: 192.168.0.0/16
      encapsulation: VXLANCrossSubnet
      natOutgoing: Enabled
      nodeSelector: all()

---

apiVersion: operator.tigera.io/v1
kind: APIServer 
metadata: 
  name: default 
spec: {}
发表于 2022-10-17
¥2.0

BlockSize=26,也就是说一个IPBlock包含64个IP,而目前每台节点的Pod数量限制是默认的110,所以会生成2个Block。

如果你想每台node只存在一个段:

  • BlockSize=25,128个ip。
  • BlockSize=24,256个ip。

默认每台节点pod数量限制是110,将BlockSize调整25就涵盖了。如果改过每台节点的Pod数量限制,改为24256个ip,该C类地址都给你用。

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题