有十几台的机器,网卡是 200G 的,都是直连在同一个交换机下的同一个 VLAN ,对网络性能要求比较高,这种情况下 CNI 选择上大家有什么推荐么?
1
rrfeng 2023-12-08 18:01:48 +08:00 via Android
hostnetwork 最佳
如果你能管理 IP 的话,直接机器上 bridge 一下分配同网段地址(子接口不知道行不行) 其次才考虑 overlay 方案( vxlan ,calico ,,,) |
2
yuan1028 2023-12-08 18:07:06 +08:00 via Android
可以看看 flannel host-gw ,机器不多同网段感觉比较适合
|
3
yuan1028 2023-12-08 18:08:10 +08:00 via Android
如果是云服务的机器,比如阿里,可以看看弹性网卡辅助 IP 上 terway
|
4
HugeNature OP @rrfeng hostnetwork 性能的确是最好的,但是管理那么多 ports 运维是不是要疯。。。
|
5
HugeNature OP @yuan1028 flannel host-gw 性能还不如 calico
|
6
rrfeng 2023-12-08 18:55:09 +08:00 via Android
@HugeNature 不会的,可以自动化。小规模集群给 k8s 加个 hook 分配端口就行了。
|
7
tomwei7 2023-12-08 20:26:47 +08:00
网卡拆 SR-IOV 然后分给容器应该是比较好管理而且性能损失最小的方案,同时能充分利用网卡提供的功能。Linux bridge 应该没办法到 200G
|
8
onetown 2023-12-08 21:53:28 +08:00
主要是 linux kernel 有 1M pps 限制啊, 你用容器, 那么当然是共享一个 kernel 了, 这个就算你 sr-iov 也解决不了, 只要数据包到了内核, 就会触发这个限制。 你还是考虑一下 kernel bypass 的方案吧,dpdk + vhost 的方式也许能解决你的问题吧。
|
9
neowong2005 2023-12-08 22:29:53 +08:00 via Android
cilium ?
|
10
xycost233 2023-12-12 17:35:38 +08:00
之前做过高并发性能测试,首选 host network 模式,次选类似 calico bgp 之类的模式,其他 overlay 模式会有较大的性能损失
|
11
xycost233 2023-12-12 17:41:39 +08:00
@xycost233 打个比方 calico 的 overlay 是通过 ipip 来实现的,在通信过程中会多一层 tunnel 用来封包和解包,会增加很多软中断,性能会降低个 15%左右(根据业务和配置不同而变化)
|
12
HugeNature OP @xycost233 有测过 multus 么?
|
13
xycost233 2023-12-13 16:59:49 +08:00
@HugeNature #12 没测过,不过只要原理没变,性能不会有太大的差异
|
14
yunshangdetianya 221 天前
macvlan?
|