首页/云/Kubernetes 速查/Service LoadBalancer 云负载均衡
网络与服务55 条

Service LoadBalancer 云负载均衡

在支持 LB 的云或安装了 LB 实现的环境中申请外部负载均衡器并绑定服务;云上常用的对外暴露方式。

Kubernetes 速查云更新于 2026-10-13

LoadBalancer 服务是什么

负载均衡类型的服务会向底层环境申请一个外部负载均衡器,并把服务的后端挂到它后面,从而得到一个集群外可直接访问的地址。在云上这一能力由云控制器与相应注解驱动;在自建集群里需要有对应实现才能生效,否则服务会长期停在等待外部地址的状态。

地址从哪来

创建对象后,外部地址不是立刻就有:控制器需要调用底层接口去创建负载均衡器、配置健康检查与监听规则,再把地址写回对象状态。这段时间里地址显示为等待中。地址出现之后,真正的转发由底层负载均衡器完成,集群内的虚拟地址依然保留。

基本信息

适用环境支持负载均衡能力的云环境,或自建集群配合对应实现
语法服务类型设为负载均衡
外部地址申请成功后写入对象状态,未成功前显示等待中
云侧行为负载均衡器类型、健康检查与计费由云平台与注解决定
流量策略可选集群级或本地级,影响源地址保留与转发路径
清理删除对象应触发底层负载均衡器回收

典型使用场景

  • 对外提供服务:业务需要在公网或内网直接访问
  • 简单四层暴露:不需要按域名与路径分发时用它更直接
  • 多种协议支持:非 HTTP 协议的外部暴露通常走这一方式
  • 临时敞开入口:验证或演示阶段快速获得一个外部地址
  • 内网负载均衡:只在内部网络申请负载均衡器承载内部服务
  • 迁移过渡:在引入七层入口之前先用它承接外部流量

清单与查看

清单与查看
apiVersion: v1
kind: Service
metadata:
  name: web-lb
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: nlb   # 云厂商注解示例
spec:
  type: LoadBalancer
  selector:
    app: web
  ports:
    - port: 80
      targetPort: 8080
      protocol: TCP
  externalTrafficPolicy: Cluster   # 默认值,客户端源地址可能不保留

确认外部地址

确认外部地址
kubectl get svc web-lb -o wide                                    # 看地址分配
kubectl get svc web-lb -o jsonpath='{.status.loadBalancer.ingress}'  # 只看外部地址
kubectl describe svc web-lb | grep -A3 'LoadBalancer Ingress'       # 描述里的入口信息
kubectl get events -n <命名空间> --sort-by=.lastTimestamp | tail -10  # 看控制器报错

状态与现象

现象含义下一步
外部地址一直等待中控制器未成功创建负载均衡器查看控制器日志与事件报错
地址已分配但不通安全组或健康检查未通过核对安全组规则与后端就绪状态
源地址看不到默认流量策略未保留源地址需要时改为本地级并评估影响
底层资源未回收对象删除时控制器异常确认负载均衡器是否仍存在并手工清理
云上的负载均衡器通常按规格与流量计费,测试环境用完应及时删除服务对象,触发资源回收。
默认流量策略下请求可能经过节点二次转发,客户端源地址会被替换;需要保留源地址时改用本地级,同时注意后端分布对流量均衡的影响。

易错点

  • 自建集群直接创建该类型服务:没有对应实现时地址永远处于等待状态,应改用节点端口或入口方案
  • 删除服务后不复核云资源:控制器异常时负载均衡器可能残留并继续计费
  • 忽略源地址策略:业务依赖客户端地址做限流或审计时会取到错误值
  • 后端就绪检查未通过:负载均衡器摘掉全部后端,表现为地址可用但请求全部失败
  • 把该类型当成七层入口使用:没有域名与路径分发能力,多服务共用需要另建多个负载均衡器,成本上升

数据来源与参考

  • Kubernetes 官方文档 · Service(LoadBalancer)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