LoadBalancer服务类型通过云平台创建外部负载均衡器暴露Kubernetes服务,分配外部IP并将流量转发至后端Pod,适用于公有云环境。

Kubernetes 的 LoadBalancer 服务类型是一种将集群内部服务暴露给外部网络的方式,特别适用于运行在公有云(如 AWS、GCP、Azure)环境中的 Kubernetes 集群。当创建一个类型为 LoadBalancer 的 Service 时,Kubernetes 会请求云平台自动创建一个外部负载均衡器,并将其路由到该服务对应的后端 Pod。
如何工作?
当你定义一个 LoadBalancer 类型的服务,Kubernetes 控制平面会通过云提供商的 API 创建一个外部负载均衡器。这个负载均衡器会:
- 分配一个外部 IP 地址供客户端访问
- 将流量转发到集群中匹配该 Service 的 Pod
- 通常只作用于 TCP/UDP 流量
Service 本身仍然包含一个 ClusterIP,作为内部通信的基础,而 LoadBalancer 在其基础上扩展了外部访问能力。
配置方式
只需在 Service 的 YAML 中指定 type: LoadBalancer:
kind: Service
metadata:
name: my-service
spec:
type: LoadBalancer
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 9376
部署后,查看服务状态可看到外部 IP:
kubectl get service my-service使用场景与限制
LoadBalancer 适合需要稳定公网入口的应用,比如前端 Web 服务或 API 网关。但它也有一些注意事项:
- 每个 LoadBalancer 服务通常会产生额外费用(来自云厂商)
- 创建过程可能需要几十秒到几分钟
- 不是所有环境都支持(例如本地部署需借助 MetalLB 或其他工具模拟)
- 默认仅支持一层转发,更复杂路由建议结合 Ingress 使用
基本上就这些。LoadBalancer 是最直接的对外暴露服务的方式之一,尤其适合快速接入外部流量的场景。









