云原生是大型架构的核心,下面我重点详解K8S负载均衡@mikechen
K8S
在现代云原生架构中,Kubernetes(简称 K8S),已经成为容器编排领域的事实标准。

随着微服务数量的增加,如何将外部或内部请求合理地分发到多个 Pod 上。
成为保障系统高可用、高性能与可扩展性的关键问题。
K8S 负载均衡正是解决这一问题的重要机制,它不仅提升了服务访问的稳定性,也使应用具备自动扩缩容和故障自愈能力。
K8S 负载均衡原理
K8S 中的负载均衡,本质上是将客户端请求分配到后端多个 Pod 实例上,从而避免单点压力过大。

K8S 负载均衡:就是把请求流量,平均分发到多个 Pod。
用户请求
↓
Service
↓
Pod1
Pod2
Pod3
它不仅提升了服务访问的稳定性,也使应用具备自动扩缩容和故障自愈能力。
从通信范围看,K8S 负载均衡主要分为两类:
集群内部负载均衡:通过 ClusterIP 暴露服务,供集群内其他组件访问。
集群外部负载均衡:通过 NodePort、LoadBalancer 或 Ingress 将服务暴露给外部用户。
K8S 负载均衡策略
K8S 本身主要依赖:iptables、IPVS、Ingress Controller,其中:IPVS 支持多种算法。
1. Round Robin(轮询)

例如有三个 Pod:A、B、C,流量会按 A→B→C→A 的顺序循环分配。
请求1 → Pod1
请求2 → Pod2
请求3 → Pod3
该算法实现简单,适合各实例性能相近的场景。
2. Least Connections(最少连接)

原理:
谁连接少给谁
适合:
长连接;
WebSocket;
3. Weighted Round Robin(加权轮询)
高性能机器分配更多流量。

例如:
Pod1 weight=5
Pod2 weight=1
Pod1 会获得更多请求。
4. Source Hash(一致性哈希)
根据请求特征,如源 IP、Cookie 或 URL 进行哈希计算,从而将同一类请求固定路由到同一 Pod。

适合:常用于会话保持(Session)等场景。