Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)
เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบ เบ”เบฑเบ”เบŠเบฐเบ™เบตเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เป€เบŠเบดเปˆเบ‡เบ•เบญเบ™เบ™เบตเป‰เปเบฅเปˆเบ™เปƒเบ™ Kubernetes 1.14 เบžเป‰เบญเบกเบเบฑเบšเบฅเบธเป‰เบ™ CNI เบซเบผเป‰เบฒเบชเบธเบ”เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบ”เบทเบญเบ™เป€เบกเบชเบฒ 2019.

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบ‚เป‰เบญเบเบขเบฒเบเบ‚เบญเบšเปƒเบˆเบ—เบตเบกเบ‡เบฒเบ™ Cilium: เบœเบนเป‰เบŠเบฒเบเป„เบ”เป‰เบŠเปˆเบงเบเบ‚เป‰เบญเบเบเบงเบ”เป€เบšเบดเปˆเบ‡เปเบฅเบฐเปเบเป‰เป„เบ‚ scripts เบ•เบดเบ”เบ•เบฒเบก metrics.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบ”เบทเบญเบ™เบžเบฐเบˆเบดเบ 2018

เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เบฑเป‰เบ‡เปเบ•เปˆเบ™เบฑเป‰เบ™เบกเบฒ (เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบชเบปเบ™เปƒเบˆ):

Flannel เบเบฑเบ‡เบ„เบปเบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš CNI เบ—เบตเปˆเป„เบงเปเบฅเบฐเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”, เปเบ•เปˆเบเบฑเบ‡เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบฅเบฐเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”.

Romana เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบญเบตเบเบ•เปเปˆเป„เบ›, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบญเบปเบฒเบกเบฑเบ™เบญเบญเบเบˆเบฒเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ WeaveNet เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบชเปเบฒเบฅเบฑเบš Ingress เปเบฅเบฐ Egress! เปเบ•เปˆเบœเบปเบ™เบœเบฐเบฅเบดเบ”เป„เบ”เป‰เบซเบผเบธเบ”เบฅเบปเบ‡.

เปƒเบ™ Calico, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปเบžเบฑเบเป€เบเบฑเบ”เบชเบนเบ‡เบชเบธเบ” (MTU) เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”. Calico เบชเบฐเป€เบซเบ™เบตเบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ CNI, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ ETCD เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ:

  • เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเบฐเบ–เบฒเบ™เบฐเปƒเบ™ Kubernetes API เป€เบ›เบฑเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™ (เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบเบธเปˆเบก < 50 nodes);
  • เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเบฐเบ–เบฒเบ™เบฐเปƒเบ™ Kubernetes API เป€เบ›เบฑเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ”เป‰เบงเบเบžเบฃเบฑเบญเบเบŠเบต Typha เป€เบžเบทเปˆเบญเบšเบฑเบ™เป€เบ—เบปเบฒเบเบฒเบ™เป‚เบซเบผเบ”เปƒเบ™ K8S API (เบ‚เบฐเปœเบฒเบ”เบ‚เบญเบ‡เบเบธเปˆเบก > 50 nodes).

Calico เบ›เบฐเบเบฒเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ เบ™เบฐเป‚เบเบšเบฒเบเบฅเบฐเบ”เบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡ Istio เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบฅเบฐเบ”เบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™.

เบ”เบฝเบงเบ™เบตเป‰ Cilium เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปเบฅเป‰เบง! Cilium เบชเบฐเปœเบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ”เป‰เบงเบเบญเบธเป‚เบกเบ‡ IPSec เปเบฅเบฐเบชเบฐเป€เปœเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบซเป‰เบเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ WeaveNet เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป„เบงเป‰. เปเบ•เปˆ WeaveNet เปเบกเปˆเบ™เป„เบงเบเบงเปˆเบฒ Cilium เบ”เป‰เบงเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบฅเบฑเบš.

เบ”เบฝเบงเบ™เบตเป‰ Cilium เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบเป‰เบญเบ™เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ ETCD เบ—เบตเปˆเบชเป‰เบฒเบ‡เบกเบฒ.

