K8S负载均衡原理详解(图文全面总结)

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

K8S

Kubernetes(简称K8s),是目前最流行的容器编排平台。

主要解决,大规模容器调度与自动部署。

K8S 提供资源调度、服务发现、自动伸缩、滚动升级和自愈能力。

K8S负载均衡原理详解(图文全面总结)-mikechen

其中,服务发现 + 负载均衡 是 Kubernetes 最核心、最常用的功能。

 

K8S 负载均衡原理

K8S 的负载均衡机制分为集群内部、与集群外部两类。

K8S负载均衡原理详解(图文全面总结)-mikechen

集群内部负载均衡主要通过 Service(尤其是 ClusterIP、NodePort、Headless Service)实现。

当客户端访问 Service 时,Kube-proxy 在每个 Node 上负责将进入的流量转发到后端 Pod。

Kube-proxy 支持多种模式(iptables、ipvs),其中 iptables 利用内核的包过滤、与 NAT 规则进行简单的轮询/随机转发。

集群外部负载均衡,通常由 Ingress Controller 、或云厂商的外部 LB(如 ELB、SLB)承担。

它们接收外部请求并根据路由规则或 Service 类型将流量引导至集群内的入口点(NodePort 或 LoadBalancer 类型的 Service)。

 

K8S 负载均衡策略

当使用 Ingress Controller或 Service Mesh(如 Istio、Linkerd)时,负载均衡算法如下:

轮询:顺序把请求发给各 Pod,是最常见的通用算法,实现简单、分布相对均匀。

 

K8S负载均衡原理详解(图文全面总结)-mikechen

最少连接(least connections):优先把新连接分配给当前连接数最少的后端,用于单个请求耗时差异较大的场景,有助于减少热点 Pod。

一致性哈希 / Ring Hash:根据请求的 key(如用户 ID、IP、Cookie 等)计算哈希。

把请求映射到固定 Pod,常用于缓存集群、需要绑定用户数据到特定后端的场景。

K8S负载均衡原理详解(图文全面总结)-mikechen

加权轮询 / 加权最少连接:给每个 Pod 设置权重(例如按 CPU、内存、节点性能)。

K8S负载均衡原理详解(图文全面总结)-mikechen

权重大者分配到更多请求,适用于不同规格实例混合部署的场景。

评论交流
    说说你的看法