Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)
Ова Π΅ ΠΌΠΎΠ΅Ρ‚ΠΎ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π΅Π½ Ρ€Π΅ΠΏΠ΅Ρ€, кој сСга Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Kubernetes 1.14 со Π½Π°Ρ˜Π½ΠΎΠ²Π°Ρ‚Π° CNI Π²Π΅Ρ€Π·ΠΈΡ˜Π° ΠΎΠ΄ Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°.

ΠŸΡ€Π΅Π΄ сè, сакам Π΄Π° ΠΌΡƒ сС Π·Π°Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π°ΠΌ Π½Π° Ρ‚ΠΈΠΌΠΎΡ‚ Π½Π° Cilium: ΠΌΠΎΠΌΡ†ΠΈΡ‚Π΅ ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Π° Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π°ΠΌ ΠΈ ΠΊΠΎΡ€Π΅Π³ΠΈΡ€Π°ΠΌ скриптитС Π·Π° слСдСњС Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°Ρ‚Π°.

Π¨Ρ‚ΠΎ сС смСни ΠΎΠ΄ Π½ΠΎΠ΅ΠΌΠ²Ρ€ΠΈ 2018 Π³ΠΎΠ΄ΠΈΠ½Π°

Π•Π²Π΅ ΡˆΡ‚ΠΎ сС смСни ΠΎΡ‚Ρ‚ΠΎΠ³Π°Ρˆ (Π°ΠΊΠΎ Π²Π΅ интСрСсира):

Flannel останува Π½Π°Ρ˜Π±Ρ€Π·ΠΈΠΎΡ‚ ΠΈ Π½Π°Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΠΎΡ‚ CNI ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ, Π½ΠΎ сСпак Π½Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° ΠΌΡ€Π΅ΠΆΠ½ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΈ ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅.

Π ΠΎΠΌΠ°Π½Π° повСќС Π½Π΅ Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½Π°, ΠΏΠ° ја Ρ‚Ρ€Π³Π½Π°Π²ΠΌΠ΅ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ΠΎΡ‚.

WeaveNet сСга ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° ΠΌΡ€Π΅ΠΆΠ½ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π·Π° Ingress ΠΈ Egress! Но, продуктивноста Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½Π°.

Π’ΠΎ Calico, сСпак Ρ‚Ρ€Π΅Π±Π° Ρ€Π°Ρ‡Π½ΠΎ Π΄Π° ја ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ максималната Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΡ‚ (MTU) Π·Π° Π½Π°Ρ˜Π΄ΠΎΠ±Ρ€ΠΈ пСрформанси. Calico Π½ΡƒΠ΄ΠΈ Π΄Π²Π΅ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ Π½Π° CNI, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π±Π΅Π· посСбно ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ Π·Π° ETCD:

  • ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π²ΠΎ Kubernetes API ΠΊΠ°ΠΊΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ (Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° кластСрот < 50 јазли);
  • ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π²ΠΎ Kubernetes API ΠΊΠ°ΠΊΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ со Typha прокси Π·Π° Π΄Π° сС ослободи ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° K8S API (Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° кластСрот > 50 јазли).

Калико најави ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° Π²Ρ€Π²ΠΎΡ‚ Π½Π° Istio Π·Π° бСзбСдност Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°.

Cilium сСга ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅! Cilium ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅ со IPSec Ρ‚ΡƒΠ½Π΅Π»ΠΈ ΠΈ Π½ΡƒΠ΄ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°Π½Π°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ° WeaveNet. Но, WeaveNet Π΅ ΠΏΠΎΠ±Ρ€Π· ΠΎΠ΄ Cilium со ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅.

Cilium сСга Π΅ полСсСн Π·Π° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΠΎΡ‚ ETCD ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.

Π’ΠΈΠΌΠΎΡ‚ Π½Π° Cilium сС ΠΎΠ±ΠΈΠ΄Π΅ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° Ρ‚Π΅ΠΆΠΈΠ½Π° ΠΎΠ΄ ΡΠ²ΠΎΡ˜ΠΎΡ‚ CNI со Π½Π°ΠΌΠ°Π»ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ°Ρ‚Π° Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° ΠΈ Ρ‚Ρ€ΠΎΡˆΠΎΡ†ΠΈΡ‚Π΅ Π·Π° процСсорот, Π½ΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΈ сè ΡƒΡˆΡ‚Π΅ сС полСсни.

