Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)
Π’ΠΎΠ²Π° Π΅ моята актуализация ΠΏΡ€Π΅Π΄ΠΈΡˆΠ΅Π½ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ сСга Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Kubernetes 1.14 с Π½Π°ΠΉ-Π½ΠΎΠ²Π°Ρ‚Π° CNI вСрсия ΠΎΡ‚ Π°ΠΏΡ€ΠΈΠ» 2019 Π³.

ΠŸΡŠΡ€Π²ΠΎ, искам Π΄Π° благодаря Π½Π° Π΅ΠΊΠΈΠΏΠ° Π½Π° Cilium: ΠΌΠΎΠΌΡ‡Π΅Ρ‚Π°Ρ‚Π° ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ…Π° Π΄Π° провСря ΠΈ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°ΠΌ скриптовСтС Π·Π° наблюдСниС Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅.

Какво сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΎΡ‚ Π½ΠΎΠ΅ΠΌΠ²Ρ€ΠΈ 2018 Π³

Π•Ρ‚ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ ΠΎΡ‚Ρ‚ΠΎΠ³Π°Π²Π° (Π°ΠΊΠΎ сС интСрСсуватС):

Flannel остава Π½Π°ΠΉ-Π±ΡŠΡ€Π·ΠΈΡΡ‚ ΠΈ прост CNI интСрфСйс, Π½ΠΎ всС ΠΎΡ‰Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΈ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅.

Romana Π²Π΅Ρ‡Π΅ Π½Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°, Π·Π°Ρ‚ΠΎΠ²Π° я ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ…ΠΌΠ΅ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ°.

WeaveNet Π²Π΅Ρ‡Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π·Π° Ingress ΠΈ Egress! Но производитСлността Π΅ намаляла.

Π’ Calico всС ΠΎΡ‰Π΅ трябва Ρ€ΡŠΡ‡Π½ΠΎ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ максималния Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° (MTU) Π·Π° Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π° производитСлност. Calico ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π΄Π²Π΅ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° инсталиранС Π½Π° CNI, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС справитС Π±Π΅Π· ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ETCD Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅:

  • ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π² Kubernetes API ΠΊΠ°Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ (Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° < 50 възСла);
  • ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π² Kubernetes API ΠΊΠ°Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ с Typha прокси Π·Π° ΠΎΠ±Π»Π΅ΠΊΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° K8S API (Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° > 50 възСла).

Calico обяви ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡŠΡ€Ρ…Ρƒ Istio Π·Π° сигурност Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Cilium Π²Π΅Ρ‡Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅! Cilium осигурява ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ с IPSec Ρ‚ΡƒΠ½Π΅Π»ΠΈ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ° WeaveNet. Но WeaveNet Π΅ ΠΏΠΎ-Π±ΡŠΡ€Π· ΠΎΡ‚ Cilium с Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΎ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅.

Cilium Π²Π΅Ρ‡Π΅ Π΅ ΠΏΠΎ-лСсСн Π·Π° внСдряванС Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° вградСния ETCD ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.

Π•ΠΊΠΈΠΏΡŠΡ‚ Π½Π° Cilium сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈ ΠΌΠ°Π»ΠΊΠΎ Ρ‚Π΅Π³Π»ΠΎΡ‚ΠΎ Π½Π° своя CNI Ρ‡Ρ€Π΅Π· намаляванС Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° процСсор, Π½ΠΎ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΌΡƒ всС ΠΎΡ‰Π΅ са ΠΏΠΎ-Π»Π΅ΠΊΠΈ.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π½Π° Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊ

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΡŠΡ‚ сС изпълнява Π½Π° Ρ‚Ρ€ΠΈ Π½Π΅Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Supermicro ΡΡŠΡ€Π²ΡŠΡ€Π° с 10 Gb Supermicro суич. Π‘ΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ към ΠΊΠΎΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€Π° Ρ‡Ρ€Π΅Π· пасивни DAC SFP+ ΠΊΠ°Π±Π΅Π»ΠΈ ΠΈ са ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ Π½Π° Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° VLAN с jumbo frames (MTU 9000).

