k8s集群serviceIP和podIP不够踩坑记录

发布时间:2026/8/1 5:37:18
k8s集群serviceIP和podIP不够踩坑记录 使用kubeadm或者封装了kubeadm的框架进行部署。使用terraform在支持的云厂商进行部署。直接购买云厂商现成的k8s集群产品。这三种方式由难到易其实难的也没多难就是可能会稍微复杂一点点这里记载使用terraform在腾讯云构建k8s集群因参数设置不对导致serviceIP不够且不能动态添加最后只能重建集群迁移服务的坑。还有因为公司采用了serverless架构导致产生大量微小服务虽然启动速度更快内存占用更小服务根据并发灵活扩缩容甚至能缩容到0但是会占用大量的内部虚拟IP所以cluster_cidr、service_cidr设置不足导致问题更加突出严重。前情分析使用terraform在腾讯云部署k8s环境时往往需要设置这两个参数参数 说明 是否必须显式设置 默认值如果不填cluster_cidr 集群内 Pod 使用的 CIDR 否 172.16.0.0/16service_cidr 集群内 Service 使用的 CIDR 否 10.0.0.0/16虽然可以默认但在生产环境下强烈建议显式设置原因如下IP 冲突规避默认的 Pod 网段172.16.0.0/16如果与你 VPC 自身的子网 CIDR 冲突会导致容器无法通信。网段规划如果你的腾讯云环境通过对等连接Peering Connection或 VPN 连接了其他 VPC 或办公网必须显式规划网段以防路由冲突。后期不可更改这两个参数在集群创建后无法修改。如果默认值选错了后期扩容或联网出现冲突时只能删掉集群重建。默认网段大小还可以但是往往会因为12原因网段冲突导致需要显示设置这两个参数但是问题恰恰出现在这里运维人员不清楚IP网段的含义设置了过小的网段导致IP不够k8s集群启动不了更多的服务。service_cidr不够时会报以下错误Error from server (InternalError): error creating service: Internal error occurred: failed to allocate a serviceIP: range is full