Π Π΅ΠΏΠ΅Ρ€ контСкст

Π Π΅ΠΏΠ΅Ρ€ΠΎΡ‚ сС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° Π½Π° Ρ‚Ρ€ΠΈ Π½Π΅Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Supermicro сСрвСри со 10 Gb Supermicro ΠΏΡ€Π΅ΠΊΠΈΠ½ΡƒΠ²Π°Ρ‡. Π‘Π΅Ρ€Π²Π΅Ρ€ΠΈΡ‚Π΅ сС ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ со ΠΏΡ€Π΅ΠΊΠΈΠ½ΡƒΠ²Π°Ρ‡ΠΎΡ‚ ΠΏΡ€Π΅ΠΊΡƒ пасивни DAC SFP+ ΠΊΠ°Π±Π»ΠΈ ΠΈ сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ Π½Π° истиот VLAN со џамбо Ρ€Π°ΠΌΠΊΠΈ (MTU 9000).

Kubernetes 1.14.0 инсталиран Π½Π° Ubuntu 18.04 LTS со Docker 18.09.2 (стандардна Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° Docker Π²ΠΎ ΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅).

Π—Π° Π΄Π° ја ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΠΌΠ΅ рСпродуктивноста, Ρ€Π΅ΡˆΠΈΠ²ΠΌΠ΅ сСкогаш Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ господарот Π½Π° ΠΏΡ€Π²ΠΈΠΎΡ‚ јазол, Π΄Π° Π³ΠΎ поставувамС Π΄Π΅Π»ΠΎΡ‚ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ΠΎΡ‚ Π½Π° сСрвСрот Π½Π° Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ сСрвСр, Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈΠΎΡ‚. Π—Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠ²Π°, користимС NodeSelector Π²ΠΎ Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ°Ρ‚Π° Π½Π° Kubernetes.

НиС ќС Π³ΠΈ опишСмС Ρ€Π΅ΠΏΠ΅Ρ€Π½ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ Π½Π° слСдната скала:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)

Π˜Π·Π±ΠΎΡ€ Π½Π° CNI Π·Π° Ρ€Π΅ΠΏΠ΅Ρ€

Ова Π΅ Ρ€Π΅ΠΏΠ΅Ρ€ само Π·Π° CNI ΠΎΠ΄ списокот Π²ΠΎ Π΄Π΅Π»ΠΎΡ‚ Π·Π° создавањС Π½Π° Π΅Π΄Π΅Π½ Π³Π»Π°Π²Π΅Π½ кластСр со kubeadm ΠŸΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ ја ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½Π°Ρ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚Π΅Ρ. Од 9 CNI, ќС Π·Π΅ΠΌΠ΅ΠΌΠ΅ само 6: ќС Π³ΠΈ исклучимС ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ Ρ‚Π΅ΡˆΠΊΠΎ сС инсталираат ΠΈ/ΠΈΠ»ΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π±Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° спорСд Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° (Romana, Contiv-VPP ΠΈ JuniperContrail/TungstenFabric).

ЌС Π³ΠΈ спорСдимС слСднитС CNI:

  • Калико v3.6
  • Canal v3.6 (Π²ΠΎ ΡΡƒΡˆΡ‚ΠΈΠ½Π° Flannel Π·Π° Π²ΠΌΡ€Π΅ΠΆΡƒΠ²Π°ΡšΠ΅ + Calico ΠΊΠ°ΠΊΠΎ Π·Π°ΡˆΡ‚ΠΈΡ‚Π΅Π½ Ρ•ΠΈΠ΄)
  • Π¦ΠΈΠ»ΠΈΡƒΠΌ 1.4.2
  • Π€Π»Π°Π½Π΅Π»Π΅Π½ 0.11.0
  • ΠšΡƒΠ±Π΅-Ρ€ΡƒΡ‚Π΅Ρ€ 0.2.5
  • WeaveNet 2.5.1

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