Kubernetes 1.14.0 Π΅ инсталиран Π½Π° Ubuntu 18.04 LTS с Docker 18.09.2 (вСрсията Π½Π° Docker ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π² Ρ‚Π°Π·ΠΈ вСрсия).

Π—Π° Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΠΌ Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚Ρ‚Π°, Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ главния Π½Π° ΠΏΡŠΡ€Π²ΠΈΡ възСл, Π΄Π° поставим ΡΡŠΡ€Π²ΡŠΡ€Π½Π°Ρ‚Π° част ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° втория ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ клиСнтската част Π½Π° трСтия. Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ NodeSelector Π² внСдряванията Π½Π° Kubernetes.

Π©Π΅ опишСм Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π² слСдната скала:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)

Π˜Π·Π±ΠΎΡ€ Π½Π° CNI Π·Π° Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊ

Π’ΠΎΠ²Π° Π΅ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊ само Π·Π° CNI ΠΎΡ‚ списъка Π² Ρ€Π°Π·Π΄Π΅Π»Π° относно ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ с kubeadm Π’ΠΈΠΆΡ‚Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π° докумСнтация Π½Π° Kubernetes. ΠžΡ‚ 9-Ρ‚Π΅ CNI Ρ‰Π΅ Π²Π·Π΅ΠΌΠ΅ΠΌ само 6: Ρ‰Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Ρ‚Ρ€ΡƒΠ΄Π½ΠΈ Π·Π° инсталиранС ΠΈ/ΠΈΠ»ΠΈ Π½Π΅ работят Π±Π΅Π· конфигурация спорСд докумСнтацията (Romana, Contiv-VPP ΠΈ JuniperContrail/TungstenFabric).

Π©Π΅ сравним слСднитС CNI:

  • Calico v3.6
  • Canal v3.6 (ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ Flannel Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π² ΠΌΡ€Π΅ΠΆΠ° + Calico ΠΊΠ°Ρ‚ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π½Π° стСна)
  • РСснички 1.4.2
  • Π€Π»Π°Π½Π΅Π»Π° 0.11.0
  • Kube-Ρ€ΡƒΡ‚Π΅Ρ€ 0.2.5
  • WeaveNet 2.5.1

Π˜Π½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ

ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-лСсно сС инсталира CNI, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ±Ρ€ΠΎ Ρ‰Π΅ бъдС ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½ΠΈ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅. Всички CNI ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° са ΠΌΠ½ΠΎΠ³ΠΎ лСсни Π·Π° инсталиранС (с Π΅Π΄Π½Π° ΠΈΠ»ΠΈ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ).

ΠšΠ°ΠΊΡ‚ΠΎ ΠΊΠ°Π·Π°Ρ…ΠΌΠ΅, ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ ΠΈ ΠΊΠΎΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€ΡŠΡ‚ са ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ с Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ дТъмбо Ρ€Π°ΠΌΠΊΠΈ (настроихмС MTU Π½Π° 9000). Π©Π΅ сС Ρ€Π°Π΄Π²Π°ΠΌΠ΅, Π°ΠΊΠΎ CNI Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ MTU въз основа Π½Π° конфигурацията Π½Π° Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΈΡ‚Π΅. Π’ΠΎΠ²Π° ΠΎΠ±Π°Ρ‡Π΅ успяха само Cilium ΠΈ Flannel. ΠžΡΡ‚Π°Π½Π°Π»ΠΈΡ‚Π΅ CNI ΠΈΠΌΠ°Ρ‚ заявки Π² GitHub Π·Π° добавянС Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° MTU, Π½ΠΎ Π½ΠΈΠ΅ Ρ‰Π΅ Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ Ρ€ΡŠΡ‡Π½ΠΎ, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌ ConfigMap Π·Π° Calico, Canal ΠΈ Kube-router ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π°Π΄Π΅ΠΌ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° срСдата Π·Π° WeaveNet.