เบ—เบตเบกเบ‡เบฒเบ™ Cilium เป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบ•เบฑเบ”เบ™เป‰เปเบฒเบซเบ™เบฑเบเบšเบฒเบ‡เบชเปˆเบงเบ™เบˆเบฒเบ CNI เบ‚เบญเบ‡เบ•เบปเบ™เป‚เบ”เบเบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบฅเบฐเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ CPU, เปเบ•เปˆเบ„เบนเปˆเปเบ‚เปˆเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบเบฑเบ‡เบญเปˆเบญเบ™เบเบงเปˆเบฒ.

เบšเปเบฅเบดเบšเบปเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™

เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบชเบฒเบกเป€เบŠเบตเบšเป€เบงเบต Supermicro เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™ virtual เบ—เบตเปˆเบกเบตเบชเบฐเบงเบดเบ” 10 Gb Supermicro. เป€เบŠเบตเบšเป€เบงเบตเบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบเบปเบ‡เบเบฑเบšเบชเบฐเบงเบดเบ”เบœเปˆเบฒเบ™เบชเบฒเบ DAC SFP+ เปเบšเบš passive เปเบฅเบฐเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบขเบนเปˆเปƒเบ™ VLAN เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš jumbo frames (MTU 9000).

Kubernetes 1.14.0 เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™ Ubuntu 18.04 LTS เบเบฑเบš Docker 18.09.2 (เบชเบฐเบšเบฑเบš Docker เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เบฅเบธเป‰เบ™เบ™เบตเป‰).

เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เปเบœเปˆเบžเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบชเบฐเป€เบซเบกเบต configure เปเบกเปˆเบšเบปเบ”เปƒเบ™ node เบ—เปเบฒเบญเบดเบ”, เบงเบฒเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡ benchmark เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเบชเบญเบ‡, เปเบฅเบฐเบžเบฒเบเบชเปˆเบงเบ™เบฅเบนเบเบ„เป‰เบฒเบขเบนเปˆเปƒเบ™เบ—เบตเบชเบฒเบก. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ NodeSelector เปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Kubernetes.

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš benchmark เปƒเบ™เบฅเบฐเบ”เบฑเบšเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)

เบเบฒเบ™เป€เบฅเบทเบญเบ CNI เบชเปเบฒเบฅเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™

เบ™เบตเป‰เปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš CNI เบˆเบฒเบเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเปƒเบ™เบžเบฒเบ เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบเบธเปˆเบกเปเบกเปˆเบšเบปเบ”เบ”เบฝเบงเบเบฑเบš kubeadm เป€เบšเบดเปˆเบ‡เป€เบญเบเบฐเบชเบฒเบ™ Kubernetes เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™. เปƒเบ™เบˆเปเบฒเบ™เบงเบ™ 9 CNIs, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบญเบปเบฒเบžเบฝเบ‡เปเบ•เปˆ 6: เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบเบปเบเป€เบงเบฑเป‰เบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบฅเบฐ / เบซเบผเบทเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ•เบฒเบกเป€เบญเบเบฐเบชเบฒเบ™ (Romana, Contiv-VPP เปเบฅเบฐ JuniperContrail / TungstenFabric).

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เบฝเบšเบ—เบฝเบš CNIs เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • Calico v3.6
  • Canal v3.6 (เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ Flannel เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ + Calico เป€เบ›เบฑเบ™ firewall)
  • Cilium 1.4.2
  • Flannel 0.11.0
  • Kube-router 0.2.5
  • WeaveNet 2.5.1

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ CNI เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™, เบ„เบงเบฒเบกเบ›เบฐเบ—เบฑเบšเปƒเบˆเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ”เบตเบ‚เบถเป‰เบ™. CNIs เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบ benchmark เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡ (เบกเบตเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบชเบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡).

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบงเบปเป‰เบฒ, เป€เบŠเบตเบšเป€เบงเบตเปเบฅเบฐเบชเบฐเบซเบผเบฑเบšเป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ”เป‰เบงเบเบเบญเบš jumbo เบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ (เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเป‰เบ‡ MTU เป€เบ›เบฑเบ™ 9000). เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ”เบตเปƒเบˆเบ–เป‰เบฒ CNI เบเปเบฒเบ™เบปเบ” MTU เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบœเบนเป‰เบ”เบฑเบ”เปเบ›เบ‡. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบžเบฝเบ‡เปเบ•เปˆ Cilium เปเบฅเบฐ Flannel เบˆเบฑเบ”เบเบฒเบ™เบ™เบตเป‰. เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡ CNIs เบกเบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบเปˆเบฝเบงเบเบฑเบš GitHub เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบš MTU เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบกเบฑเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เป‚เบ”เบเบเบฒเบ™เบ›เปˆเบฝเบ™ ConfigMap เบชเปเบฒเบฅเบฑเบš Calico, Canal เปเบฅเบฐ Kube-router, เบซเบผเบทเบœเปˆเบฒเบ™เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบชเปเบฒเบฅเบฑเบš WeaveNet.