ΠšΠΎΠ»ΠΊΡƒ Π΅ полСсно Π΄Π° сС инсталира CNI, Ρ‚ΠΎΠ»ΠΊΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π°Ρ€ ќС Π±ΠΈΠ΄Π΅ Π½Π°ΡˆΠΈΠΎΡ‚ ΠΏΡ€Π² Π²ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ. Π‘ΠΈΡ‚Π΅ CNI ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ΠΎΡ‚ сС ΠΌΠ½ΠΎΠ³Ρƒ лСсни Π·Π° ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ (со Π΅Π΄Π½Π° ΠΈΠ»ΠΈ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ).

Како ΡˆΡ‚ΠΎ Ρ€Π΅ΠΊΠΎΠ²ΠΌΠ΅, сСрвСритС ΠΈ ΠΏΡ€Π΅ΠΊΠΈΠ½ΡƒΠ²Π°Ρ‡ΠΎΡ‚ сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ со ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΈ џамбо Ρ€Π°ΠΌΠΊΠΈ (Π³ΠΎ поставивмС MTU Π½Π° 9000). Π‘ΠΈ Π±ΠΈΠ»Π΅ ΡΡ€Π΅ΡœΠ½ΠΈ Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ CNI автоматски Π³ΠΎ ΠΎΠ΄Ρ€Π΅Π΄ΠΈ MTU Π²Ρ€Π· основа Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΈΡ‚Π΅. Π‘Π΅ΠΏΠ°ΠΊ, ΠΎΠ²Π° ΡƒΡΠΏΠ΅Π°Ρ˜Π° само Π½Π° Π§ΠΈΠ»ΠΈΡƒΠΌ ΠΈ Π€Π»Π°Π½Π΅Π». ΠžΡΡ‚Π°Π½Π°Ρ‚ΠΈΡ‚Π΅ CNI ΠΈΠΌΠ°Π°Ρ‚ Π±Π°Ρ€Π°ΡšΠ° Π½Π° GitHub Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π°Ρ‚ автоматско ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°ΡšΠ΅ Π½Π° MTU, Π½ΠΎ Π½ΠΈΠ΅ ќС Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ Ρ€Π°Ρ‡Π½ΠΎ со ΠΌΠ΅Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° ConfigMap Π·Π° Calico, Canal ΠΈ Kube-Ρ€ΡƒΡ‚Π΅Ρ€ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π° Π·Π° WeaveNet.

Π¨Ρ‚ΠΎ Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚ со Π½Π΅Ρ‚ΠΎΡ‡Π½ΠΈΠΎΡ‚ MTU? Овој Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌ ја ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π° Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΏΠΎΠΌΠ΅Ρ“Ρƒ WeaveNet со ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΈ стандардни MTU ΠΈ џамбо Ρ€Π°ΠΌΠΊΠΈ:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)
Како MTU влијаС Π½Π° пропусната моќ?

Π’ΠΈΠ΄ΠΎΠ²ΠΌΠ΅ ΠΊΠΎΠ»ΠΊΡƒ Π΅ Π²Π°ΠΆΠ΅Π½ MTU Π·Π° пСрформанситС, сСга Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π½Π°ΡˆΠΈΡ‚Π΅ CNI автоматски Π³ΠΎ ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ Ρ‚ΠΎΠ°:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)
CNI автоматски Π³ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° MTU

Π“Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΎΡ‚ ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π° Π΄Π΅ΠΊΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ MTU Π·Π° Calico, Canal, Kube-Ρ€ΡƒΡ‚Π΅Ρ€ ΠΈ WeaveNet Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΈ пСрформанси. Cilium ΠΈ Flannel ΠΌΠΎΠΆΠ΅Π° самитС ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° Π³ΠΎ ΠΎΠ΄Ρ€Π΅Π΄Π°Ρ‚ MTU Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ поставки.

бСзбСдност

ЌС ја спорСдимС бСзбСдноста Π½Π° CNI Π²ΠΎ Π΄Π²Π° аспСкта: способност Π·Π° ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° прСнСсСнитС ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΌΡ€Π΅ΠΆΠ½ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚Π΅Ρ (Π²Ρ€Π· основа Π½Π° вистински тСстови, Π° Π½Π΅ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°).