Какъв Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎΡ‚ΠΎ MTU? Π’Π°Π·ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ° ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ WeaveNet с Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ MTU ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ дТъмбо Ρ€Π°ΠΌΠΊΠΈ:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)
Как MTU влияС Π½Π° пропускатСлната способност?

ВидяхмС ΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΠΆΠ΅Π½ Π΅ MTU Π·Π° производитСлността, сСга Π½Π΅ΠΊΠ° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ Π½Π°ΡˆΠΈΡ‚Π΅ CNI Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π³ΠΎ опрСдСлят:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)
CNI Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° MTU

Π“Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ‚Π° ΠΏΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ трябва Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ MTU Π·Π° Calico, Canal, Kube-router ΠΈ WeaveNet Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π° производитСлност. Cilium ΠΈ Flannel успяха сами Π΄Π° опрСдСлят ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ MTU Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ настройки.

сигурност

Π©Π΅ сравним сигурността Π½Π° CNI Π² Π΄Π²Π° аспСкта: способността Π·Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄Π°Π΄Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° Kubernetes (Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Ρ€Π΅Π°Π»Π½ΠΈ тСстовС, Π° Π½Π΅ Π½Π° докумСнтация).

Π‘Π°ΠΌΠΎ Π΄Π²Π΅ CNI ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Ρ‚ Π΄Π°Π½Π½ΠΈ: Cilium ΠΈ WeaveNet. Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ WeaveNet Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ Ρ‡Ρ€Π΅Π· Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€ΠΎΠ»Π°Ρ‚Π° Π·Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° CNI срСда. IN докумСнтация WeaveNet Π³ΠΎ описва ΠΏΠΎ слоТСн Π½Π°Ρ‡ΠΈΠ½, Π½ΠΎ всичко сС ΠΏΡ€Π°Π²ΠΈ просто. Π¨ΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ Ρ†ΠΈΠ»ΠΈΡƒΠΌΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Ρ‡Ρ€Π΅Π· създаванС Π½Π° Ρ‚Π°ΠΉΠ½ΠΈ Π½Π° Kubernetes ΠΈ Ρ‡Ρ€Π΅Π· модификация Π½Π° daemonSet (ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-слоТно, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π² WeaveNet, Π½ΠΎ Cilium ΠΈΠΌΠ° ΡΡ‚ΡŠΠΏΠΊΠ° ΠΏΠΎ ΡΡ‚ΡŠΠΏΠΊΠ° Directions).

Π©ΠΎ сС отнася Π΄ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°, Ρ‚Π΅ успяха Calico, Canal, Cilium ΠΈ WeaveNet, Π² ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° Π²Π»ΠΈΠ·Π°Π½Π΅ ΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅. Π—Π° Kube-Ρ€ΡƒΡ‚Π΅Ρ€ ΠΈΠΌΠ° ΠΏΡ€Π°Π²ΠΈΠ»Π° само Π·Π° Ingress ΠΈ Π±Π°Ρ€Ρ…Π΅Ρ‚ Π˜Π·ΠΎΠ±Ρ‰ΠΎ няма ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ.

Π•Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)
Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ тСста Π·Π° СфСктивност Π½Π° бСзопасността

продуктивност

Π’ΠΎΠ·ΠΈ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊ ΠΏΠΎΠΊΠ°Π·Π²Π° срСдната пропускатСлна способност Π·Π° ΠΏΠΎΠ½Π΅ Ρ‚Ρ€ΠΈ изпълнСния Π½Π° всСки тСст. НиС тСствамС производитСлността Π½Π° TCP ΠΈ UDP (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ iperf3), Ρ€Π΅Π°Π»Π½ΠΈ прилоТСния ΠΊΠ°Ρ‚ΠΎ HTTP (с Nginx ΠΈ curl) ΠΈΠ»ΠΈ FTP (с vsftpd ΠΈ curl) ΠΈ накрая производитСлността Π½Π° прилоТСнията, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ SCP-Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ OpenSSH).