เบšเบฑเบ™เบซเบฒเบเบฑเบš MTU เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™เบซเบเบฑเบ‡? เปเบœเบ™เบงเบฒเบ”เบ™เบตเป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡ WeaveNet เบเบฑเบš MTU เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบเบญเบš jumbo เบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰:

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)
MTU เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเปเบ™เบงเปƒเบ”?

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบซเบฑเบ™เบงเปˆเบฒ MTU เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เปเบ™เบงเปƒเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเปˆเบฒ CNIs เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบกเบฑเบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”:

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)
CNI เบเบงเบ”เบžเบปเบš MTU เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”

เป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ„เปˆเบฒ MTU เบชเปเบฒเบฅเบฑเบš Calico, Canal, Kube-router เปเบฅเบฐ WeaveNet เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”. Cilium เปเบฅเบฐ Flannel เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ” MTU เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบ”เป†.

เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เบฝเบšเบ—เบฝเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡ CNI เปƒเบ™เบชเบญเบ‡เบ”เป‰เบฒเบ™: เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบ Kubernetes (เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ•เบปเบงเบˆเบดเบ‡, เบšเปเปˆเปเบกเปˆเบ™เป€เบญเบเบฐเบชเบฒเบ™).

เบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡ CNIs เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ‚เปเป‰เบกเบนเบ™: Cilium เปเบฅเบฐ WeaveNet. เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” WeaveNet เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก CNI. IN เป€เบญเบเบฐเบชเบฒเบ™ WeaveNet เบญเบฐเบ—เบดเบšเบฒเบเบกเบฑเบ™เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™, เปเบ•เปˆเบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เบ‡เปˆเบฒเบเป†. เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” เบ„เบฃเบตเบก เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบ”เบเบ„เปเบฒเบชเบฑเปˆเบ‡, เป‚เบ”เบเบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบฅเบฑเบš Kubernetes, เปเบฅเบฐเป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบ”เบฑเบ”เปเบ›เบ‡ daemonSet (เบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบเบเปˆเบงเบฒเปƒเบ™ WeaveNet, เปเบ•เปˆ Cilium เบกเบตเบ‚เบฑเป‰เบ™เบ•เบญเบ™เป‚เบ”เบเบ‚เบฑเป‰เบ™เบ•เบญเบ™. เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ).

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ” Calico, Canal, Cilium เปเบฅเบฐ WeaveNet, เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” configure Ingress เปเบฅเบฐ Egress เบเบปเบ”เบฅเบฐเบšเบฝเบš. เบชเปเบฒเบฅเบฑเบš Kube-router เบกเบตเบเบปเบ”เบฅเบฐเบšเบฝเบšเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš Ingress, เปเบฅเบฐ Flannel เบšเปเปˆเบกเบตเบ™เบฐเป‚เบเบšเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบ”เป†.

เบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบฅเบงเบก:

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)
เบœเบปเบ™โ€‹เบเบฒเบ™โ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ”เป‰เบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบ›เบญเบ”โ€‹เป„เบžโ€‹

เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™