Π‘Π°ΠΌΠΎ Π΄Π²Π° CNI ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°Π°Ρ‚ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ: Cilium ΠΈ WeaveNet. Π•Π½ΠΊΡ€ΠΈΠΏΡ†ΠΈΡ˜Π° WeaveNet ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ со ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°Ρ‚Π° Π·Π° ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅ ΠΊΠ°ΠΊΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π° CNI. Π’Πž Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° WeaveNet Π³ΠΎ ΠΎΠΏΠΈΡˆΡƒΠ²Π° Π½Π° ΠΊΠΎΠΌΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Π½ Π½Π°Ρ‡ΠΈΠ½, Π½ΠΎ сè Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ Сдноставно. Π•Π½ΠΊΡ€ΠΈΠΏΡ†ΠΈΡ˜Π° Π¦ΠΈΠ»ΠΈΡƒΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ со ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, со ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Ρ‚Π°Ρ˜Π½ΠΈ Π½Π° Kubernetes ΠΈ ΠΏΡ€Π΅ΠΊΡƒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° daemonSet (ΠΌΠ°Π»ΠΊΡƒ ΠΏΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Π½ΠΎ ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ Π²ΠΎ WeaveNet, Π½ΠΎ Cilium ΠΈΠΌΠ° Ρ‡Π΅ΠΊΠΎΡ€ ΠΏΠΎ Ρ‡Π΅ΠΊΠΎΡ€ инструкции).

Π¨Ρ‚ΠΎ сС однСсува Π΄ΠΎ ΡΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΌΡ€Π΅ΠΆΠ½Π°Ρ‚Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°, Ρ‚ΠΈΠ΅ ΡƒΡΠΏΠ΅Π°Ρ˜Π° Calico, Canal, Cilium ΠΈ WeaveNet, Π²ΠΎ кој ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° Π²Π»Π΅Π· ΠΈ ΠΈΠ·Π»Π΅Π·. Π—Π° ΠšΡƒΠ±Π΅-Ρ€ΡƒΡ‚Π΅Ρ€ ΠΈΠΌΠ° ΠΏΡ€Π°Π²ΠΈΠ»Π° само Π·Π° Ingress, ΠΈ Π€Π»Π°Π½Π΅Π» Π’ΠΎΠΎΠΏΡˆΡ‚ΠΎ Π½Π΅ΠΌΠ° ΠΌΡ€Π΅ΠΆΠ½ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ.

Π•Π²Π΅ Π³ΠΈ Π²ΠΊΡƒΠΏΠ½ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (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 (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)
ИзвСдба на TCP

Π‘ΠΈΡ‚Π΅ CNI сС ΠΏΠΎΠΊΠ°ΠΆΠ°Π° Π΄ΠΎΠ±Ρ€ΠΎ Π²ΠΎ Ρ€Π΅ΠΏΠ΅Ρ€ΠΎΡ‚ Π·Π° TCP. CNI со ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³Ρƒ заостанува бидСјќи ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π΅ скапо.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)
ΠŸΠ΅Ρ€Ρ„ΠΎΡ€ΠΌΠ°Π½ΡΠΈ Π½Π° UDP

И ΠΎΠ²Π΄Π΅ Π½Π° ситС ЦНИ ΠΈΠΌ ΠΎΠ΄ΠΈ Π΄ΠΎΠ±Ρ€ΠΎ. CNI со ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅ Π³ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ° рСчиси истиот Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚. Π¦ΠΈΠ»ΠΈΡƒΠΌΠΎΡ‚ Π΅ ΠΌΠ°Π»ΠΊΡƒ Π·Π°Π΄ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π°, Π½ΠΎ Π΅ само 2,3% ΠΎΠ΄ Π³ΠΎΠ» ΠΌΠ΅Ρ‚Π°Π», Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Π½Π΅ Π΅ лош Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚. НС Π·Π°Π±ΠΎΡ€Π°Π²Π°Ρ˜Ρ‚Π΅ Π΄Π΅ΠΊΠ° само Cilium ΠΈ Flannel самитС ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π³ΠΎ ΠΎΠ΄Ρ€Π΅Π΄ΠΈΠ»Π΅ MTU, Π° ΠΎΠ²Π° сС Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)

