k8s calico flannel cilium 网络性能测试

结论:


image.png

点评:
带宽: calico+ipip > flannel+vxlan > cilium+vlan
速度: calico+ipip > flannel+vxlan > cilium+vlan
稳定性:cilium+vlan > calico+ipip > flannel+vxlan

calico 作为老牌网络解决方案,可圈可点,已被 github 等公司用于生产。
flannel 配置简单,性能弱低于 calico,redis 测试中稍占上风。大并发下稳定性稍低。
cilium 在大并发环境下,稳定性更好,期待后续版本性能有所提升。在 http 8k qps 的情况下,请求 100% 成功了,而calico和flannel 都有一定比例的失败。
(说明:本来还准备比较一下 kube-router ,不过网络没有调通,暂时无法测试。)

一个问题:
flannel 的 host-gw 模式、flannel+vxlan+DirectRouting 模式、calico 关闭 ipip 模式、kube-router 这些部署情况下,跨主机的容器不通,感觉原因应该是同一个问题。
主机A ping 主机B 上的容器,容器有回包,但是只到了主机B,之后就被丢弃了。
欢迎探讨,一起研究。
待问题解决后,再把这些模式测试对比。

测试环境:
硬件:三台物理机,千兆网卡,单网卡,处于同一网段(在同一个二层网络中)
OS:Ubuntu 18.04,内核 4.15
k8s: 1.10.0
kube-proxy: ipvs 模式
flannel : 0.10 版本, vxlan模式(默认设置)
calico: 3.1 版本,ipip 模式(默认设置)
cilium: 1.0 版本,vxlan 模式(默认设置)

测试方法:

kubectl run vegeta --image=oba11/vegeta --replicas=3 sleep 3000

kubectl run redis --image=redis:alpine --replicas=3 

kubectl run nginx --image=nginx:alpine --replicas=5

kubectl run iperf3 --image=networkstatic/iperf3 --replicas=3 -- iperf3 -s


host=POD_IP_ADDRESS

iperf3 -c $host

echo "GET http://$host/" | vegeta attack -duration=10s -rate=8000 | tee results.bin | vegeta report

echo "GET http://$host/" | vegeta attack -duration=10s -rate=5000 | tee results.bin | vegeta report

redis-benchmark -h $host -q -t SET,GET,LPUSH -c 5000 -n 100000 -r 100000 -d 256
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 自从docker容器出现以来,容器的网络通信就一直是大家关注的焦点,也是生产环境的迫切需求。而容器的网络通信...
    糙老爷们儿吃什么樱桃阅读 3,676评论 1 5
  • 版权声明:原创作品,谢绝转载!否则将追究法律责任。 前言 最近中国和印度的局势也是愈演愈烈。作为一个爱国青年我有些...
    李伟铭MIng阅读 2,112评论 0 5
  • 查看集群各服务的进程是都在正常运行 kubectl get cs -o widekubectl get nodes...
    akka9阅读 14,631评论 0 7
  • [TOC] Docker容器平台选型调研 编排选型 Swarm Swarm可以从一个Dockerfile来构建镜像...
    AllenWu阅读 2,594评论 0 7
  • 《那些年,我们的爱情》 图文/青翠紫丁香 好似一片朝霞 落入心湖 那一年 青涩的爱情如花 不经意间就馨香了春夏 经...
    紫丁香Wlp阅读 248评论 0 6