总体感觉
cilium是一个K8s CNI,可以支持独立部署l4lb,katran是一个l4lb的框架,但官方给出了样例代码来运行一个l4lb,两者都是基于XDP
网络拓扑
katran仅支持单臂路由模式,cilium相对更灵活,可以支持内/外网分离模式,分别通过devices和direct-routing-device参数指定

cilium

real的mac地址
katran直接通过default_mac参数指定默认网关的mac地址,全部数据包转发均交给默认网关(ToR),cilium可以从操作系统arp表同步,并缓存一定时间,但无法主动进行arp查询,需要通过外部程序来完成;
工作模式
katran仅支持DSR方式,cilium支持SNAT和DSR两种模式;
DSR的隧道
cilium支持IPIP,katran官方给出样例支持IPIP,但理论可以支持GUE和FOU;
real上要做的配置
文档
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 删除。