Π¨Ρ‚ΠΎ Π΅ со вистинска Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°? Како ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π²ΠΊΡƒΠΏΠ½ΠΈΡ‚Π΅ пСрформанси Π·Π° HTTP сС ΠΌΠ°Π»ΠΊΡƒ пониски ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ Π·Π° TCP. Π”ΡƒΡ€ΠΈ ΠΈ Π°ΠΊΠΎ користитС HTTP со TCP, Π½ΠΈΠ΅ Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π²ΠΌΠ΅ iperf3 Π²ΠΎ Ρ€Π΅ΠΏΠ΅Ρ€ΠΎΡ‚ TCP Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌΠ΅ Π±Π°Π²Π½ΠΎ ΡΡ‚Π°Ρ€Ρ‚ΡƒΠ²Π°ΡšΠ΅ ΡˆΡ‚ΠΎ Π±ΠΈ влијаСло Π½Π° Ρ€Π΅ΠΏΠ΅Ρ€ΠΎΡ‚ HTTP. Π‘ΠΈΡ‚Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ˜Π° Π΄ΠΎΠ±Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΎΠ²Π΄Π΅. ΠšΡƒΠ±Π΅-Ρ€ΡƒΡ‚Π΅Ρ€ΠΎΡ‚ ΠΈΠΌΠ° јасна прСдност, Π½ΠΎ WeaveNet Π½Π΅ сС ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄ΠΎΠ±Ρ€ΠΎ: ΠΎΠΊΠΎΠ»Ρƒ 20% полошо ΠΎΠ΄ Π³ΠΎΠ» ΠΌΠ΅Ρ‚Π°Π». Cilium ΠΈ WeaveNet со ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅ ΠΈΠ·Π³Π»Π΅Π΄Π°Π°Ρ‚ навистина Ρ‚Π°ΠΆΠ½ΠΎ.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)

Π‘ΠΎ FTP, Π΄Ρ€ΡƒΠ³ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° TCP, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ сС Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π°Π°Ρ‚. Flannel ΠΈ Kube-router ја Π·Π°Π²Ρ€ΡˆΡƒΠ²Π°Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°, Π½ΠΎ Calico, Canal ΠΈ Cilium заостануваат ΠΌΠ°Π»ΠΊΡƒ ΠΈ сС ΠΎΠΊΠΎΠ»Ρƒ 10% ΠΏΠΎΠ±Π°Π²Π½ΠΈ ΠΎΠ΄ Π³ΠΎΠ»ΠΈΠΎΡ‚ ΠΌΠ΅Ρ‚Π°Π». WeaveNet заостанува со Π΄ΡƒΡ€ΠΈ 17%, Π½ΠΎ ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°Π½Π°Ρ‚Π° WeaveNet Π΅ 40% ΠΏΡ€Π΅Π΄ ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°Π½Π°Ρ‚Π° Cilium.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)

Π‘ΠΎ SCP вСднаш ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ ΠΊΠΎΠ»ΠΊΡƒ Π½Π΅ Ρ‡ΠΈΠ½ΠΈ SSH Π΅Π½ΠΊΡ€ΠΈΠΏΡ†ΠΈΡ˜Π°Ρ‚Π°. РСчиси ситС CNI Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π΄ΠΎΠ±Ρ€ΠΎ, Π½ΠΎ WeaveNet ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ заостанува. Cilium ΠΈ WeaveNet со ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅ сС ΠΎΡ‡Π΅ΠΊΡƒΠ²Π°Π½ΠΎ најлоши ΠΏΠΎΡ€Π°Π΄ΠΈ Π΄Π²ΠΎΡ˜Π½ΠΎΡ‚ΠΎ ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅ (SSH + CNI).

Π•Π²Π΅ Π·Π±ΠΈΡ€Π½Π° Ρ‚Π°Π±Π΅Π»Π° со Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)

ΠŸΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ° Π½Π° рСсурси

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

