Kubectl中LoadBalancer类型Service的External IP长期Pending求助
Kubernetes LoadBalancer Service External IP 长期Pending的排查方案
先贴出你提供的Service状态:
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d8h default mongo-service ClusterIP 10.108.211.111 <none> 27017/TCP 45h default my-service LoadBalancer 10.98.217.118 <pending> 8080:30941/TCP 20m default webapp-service LoadBalancer 10.97.145.165 <pending> 3000:30100/TCP 45h kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 2d8h
以下是具体排查步骤:
- 检查集群环境是否支持LoadBalancer
本地集群(如Minikube、Docker Desktop)默认没有LoadBalancer控制器,Minikube需要执行minikube tunnel手动分配External IP;云厂商集群要确认是否配置了对应云控制器管理器(CCM),比如AWS EKS、阿里云ACK的CCM组件是否正常部署。 - 查看Service事件日志
执行kubectl describe service my-service和kubectl describe service webapp-service,重点看Events字段,里面会显示是否有创建负载均衡实例失败的原因,比如权限不足、资源配额超限等。 - 排查云厂商侧资源限制
如果你用的是云集群,检查账号是否欠费、负载均衡实例是否达到配额上限,或者是否有安全组/策略阻止了负载均衡实例的创建。 - 检查集群核心组件状态
执行kubectl get pods -n kube-system,确认kube-controller-manager和对应云控制器的Pod是否正常运行;如果有异常,用kubectl logs <pod-name> -n kube-system查看具体错误日志。 - 临时替代方案
若暂时无法解决LoadBalancer问题,可改用NodePort类型的Service直接通过节点IP+端口访问,或者部署Ingress Controller来统一暴露服务。
内容的提问来源于stack exchange,提问作者YANA GUPTA
相关产品推荐
相关产品推荐

