新装的k8s v1.22.5 因为 在k8s kube-apiserver 和kube-controller-manager 中的 --service-cluster-ip-range [service 用的ip地址段和 cluster-cidr 【给node分配的地址段】,两则都设置了 172.16.0.0/16 导致kube-controller-manager 报没有CIDR可用。
Error while processing Node Add/Delete: failed to allocate cidr from cluster cidr at idx:0: CIDR allocation failed; there are no remaining CIDRs left to allocate in the accepted range
其实 --service-cluster-ip-range=172.16.18.0/16 cluster-cidr=172.16.188.0/16 虽然两则还是属于同一个网段,区分开来就行。一旦用到生产环境,改动起来就比较麻烦。
k8s 一般给node分配的掩码为 24, 这相当于划分了 256个子网2^(24-16)=256 ,每个网段ip地址为 2^(32-24)-2=254
分配子网也可以根据 node个数来分配,比如你有9个节点,可以使用 掩码为20 ,个16个子网,够节点使用了,不过为了以后扩展节点,尽量预留多些。
google的建议:每个node上分配的ip最好为pod 数量的两倍,以避免不必要的ip冲突。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!