เบ”เบฑเบ”เบŠเบฐเบ™เบตเบ™เบตเป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบเบฒเบ™เบœเปˆเบฒเบ™เบชเบฐเป€เบฅเปˆเบเปƒเบ™เป„เบฅเบเบฐเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบชเบฒเบกเป„เบฅเบเบฐเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš. เบžเบงเบเป€เบฎเบปเบฒเบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ TCP เปเบฅเบฐ UDP (เป‚เบ”เบเปƒเบŠเป‰ iperf3), เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เป€เบŠเบฑเปˆเบ™ HTTP (เบเบฑเบš Nginx เปเบฅเบฐ curl) เบซเบผเบท FTP (เบเบฑเบš vsftpd เปเบฅเบฐ curl) เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” SCP (เปƒเบŠเป‰เบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ OpenSSH).

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป‚เบฅเบซเบฐเป€เบ›เบปเปˆเบฒ (เป€เบชเบฑเป‰เบ™เบชเบตเบ‚เบฝเบง) เป€เบžเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” CNI เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡. เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบ‚เบฐเบซเบ™เบฒเบ”เบ”เบฝเบงเบเบฑเบ™, เปเบ•เปˆเปƒเบ™เบชเบต:

  • เบชเบตเป€เบซเบผเบทเบญเบ‡ = เบ”เบตเบซเบผเบฒเบ
  • เบชเบตเบชเบปเป‰เบก = เบ”เบต
  • เบชเบตเบŸเป‰เบฒ = เบ„เบทเบเบฑเบ™
  • เบชเบตเปเบ”เบ‡ = เบšเปเปˆเบ”เบต

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆเป€เบญเบปเบฒ CNIs เบ—เบตเปˆเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบˆเบฐเบชเบฐเปเบ”เบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเปเบฒเบฅเบฑเบš CNIs เบเบฑเบš MTU เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. (เบซเบกเบฒเบเป€เบซเบ”: Cilium เบšเปเปˆเป„เบ”เป‰เบ„เบดเบ”เป„เบฅเปˆ MTU เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบซเบผเบธเบ”เบฅเบปเบ‡ MTU เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™ 8900 เปƒเบ™เบฎเบธเปˆเบ™ 1.4. เบฎเบธเปˆเบ™เบ•เปเปˆเป„เบ›, 1.5, เป€เบฎเบฑเบ”เปเบšเบšเบ™เบตเป‰เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.)

เบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš:

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)
เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš TCP

CNI เบ—เบฑเบ‡เบซเบกเบปเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ”เบตเปƒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ TCP. CNI เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบเบฑเบ‡เบฅเป‰เบฒเบŠเป‰เบฒเบเป‰เบญเบ™เบงเปˆเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบกเบตเบฅเบฒเบ„เบฒเปเบžเบ‡.

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)
เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš UDP

เบ™เบตเป‰, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, CNI เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เบ”เบต. CNI เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบเบทเบญเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ”เบฝเบงเบเบฑเบ™. Cilium เปเบกเปˆเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเบขเบนเปˆเบซเบฅเบฑเบ‡เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™, เปเบ•เปˆเบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆ 2,3% เบ‚เบญเบ‡เป‚เบฅเบซเบฐเป€เบ›เบปเปˆเบฒ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบœเบปเบ™เบ—เบตเปˆเบšเปเปˆเบ”เบต. เบขเปˆเบฒเบฅเบทเบกเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆ Cilium เปเบฅเบฐ Flannel เบเปเบฒเบ™เบปเบ” MTU เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เปเบฅเบฐเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)

เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡? เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš HTTP เปเบกเปˆเบ™เบ•เปˆเปเบฒเบเบงเปˆเบฒเบชเปเบฒเบฅเบฑเบš TCP เป€เบฅเบฑเบเบ™เป‰เบญเบ. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ HTTP เบเบฑเบš TCP, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ iperf3 เปƒเบ™เบ”เบฑเบ”เบŠเบฐเบ™เบต TCP เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบŠเป‰เบฒเบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ HTTP. เบ—เบธเบเบ„เบปเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ”เบตเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. Kube-router เบกเบตเบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™, เปเบ•เปˆ WeaveNet เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ”เบต: เบ›เบฐเบกเบฒเบ™ 20% เบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเป‚เบฅเบซเบฐเป€เบ›เบปเปˆเบฒ. Cilium เปเบฅเบฐ WeaveNet เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป€เบšเบดเปˆเบ‡เบซเบ™เป‰เบฒเป€เบชเบปเป‰เบฒเปƒเบˆเปเบ—เป‰เป†.

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)

