一文看懂Kubernetes ipvs模式

容器集群ipvs模式

为什么使用ipvs

Kubernetes早期版本中kube-proxy使用节点的iptable维护集群内部服务访问连通性。iptables列表匹配时会通过链表中的匹配规则依次匹配。随着 Kubernetes集群节点及服务不断增长,iptables列表中的规则列表可能会上万条,内核繁忙,严重影响性能。ipvs使用ipset + lvs 大大提高了访问效率。

iptables VS ipset

clusterip 10.104.245.87 在使用传统iptable时的匹配规则:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
clusterip 10.104.245.87 在使用ipset时的匹配规则:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

从图中可以看到clusterip在多个iptable列表中依次匹配, ipset作为iptables的扩展,可以定义一些列地址的集合。而有了ipset,则只用添加一条规则即可,而且ipset查找使用hash结构效率很高。

lvs工作原理

在这里插入图片描述

LVS 是基于 netfilter 框架,工作在 INPUT 链上,在 INPUT 上注册 ip_vs_in HOOK 函数,会根据访问的 vip+port 判断请求是否 IPVS 服务,如果是则调用注册的 IPVS HOOK 函数,进行 IPVS 相关主流程,强行修改数据包的相关数据,并将数据包发往 POSTROUTING 链上大概原理如图所示:

小结:

ipvs通过ipset快速匹配clusterip的数据包,将其转发到到INPUT链路,INPUT链路通过ip_vs_in HOOK完成clusterip相关流量转发。

参考文档:
https://blog.csdn.net/martingpf/article/details/104008565

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值