You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes三层架构配置中LoadBalancer状态Pending问题求助

解决Kubernetes LoadBalancer Service EXTERNAL-IP Pending问题

针对你遇到的LoadBalancer服务EXTERNAL-IP一直处于Pending的情况,按以下步骤排查:

1. 确认MetalLB控制器已安装并正常运行

Kubernetes裸金属集群本身不提供LoadBalancer实现,必须依赖MetalLB这类组件。先检查MetalLB的Pod状态:

kubectl get pods -n metallb-system

确保所有Pod的STATUS都是Running,如果没有任何MetalLB相关Pod,说明你还未安装MetalLB,需要先完成安装。

2. 验证MetalLB配置正确性

检查你创建的ConfigMap是否正确加载,且IP地址池配置合理:

kubectl get configmap metallb-config -n metallb-system -o yaml

重点确认:

  • addresses中的IP段是否与集群节点处于同一网段(你的节点IP需属于192.168.56.x段)
  • 该IP段内的地址未被其他设备占用(可通过ping 192.168.56.240等命令测试)

3. 查看MetalLB控制器日志定位错误

通过日志排查MetalLB是否存在运行异常:

kubectl logs -n metallb-system -l app=metallb

常见错误包括IP地址池冲突、节点网络权限不足(如ARP广播被禁止)、控制器启动失败等,日志会给出明确提示。

4. 确认Service与Pod的标签匹配性

虽然标签不匹配不会直接导致EXTERNAL-IP Pending,但确保Service能正确关联Pod是基础:

kubectl describe pod petclinic-deployment-5df754cc5c-nfj84 | grep Labels

检查输出中是否包含app: petclinic-app,与Service的spec.selector一致。

5. 检查节点网络配置(Layer2模式)

MetalLB使用Layer2模式时,需要节点之间能正常进行ARP通信:

  • 确保节点防火墙未阻止ARP广播
  • 确认节点网卡处于同一广播域(无VLAN隔离等限制)

内容的提问来源于stack exchange,提问作者Mraim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:15:51