pre-post()
为了更好的压榨节点(因为穷买不起第二台), 所以在单台机器上跑了更多的服务,从而导致了更多的pod需要IP分配,而超量则产生了一个异常 failed to allocate for range 0: no IP addresses available in range set
, 节点默认安装下来是 /16
的段,而每个节点会分到 /24
段,这意味着每个节点最多可分配 256
个 POD IP,这对于我这种精扒皮来说远远不够,所以就需要对节点的IP段进行扩容,让每个节点能分到更多的IP
修改Node
由于 Node 信息无法直接修改,这里采取一种变相措施(有一定风险,自己承担),保存Node的配置,修改Node中PodCIDR信息,然后删除掉Node资源,趁Kubelet还没有反应过来就偷偷把修改过的Node资源加回去
保存 node.yaml
1 | $ kubectl get node test-worker -o yaml > node.yaml |
修改 node.yaml 的 podCIDR
1 | ... |
这里我们只需要改为 22
就能让每个节点pod的IP可用数量翻倍得到 1022
个IP,对我来说就足够用了
删除 node 信息
1 | $ kubectl delete node test-worker |
导入节点
1 | $ kubectl apply -f ./node.yaml |
然后就完成了,创建新pod的时候,就会从podCIDR和IP缓存文件信息里找可用IP创建,(不过奇怪的是我的pod并没有超过200,但依然出现IP池短缺的问题,可能是flannel在销毁pod后并没有销毁IP信息,导致IP一直被占用)