เบ”เป‰เบงเบ FTP, เป‚เบ›เบฃเป‚เบ•เบ„เปเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ TCP เบญเบทเปˆเบ™, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. Flannel เปเบฅเบฐ Kube-router เป€เบฎเบฑเบ”เบงเบฝเบ, เปเบ•เปˆ Calico, Canal เปเบฅเบฐ Cilium เปเบกเปˆเบ™เบขเบนเปˆเบซเบฅเบฑเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเปเบฅเบฐเบŠเป‰เบฒเบเบงเปˆเบฒเป‚เบฅเบซเบฐเป€เบ›เบปเปˆเบฒเบ›เบฐเบกเบฒเบ™ 10%. WeaveNet เปเบกเปˆเบ™เบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบผเบฑเบ‡เบซเบผเบฒเบเป€เบ–เบดเบ‡ 17%, เปเบ•เปˆ WeaveNet เบ—เบตเปˆเบ–เบทเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™ 40% เบเปˆเบญเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” Cilium.

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)

เบ”เป‰เบงเบ SCP เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบ—เบฑเบ™เบ—เบตเบงเปˆเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” SSH เบกเบตเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”. เป€เบเบทเบญเบš CNIs เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เบ”เบต, เปเบ•เปˆ WeaveNet เบเบฑเบ‡เบฅเป‰เบฒเบซเบฅเบฑเบ‡เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡. Cilium เปเบฅเบฐ WeaveNet เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบชเบธเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ (SSH + CNI).

เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฐเบซเบผเบธเบšเบ—เบตเปˆเบกเบตเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš:

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)

เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เบ›เบฝเบšเบ—เบฝเบšเบงเบดเบ—เบตเบเบฒเบ™ CNI เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบžเบฒเบเปƒเบ•เป‰เบเบฒเบ™เป‚เบซเบผเบ”เบซเบ™เบฑเบ (เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป‚เบญเบ™ TCP, 10 Gbps). เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบงเบเป€เบฎเบปเบฒเบ›เบฝเบšเบ—เบฝเบš CNI เบเบฑเบšเป‚เบฅเบซเบฐเป€เบ›เบปเปˆเบฒ (เป€เบชเบฑเป‰เบ™เบชเบตเบ‚เบฝเบง). เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เปƒเบซเป‰เบชเบฐเปเบ”เบ‡ Kubernetes เบšเปเบฅเบดเบชเบธเบ” (เป€เบชเบฑเป‰เบ™เบชเบตเบกเปˆเบงเบ‡) เป‚เบ”เบเบšเปเปˆเบกเบต CNI เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบงเปˆเบฒ CNI เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบžเบดเป€เบชเบ”เบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”.

เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปˆเบฒเบชเบฐเป€เบฅเปˆเบเบ‚เบญเบ‡ RAM เบ‚เบญเบ‡ nodes (เบšเปเปˆเบฅเบงเบก buffers เปเบฅเบฐ cache) เปƒเบ™ MB เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป‚เบญเบ™.

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)
เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ

Flannel เปเบฅเบฐ Kube-router เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ” - เบžเบฝเบ‡เปเบ•เปˆ 50 MB. Calico เปเบฅเบฐ Canal เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบกเบต 70. WeaveNet เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบšเปเบฅเบดเป‚เบžเบเบซเบผเบฒเบเบเปˆเบงเบฒเบ„เบปเบ™เบญเบทเปˆเบ™ - 130 MB, เปเบฅเบฐ Cilium เปƒเบŠเป‰เบซเบผเบฒเบเป€เบ–เบดเบ‡ 400.
เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเป€เบงเบฅเบฒ CPU. เป€เบ›เบฑเบ™เบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”: เปเบœเบ™เบงเบฒเบ”เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบšเปเปˆเบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™, เปเบ•เปˆ ppm, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, 38 ppm เบชเปเบฒเบฅเบฑเบš "เบ—เบฒเบ”เป€เบซเบผเบฑเบเป€เบ›เบปเปˆเบฒ" เปเบกเปˆเบ™ 3,8%. เบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš:

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)
เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบ CPU