Π”Π° ΠΏΠΎΡ‡Π½Π΅ΠΌΠ΅ со ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°. Π•Π²Π΅ ја просСчната врСдност Π·Π° RAM ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° Ρ˜Π°Π·Π»ΠΈΡ‚Π΅ (со исклучок Π½Π° Π±Π°Ρ„Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ ΠΊΠ΅ΡˆΠΎΡ‚) Π²ΠΎ MB Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° прСносот.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)
ΠŸΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°

Π€Π»Π°Π½Π΅Π» ΠΈ ΠšΡƒΠ±Π΅-Ρ€ΡƒΡ‚Π΅Ρ€ ΠΏΠΎΠΊΠ°ΠΆΠ°Π° ΠΎΠ΄Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ - само 50 MB. Calico ΠΈ Canal ΠΈΠΌΠ°Π°Ρ‚ ΠΏΠΎ 70. WeaveNet ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ Ρ‚Ρ€ΠΎΡˆΠΈ повСќС ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ - 130 MB, Π° Cilium користи Π΄ΡƒΡ€ΠΈ 400.
Π‘Π΅Π³Π° Π΄Π° ја ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌΠ΅ ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ°Ρ‚Π° Π½Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° процСсорот. Π’Ρ€Π΅Π΄ΠΈ Π΄Π° сС Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ: Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠΎΡ‚ Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈ, Ρ‚ΡƒΠΊΡƒ ppm, односно 38 ppm Π·Π° β€žΠ³ΠΎΠ»ΠΎ ΠΆΠ΅Π»Π΅Π·ΠΎβ€œ Π΅ 3,8%. Π•Π²Π΅ Π³ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)
ΠŸΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ° Π½Π° процСсорот

Calico, Canal, Flannel ΠΈ Kube-Ρ€ΡƒΡ‚Π΅Ρ€ΠΎΡ‚ сС ΠΌΠ½ΠΎΠ³Ρƒ Сфикасни Π²ΠΎ процСсорот - само 2% повСќС ΠΎΠ΄ Kubernetes Π±Π΅Π· CNI. WeaveNet заостанува Π΄Π°Π»Π΅ΠΊΡƒ со Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ 5%, ΠΏΠΎ ΡˆΡ‚ΠΎ слСди Cilium со 7%.

Π•Π²Π΅ Ρ€Π΅Π·ΠΈΠΌΠ΅ Π½Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ°Ρ‚Π° Π½Π° рСсурси:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)

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

Π’Π°Π±Π΅Π»Π° со ситС Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ:

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)
ΠžΠΏΡˆΡ‚ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€

Π—Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊ

Π’ΠΎ послСдниот Π΄Π΅Π» ќС Π³ΠΎ искаТам ΠΌΠΎΠ΅Ρ‚ΠΎ ΡΡƒΠ±Ρ˜Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ мислСњС Π·Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅. Π—Π°ΠΏΠΎΠΌΠ½Π΅Ρ‚Π΅ Π΄Π΅ΠΊΠ° овој Ρ€Π΅ΠΏΠ΅Ρ€ само ја тСстира пропусната моќ Π½Π° Π΅Π΄Π½Π° врска Π½Π° ΠΌΠ½ΠΎΠ³Ρƒ ΠΌΠ°Π» кластСр (3 јазли). НС сС однСсува Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ кластСри (<50 јазли) ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ врски.

