云原生是大型架构的核心,下面我重点详解K8S负载均衡@mikechen
K8S

Kubernetes(简称K8S)是一个开源的容器编排平台,旨在自动化容器化应用的部署、扩展与管理。
通过将应用封装为Pod并在集群中调度运行,K8S实现了高可用、可伸缩与自愈能力,成为云原生架构的核心组件。
K8S 负载均衡原理
Service 为一组带相同标签的 Pod 提供一个固定的虚拟 IP(ClusterIP)和端口,实现服务发现和负载均衡。

kube‑proxy 运行在每个 Node 上,根据 Service/Endpoint 对象,在内核级(iptables 或 IPVS)编程规则,把流量转发到各个 Pod。
在 IPVS 模式下,kube‑proxy 使用 Linux IPVS 负载均衡器,支持多种调度算法(轮询、最少连接、哈希等)。
轮询

将请求按顺序轮流分配给后端服务器。
优势:
实现简单: 无需记录连接状态,计算开销极低。
无状态: 适合后端服务器处理能力完全对等的场景。
劣势:
忽略权重: 如果服务器配置不同(如 8核 vs 16核),会导致性能强的服务器闲置。
慢请求倾斜: 如果某些请求处理极慢,轮询会导致慢请求在某台服务器上堆积。
进化版: 加权轮询 (Weighted Round Robin),通过给服务器打分,解决硬件差异问题。
最少连接
实时动态统计各服务器当前的活跃连接数,将新请求发给连接数最少的机器。

优势:
动态感知: 它是最“聪明”的算法之一,能自动绕过处理缓慢或卡顿的服务器。
利用率高: 极大地提高了后端资源的利用率,尤其适合长连接(如 WebSocket)或请求处理时间差异大的业务。
劣势:
性能损耗: 负载均衡器需要维护所有连接的状态表,在高并发下会有额外的内存和 CPU 开销。
冷启动问题: 当新节点加入时,所有新流量会瞬间涌向该节点,可能导致新节点被“瞬时压垮”。
基于哈希

根据请求的某个特征(IP、URL、Cookie 或 UserID)计算哈希值,映射到固定服务器。
优势:
会话保持 (Session Persistence): 保证同一个用户的请求始终落到同一台服务器,无需引入额外的分布式 Session。
缓存友好: 极大提高后端服务器的本地缓存命中率(如 CDN 场景)。
劣势:
容易不均: 如果某个 Key 异常活跃(如大 V 访问),会导致单台服务器压力过大(热点问题)。
扩容抖动: 传统的取模哈希在增加/减少节点时,会导致大量映射关系失效。