K8S学习记录 - IPVS

K8S学习记录 - IPVS

 

一、概念
ipvs (IP Virtual Server) 实现了传输层负载均衡,也就是我们常说的4层LAN交换,作为 Linux 内核的一部分。

ipvs运行在主机上,在真实服务器集群前充当负载均衡器。ipvs可以将基于TCP和UDP的服务请求转发到真实服务器上,并使真实服务器的服务在单个 IP 地址上显示为虚拟服务。

ipvs vs. iptables#

我们知道kube-proxy支持 iptables 和 ipvs 两种模式,

在kubernetes v1.8 中引入了 ipvs 模式,在 v1.9 中处于 beta 阶段,在 v1.11 中已经正式可用了。

iptables 模式在 v1.1 中就添加支持了,从 v1.2 版本开始 iptables 就是 kube-proxy 默认的操作模式,

ipvs 和 iptables 都是基于netfilter的,那么 ipvs 模式和 iptables 模式之间有哪些差异呢?

  • ipvs 为大型集群提供了更好的可扩展性和性能
  • ipvs 支持比 iptables 更复杂的负载均衡算法(最小负载、最少连接、加权等等)
  • ipvs 支持服务器健康检查和连接重试等功能


ipvs 依赖 iptables#

ipvs 会使用 iptables 进行包过滤、SNAT、masquared(伪装)。

具体来说,ipvs 将使用 ipset 来存储需要 DROP 或 masquared 的流量的源或目标地址,以确保 iptables 规则的数量是恒定的,这样我们就不需要关心我们有多少服务了

 

 

参考资料:

IPVS负载均衡

k8s集群中ipvs负载详解

基于IPVS的集群内负载均衡深入解读

kubernetes系列之五:IPVS概览

IPVS从入门到精通kube-proxy实现原理

 

posted @ 2021-06-07 13:53  风过无痕521  阅读(445)  评论(0编辑  收藏  举报