Π—Π° всички тСстовС ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ…ΠΌΠ΅ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊ (Π·Π΅Π»Π΅Π½Π° линия), Π·Π° Π΄Π° сравним производитСлността Π½Π° CNI с производитСлността Π½Π° собствСната ΠΌΡ€Π΅ΠΆΠ°. Π’ΡƒΠΊ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΡŠΡ‰Π°Ρ‚Π° скала, Π½ΠΎ Π² цвят:

  • Π–ΡŠΠ»Ρ‚ΠΎ = ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€ΠΎ
  • ΠžΡ€Π°Π½ΠΆΠ΅Π²ΠΎ = Π΄ΠΎΠ±Ρ€ΠΎ
  • Биньо = Ρ‚Π°ΠΊΠ°-Ρ‚Π°ΠΊΠ°
  • Π§Π΅Ρ€Π²Π΅Π½ΠΎ = лошо

НиС няма Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ CNI ΠΈ Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ само Π·Π° CNI с ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎΡ‚ΠΎ MTU. (Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Cilium Π½Π΅ изчислява ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ MTU, Π°ΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‰Π΅ трябва Ρ€ΡŠΡ‡Π½ΠΎ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡ‚Π΅ MTU Π΄ΠΎ 8900 във вСрсия 1.4. Π‘Π»Π΅Π΄Π²Π°Ρ‰Π°Ρ‚Π° вСрсия, 1.5, ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ²Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ.)

Π•Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)
TCP производитСлност

Всички CNI сС прСдставиха Π΄ΠΎΠ±Ρ€Π΅ Π² TCP Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ°. CNI с ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ изостава ΠΌΠ½ΠΎΠ³ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π΅ скъпо.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)
UDP производитСлност

И Ρ‚ΡƒΠΊ всички CNI сС справят Π΄ΠΎΠ±Ρ€Π΅. CNI с ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π° ΠΏΠΎΡ‡Ρ‚ΠΈ ΡΡŠΡ‰ΠΈΡ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚. Cilium Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π½Π°Π·Π°Π΄ ΠΎΡ‚ конкурСнцията, Π½ΠΎ Π΅ само 2,3% Π³ΠΎΠ» ΠΌΠ΅Ρ‚Π°Π», Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½Π΅ Π΅ лош Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚. НС забравяйтС, Ρ‡Π΅ само Cilium ΠΈ Flannel опрСдСлят MTU ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ сами ΠΈ Ρ‚ΠΎΠ²Π° са Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° конфигурация.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)

Какво Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π·Π° истинско ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅? ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΎΠ±Ρ‰Π°Ρ‚Π° производитСлност Π·Π° HTTP Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ниска ΠΎΡ‚ Ρ‚Π°Π·ΠΈ Π·Π° TCP. Π”ΠΎΡ€ΠΈ Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ HTTP с TCP, Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ…ΠΌΠ΅ iperf3 Π² TCP Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ°, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ Π±Π°Π²Π½ΠΎ стартиранС, ΠΊΠΎΠ΅Ρ‚ΠΎ Π±ΠΈ повлияло Π½Π° HTTP Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ°. Π’ΡƒΠΊ всички ΡΠ²ΡŠΡ€ΡˆΠΈΡ…Π° Π΄ΠΎΠ±Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Π°. Kube-Ρ€ΡƒΡ‚Π΅Ρ€ΡŠΡ‚ ΠΈΠΌΠ° ясно прСдимство, Π½ΠΎ WeaveNet Π½Π΅ сС прСдстави Π΄ΠΎΠ±Ρ€Π΅: ΠΎΠΊΠΎΠ»ΠΎ 20% ΠΏΠΎ-лошо ΠΎΡ‚ Π³ΠΎΠ»ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. Cilium ΠΈ WeaveNet с ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ наистина Ρ‚ΡŠΠΆΠ½ΠΈ.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)

