首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >四层负载均衡器对比-cilium&katran

四层负载均衡器对比-cilium&katran

原创
作者头像
用户10399782
修改2024-11-12 20:16:46
修改2024-11-12 20:16:46
4200
举报

总体感觉

cilium是一个K8s CNI,可以支持独立部署l4lb,katran是一个l4lb的框架,但官方给出了样例代码来运行一个l4lb,两者都是基于XDP

网络拓扑

katran仅支持单臂路由模式,cilium相对更灵活,可以支持内/外网分离模式,分别通过devices和direct-routing-device参数指定

katran
katran

cilium

cilium
cilium

real的mac地址

katran直接通过default_mac参数指定默认网关的mac地址,全部数据包转发均交给默认网关(ToR),cilium可以从操作系统arp表同步,并缓存一定时间,但无法主动进行arp查询,需要通过外部程序来完成;

工作模式

katran仅支持DSR方式,cilium支持SNAT和DSR两种模式;

DSR的隧道

cilium支持IPIP,katran官方给出样例支持IPIP,但理论可以支持GUE和FOU;

real上要做的配置

  • 加载ipip模块来做IPIP隧道解包,也可以通过tc ebfp程序完成,但cilium/kernel提供的代码有bug,会影响udp通信,需要自己修改;
  • 在lo网卡绑定vip,同时修改arp_announce和arp_ignore;
  • 关闭rp_filter;
  • 对于katran如果运行在driver mode需要关闭lro,如果运行在 generic mode模式需要关闭gro;

文档

katran官方给出完整的文档,除编译外安装部署比较顺利,cilium除可以找到的几篇blog外,缺少必要的文档;

real的RSS问题

隧道封装会破坏real的RSS,cilium没有给出解决方案,需要通过网卡高级特性(根据IPIP包内部信息来做hash)或RPS/RFS解决,katran使用了虚拟src ip的方式,样例代码是一个/16的网段;

XDP共享/独享

cilium无法调整xdp的挂载模式,独享模式。katran支持共享和独享两种方式,提供样例代码。

vlan的支持(trunk模式接口)

katran只支持单臂路由,所以不支持vlan子网卡。cilium对于外网可以使用trunk模式网卡,单个网卡和bond都可以,devices直接写根网卡,通过vlan-bpf-bypass配置vlan id,direct-routing-device不支持vlan,cilium需要使用1.14.x,1.15.x及以上有bug不支持;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档