ΠŸΡ€Π΅ΠΏΠΎΡ€Π°Ρ‡ΡƒΠ²Π°ΠΌ Π΄Π° Π³ΠΈ користитС слСднивС CNI Π²ΠΎ зависност ΠΎΠ΄ сцСнариото:

  • Π”Π°Π»ΠΈ ΠΈΠΌΠ°Ρ‚Π΅ Π²ΠΎ Π²Π°ΡˆΠΈΠΎΡ‚ кластСр јазли со ΠΌΠ°Π»ΠΊΡƒ рСсурси (Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ GB RAM, Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Ρ˜Π°Π΄Ρ€Π°) ΠΈ Π½Π΅ Π²ΠΈ Ρ‚Ρ€Π΅Π±Π°Π°Ρ‚ бСзбСдносни карактСристики - ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π€Π»Π°Π½Π΅Π». Ова Π΅ Π΅Π΄Π΅Π½ ΠΎΠ΄ Π½Π°Ρ˜ΠΈΡΠΏΠ»Π°Ρ‚Π»ΠΈΠ²ΠΈΡ‚Π΅ CNI. И Ρ‚ΠΎΡ˜ Π΅ ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π΅Π½ со ΡˆΠΈΡ€ΠΎΠΊ спСктар Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ (amd64, arm, arm64, ΠΈΡ‚Π½.). ΠŸΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ°, ΠΎΠ²Π° Π΅ Π΅Π΄Π½ΠΎ ΠΎΠ΄ Π΄Π²Π΅Ρ‚Π΅ (Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ Π΅ Cilium) CNI ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ автоматски Π΄Π° Π³ΠΎ ΠΎΠ΄Ρ€Π΅Π΄ΠΈ MTU, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Π½Π΅ ΠΌΠΎΡ€Π° Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ Π½ΠΈΡˆΡ‚ΠΎ. ΠšΡƒΠ±Π΅-Ρ€ΡƒΡ‚Π΅Ρ€ΠΎΡ‚ Π΅ исто Ρ‚Π°ΠΊΠ° ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½, Π½ΠΎ Π½Π΅ Π΅ стандардСн ΠΈ ќС Ρ‚Ρ€Π΅Π±Π° Ρ€Π°Ρ‡Π½ΠΎ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ MTU.
  • Ако Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°Ρ˜Ρ‚Π΅ ја ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π·Π° бСзбСдност, Π·Π΅ΠΌΠ΅Ρ‚Π΅ WeaveNet. НС Π·Π°Π±ΠΎΡ€Π°Π²Π°Ρ˜Ρ‚Π΅ Π΄Π° ја Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°Ρ‚Π° Π½Π° MTU Π°ΠΊΠΎ користитС џамбо Ρ€Π°ΠΌΠΊΠΈ ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅ со ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° ΠΏΡ€Π΅ΠΊΡƒ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π°. Но, ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΎ Π΅ Π΄Π° Π·Π°Π±ΠΎΡ€Π°Π²ΠΈΡ‚Π΅ Π½Π° пСрформанситС - Ρ‚ΠΎΠ° Π΅ Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ.
  • Π—Π° Π½ΠΎΡ€ΠΌΠ°Π»Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π’Π΅ совСтувам АмСрикан. Овој CNI Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ користСн Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° Kubernetes (Kops, Kubespray, Rancher ΠΈΡ‚Π½.). Како ΠΈ кај WeaveNet, Π½Π΅ Π·Π°Π±ΠΎΡ€Π°Π²Π°Ρ˜Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ MTU Π²ΠΎ ConfigMap Π°ΠΊΠΎ користитС џамбо Ρ€Π°ΠΌΠΊΠΈ. Π’ΠΎΠ° Π΅ ΠΌΡƒΠ»Ρ‚ΠΈΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½Π° Π°Π»Π°Ρ‚ΠΊΠ° која Π΅ Сфикасна Π²ΠΎ однос Π½Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ°Ρ‚Π° Π½Π° рСсурси, пСрформанситС ΠΈ бСзбСдноста.

И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Π΅ совСтувам Π΄Π° Π³ΠΎ слСдитС Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ Π¦ΠΈΠ»ΠΈΡƒΠΌ. Овој CNI ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ‚ΠΈΠΌ кој Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ Π½Π° Π½ΠΈΠ²Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ (карактСристики, Π·Π°ΡˆΡ‚Π΅Π΄Π° Π½Π° рСсурси, пСрформанси, бСзбСдност, ΠΊΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅...) ΠΈ ΠΈΠΌΠ°Π°Ρ‚ ΠΌΠ½ΠΎΠ³Ρƒ интСрСсни ΠΏΠ»Π°Π½ΠΎΠ²ΠΈ.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π΅ΠΏΠ΅Ρ€ Π·Π° ΠΌΡ€Π΅ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Kubernetes (CNI) Π½Π°Π΄ 10 Gbps ΠΌΡ€Π΅ΠΆΠ° (Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π½ΠΎ: Π°ΠΏΡ€ΠΈΠ» 2019 Π³ΠΎΠ΄ΠΈΠ½Π°)
Π’ΠΈΠ·ΡƒΠ΅Π»Π΅Π½ Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌ Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° CNI

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€