Π‘ FTP, Π΄Ρ€ΡƒΠ³ TCP-Π±Π°Π·ΠΈΡ€Π°Π½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ Π²Π°Ρ€ΠΈΡ€Π°Ρ‚. Flannel ΠΈ Kube-router Π²ΡŠΡ€ΡˆΠ°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°, Π½ΠΎ Calico, Canal ΠΈ Cilium са ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π½Π°Π·Π°Π΄ ΠΈ са с ΠΎΠΊΠΎΠ»ΠΎ 10% ΠΏΠΎ-Π±Π°Π²Π½ΠΈ ΠΎΡ‚ bare metal. WeaveNet изостава с Ρ†Π΅Π»ΠΈ 17%, Π½ΠΎ криптираният WeaveNet Π΅ с 40% ΠΏΡ€Π΅Π΄ криптирания Cilium.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)

Π‘ SCP ΠΌΠΎΠΆΠ΅ΠΌ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π½ΠΈ струва SSH ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ. ΠŸΠΎΡ‡Ρ‚ΠΈ всички CNI сС справят Π΄ΠΎΠ±Ρ€Π΅, Π½ΠΎ WeaveNet ΠΎΡ‚Π½ΠΎΠ²ΠΎ изостава. Cilium ΠΈ WeaveNet с ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΎ са Π½Π°ΠΉ-Π»ΠΎΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ€Π°Π΄ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΡ‚ΠΎ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ (SSH + CNI).

Π•Ρ‚ΠΎ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° с Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)

ΠšΠΎΠ½ΡΡƒΠΌΠ°Ρ†ΠΈΡ Π½Π° рСсурси

Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° сравним ΠΊΠ°ΠΊ CNI консумира рСсурси ΠΏΡ€ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ натоварвания (ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° TCP трансфСр, 10 Gbps). Π’ тСстовСтС Π·Π° производитСлност сравнявамС CNI с Π³ΠΎΠ» ΠΌΠ΅Ρ‚Π°Π» (Π·Π΅Π»Π΅Π½Π° линия). Π—Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° рСсурси, Π½Π΅ΠΊΠ° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ чист Kubernetes (Π»ΠΈΠ»Π°Π²Π° линия) Π±Π΅Π· CNI ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ рСсурси консумира CNI.

Π”Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. Π•Ρ‚ΠΎ срСдната стойност Π·Π° RAM Π½Π° Π²ΡŠΠ·Π»ΠΈΡ‚Π΅ (с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ кСша) Π² MB ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)
ΠšΠΎΠ½ΡΡƒΠΌΠ°Ρ†ΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚

Flannel ΠΈ Kube-router ΠΏΠΎΠΊΠ°Π·Π°Ρ…Π° ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ - само 50 MB. Calico ΠΈ Canal ΠΈΠΌΠ°Ρ‚ ΠΏΠΎ 70. WeaveNet явно консумира ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ останалитС - 130 MB, Π° Cilium ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ†Π΅Π»ΠΈ 400.
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ консумацията Π½Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° процСсора. Π—Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ: Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΏΠΎΠΊΠ°Π·Π²Π° Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈ, Π° ppm, тоСст 38 ppm Π·Π° β€žΠ³ΠΎΠ»ΠΎ ΠΆΠ΅Π»ΡΠ·ΠΎβ€œ Π΅ 3,8%. Π•Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)
ΠšΠΎΠ½ΡΡƒΠΌΠ°Ρ†ΠΈΡ Π½Π° процСсора

Calico, Canal, Flannel ΠΈ Kube-router са ΠΌΠ½ΠΎΠ³ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ Π½Π° процСсора - само с 2% ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Kubernetes Π±Π΅Π· CNI. WeaveNet изостава Π΄Π°Π»Π΅Ρ‡ с Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ 5%, слСдван ΠΎΡ‚ Cilium със 7%.

Π•Ρ‚ΠΎ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСсурси:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚

