https://www.jianshu.com/p/a772e4b951f2
最近给一个子公司部署一套k8s集群,集群搭建完之后有几个新需求需要新增几个node节点,在新增节点时发现添加失败,经过查询发现是网络规划问题导致。
flannel启动失败,报错信息如下:
Error registering network: failed to acquire lease: out of subnets
通过上面的报错信息可以看出是因为子网划分过小导致网段无法分配,那么知道了问题,就想办法去扩大子网即可,我使用的是20位的子网,节点限制不能超过16个。
查询当前网络配置
etcdctl \
--endpoints=${ETCD_ENDPOINTS} \
--ca-file=/etc/kubernetes/cert/ca.pem \
--cert-file=/etc/flanneld/cert/flanneld.pem \
--key-file=/etc/flanneld/cert/flanneld-key.pem \
get /kubernetes/network/config
# 显示结果
{"Network":"10.33.128.0/20", "SubnetLen": 24, "Backend": {"Type": "vxlan"}}
扩大网络子网之后,理论上我即可增加node节点,我计划将20位子网改成18位子网,我是通过etcdctl的方式来修改的,执行以下命令
etcdctl \
--endpoints=${ETCD_ENDPOINTS} \
--ca-file=/opt/k8s/work/ca.pem \
--cert-file=/opt/k8s/work/flanneld.pem \
--key-file=/opt/k8s/work/flanneld-key.pem \
set /kubernetes/network/config '{"Network":"'10.33.128.0/18'", "SubnetLen": 24, "Backend": {"Type": "vxlan"}}'
重启相关服务并进行验证
systemctl daemon-reload && systemctl restart flanneld
查看pod子网列表是否有新增节点的网段
etcdctl \
--endpoints=${ETCD_ENDPOINTS} \
--ca-file=/etc/kubernetes/cert/ca.pem \
--cert-file=/etc/flanneld/cert/flanneld.pem \
--key-file=/etc/flanneld/cert/flanneld-key.pem \
ls /kubernetes/network/subnets
到此,修改扩容k8s子网完成,我的这个操作是在新搭建的环境上进行调整的,并没有在生产环境进行