Calico, Canal, Flannel เปเบฅเบฐ Kube-router เปเบกเปˆเบ™ CPU เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบ - เบžเบฝเบ‡เปเบ•เปˆ 2% เบซเบผเบฒเบเบเปˆเบงเบฒ Kubernetes เบ—เบตเปˆเบšเปเปˆเบกเบต CNI. WeaveNet เบเบฑเบ‡เบฅเป‰เบฒเบŠเป‰เบฒเบเบงเปˆเบฒเบ”เป‰เบงเบเบเบฒเบ™เป€เบžเบตเปˆเบก 5%, เบ•เบดเบ”เบ•เบฒเบกเบ”เป‰เบงเบ Cilium เบขเบนเปˆ 7%.

เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบผเบธเบšเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™:

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš

เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบกเบตเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบฑเบ‡เบซเบกเบปเบ”:

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)
เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบปเปˆเบงเป„เบ›

เบชเบฐเบซเบฅเบธเบš

เปƒเบ™เบžเบฒเบเบชเบธเบ”เบ—เป‰เบฒเบ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบชเบฐเปเบ”เบ‡เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš. เบˆเบปเปˆเบ‡เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบ”เบฑเบ”เบŠเบฐเบ™เบตเบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฝเบงเบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบซเบผเบฒเบ (3 nodes). เบกเบฑเบ™เบšเปเปˆเปƒเบŠเป‰เบเบฑเบšเบเบธเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ (<50 nodes) เบซเบผเบทเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบฐเบซเบ™เบฒเบ™.

เบ‚เป‰เบญเบเบ‚เปเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰ CNIs เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ‚เบถเป‰เบ™เบขเบนเปˆเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™:

  • เบ—เปˆเบฒเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™ nodes เบ—เบตเปˆเบกเบตเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบ (เบซเบผเบฒเบ GB เบ‚เบญเบ‡ RAM, เบซเบผเบฒเบเปเบเบ™) เปเบฅเบฐเบ—เปˆเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž - เป€เบฅเบทเบญเบ Flannel. เบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™ CNIs เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเบธเบ”. เปเบฅเบฐเบกเบฑเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบซเบฅเบฒเบเบซเบฅเบฒเบ (amd64, arm, arm64, เปเบฅเบฐเบญเบทเปˆเบ™เป†). เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ™เบตเป‰เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบญเบ‡ (เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™ Cilium) CNI เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ” MTU เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบซเบเบฑเบ‡. Kube-router เบเบฑเบ‡เป€เบซเบกเบฒเบฐเบชเบปเบก, เปเบ•เปˆเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบฅเบฐเบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ MTU เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡.
  • เบ–เป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™ เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบ เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž, เป€เบญเบปเบฒ WeaveNet. เบขเปˆเบฒเบฅเบทเบกเบฅเบฐเบšเบธเบ‚เบฐเบซเบ™เบฒเบ” MTU เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰ jumbo frames, เปเบฅเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบฅเบฐเบšเบธเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบœเปˆเบฒเบ™เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก. เปเบ•เปˆเบกเบฑเบ™เบเปเปˆเบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบฅเบทเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” - เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”.
  • เป„เบ› เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹ ัะพะฒะตั‚ัƒัŽ Calico. CNI เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Kubernetes เบ•เปˆเบฒเบ‡เป† (Kops, Kubespray, Rancher, เปเบฅเบฐเบญเบทเปˆเบ™เป†). เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš WeaveNet, เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบˆเบฐเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ MTU เปƒเบ™ ConfigMap เบ–เป‰เบฒเปƒเบŠเป‰ jumbo frames. เบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบเบ”เป‰เบฒเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž.

เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปˆเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ เบ„เบฃเบตเบก. CNI เบ™เบตเป‰เบกเบตเบ—เบตเบกเบ‡เบฒเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบซเบผเบฒเบเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบซเบผเบฒเบเบเปˆเบฝเบงเบเบฑเบšเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ (เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”, เบเบฒเบ™เบ›เบฐเบซเบเบฑเบ”เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž, เบเบธเปˆเบก ... ) เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเบกเบตเปเบœเบ™เบเบฒเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบ.

Kubernetes Network Plugin (CNI) Benchmark เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒ 10 Gbps เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบญเบฑเบšเป€เบ”เบ”: เป€เบกเบชเบฒ 2019)
เปเบœเบ™เบงเบฒเบ”เบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบทเบญเบ CNI

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™