Π’Π°Π±Π»ΠΈΡ†Π° с всички Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)
ΠžΠ±Ρ‰ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ°

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ послСдната част Ρ‰Π΅ ΠΈΠ·ΠΊΠ°ΠΆΠ° ΠΌΠΎΠ΅Ρ‚ΠΎ субСктивно ΠΌΠ½Π΅Π½ΠΈΠ΅ Π·Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅. НС забравяйтС, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊ тСства пропускатСлната способност само Π½Π° Π΅Π΄Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ малък ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ (3 възСла). НС сС ΠΏΡ€ΠΈΠ»Π°Π³Π° Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ (<50 възли) ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ.

ΠŸΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ слСднитС CNI Π² зависимост ΠΎΡ‚ сцСнария:

  • Π˜ΠΌΠ°Ρ‚Π΅ Π»ΠΈ във вашия ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ възли с ΠΌΠ°Π»ΠΊΠΎ рСсурси (няколко GB RAM, няколко ядра) ΠΈ няматС Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° сигурност - ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π±Π°Ρ€Ρ…Π΅Ρ‚. Π’ΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π°ΠΉ-Ρ€Π΅Π½Ρ‚Π°Π±ΠΈΠ»Π½ΠΈΡ‚Π΅ CNI. И Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с голямо Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ (amd64, arm, arm64 ΠΈ Π΄Ρ€.). Π’ допълнСниС, Ρ‚ΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π΄Π²Π°Ρ‚Π° (другият Π΅ Cilium) CNI, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π΄Π° опрСдСлят MTU, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ Π½ΠΈΡ‰ΠΎ. Kube-Ρ€ΡƒΡ‚Π΅Ρ€ΡŠΡ‚ ΡΡŠΡ‰ΠΎ Π΅ подходящ, Π½ΠΎ Π½Π΅ Π΅ стандартСн ΠΈ Ρ‰Π΅ трябва Ρ€ΡŠΡ‡Π½ΠΎ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ MTU.
  • Ако Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π·Π° бСзопасност, Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ WeaveNet. НС забравяйтС Π΄Π° посочитС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° MTU, Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ jumbo frames, ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ, ΠΊΠ°Ρ‚ΠΎ посочитС ΠΏΠ°Ρ€ΠΎΠ»Π° Ρ‡Ρ€Π΅Π· ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° срСдата. Но Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° Π·Π°Π±Ρ€Π°Π²ΠΈΡ‚Π΅ Π·Π° производитСлността - Ρ‚ΠΎΠ²Π° Π΅ Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ.
  • Π—Π° Π½ΠΎΡ€ΠΌΠ°Π»Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π°ΠΌΠ΅Ρ€ΠΈΠΊΠ°Π½. Π’ΠΎΠ·ΠΈ CNI сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡˆΠΈΡ€ΠΎΠΊΠΎ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ инструмСнти Π·Π° внСдряванС Π½Π° Kubernetes (Kops, Kubespray, Rancher ΠΈ Π΄Ρ€.). ΠšΠ°ΠΊΡ‚ΠΎ ΠΏΡ€ΠΈ WeaveNet, Π½Π΅ забравяйтС Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ MTU Π² ConfigMap, Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ jumbo frames. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° рСсурси, производитСлност ΠΈ сигурност.

И накрая, ΡΡŠΠ²Π΅Ρ‚Π²Π°ΠΌ Π²ΠΈ Π΄Π° слСдитС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Ρ†ΠΈΠ»ΠΈΡƒΠΌΠ°. Π’ΠΎΠ·ΠΈ CNI ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Π΅ΠΊΠΈΠΏ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡŠΡ€Ρ…Ρƒ тСхния ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, спСстяванС Π½Π° рСсурси, производитСлност, сигурност, Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅...) ΠΈ ΠΈΠΌΠ°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ интСрСсни ΠΏΠ»Π°Π½ΠΎΠ²Π΅.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ° Π½Π° Kubernetes Network Plugin (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Актуализирано: Π°ΠΏΡ€ΠΈΠ» 2019 Π³.)
Π’ΠΈΠ·ΡƒΠ°Π»Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° CNI

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€