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

Docker Desktop Ubuntu环境下K8S LoadBalancer外部IP Pending求助

解决Docker Desktop K8S里MySQL LoadBalancer Service外部IP卡Pending的问题

先搞懂为啥会这样

Docker Desktop自带的K8S集群,本身没有像云厂商那样的负载均衡器支持,之前你部署SQL Server能拿到localhost,大概率是旧版本Docker Desktop的特殊兼容,新版本里没这待遇了,所以LoadBalancer类型的Service就一直卡着等外部IP,自然处于Pending状态。

给你三个解决办法,挑适合的来

办法1:直接换成NodePort类型(最省事)

不用纠结LoadBalancer,改成NodePort后直接用localhost:端口号就能访问。修改你的Service YAML配置:

apiVersion: v1
kind: Service
metadata:
  name: mysql-service
spec:
  type: NodePort # 把LoadBalancer改成NodePort
  ports:
    - port: 3306
      targetPort: 3306
      nodePort: 30306 # 可选,指定30000-32767之间的端口,不指定K8S会自动分配
  selector:
    app: mysql # 要和你的MySQL Pod的label对应

改完后执行kubectl apply -f 你的service.yaml,然后用localhost:30306连接MySQL即可。

办法2:装MetalLB模拟LoadBalancer(非要用LoadBalancer的话)

MetalLB是给本地K8S集群做负载均衡的工具,装了之后就能给LoadBalancer类型的Service分配外部IP:

  1. 先确保Docker Desktop的K8S处于正常运行状态
  2. 安装MetalLB:
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-native.yaml
  1. 新建metallb-config.yaml配置地址池,选Docker Desktop子网里的IP段(默认是192.168.65.0/24,选该段内的IP即可):
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: default-pool
  namespace: metallb-system
spec:
  addresses:
  - 192.168.65.100-192.168.65.200
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: default-advert
  namespace: metallb-system
spec:
  ipAddressPools:
  - default-pool
  1. 应用配置:
kubectl apply -f metallb-config.yaml
  1. 重新创建你原来的LoadBalancer类型Service,此时EXTERNAL-IP会从配置的池子里分配,用这个IP就能访问MySQL。

办法3:先确认MySQL Pod是不是正常运行

有时候Pod未就绪会导致Service异常,先检查Pod状态:

kubectl get pods

如果Pod不是Running状态,查看日志排查问题:

kubectl logs <你的MySQL Pod名称>

最后验证

不管用哪个办法,执行kubectl get svc查看Service状态:

  • NodePort类型看PORT(S)列的第二个端口
  • LoadBalancer类型看EXTERNAL-IP列
    之后用对应的地址测试MySQL连接即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:58:09