Π’ΠΎΠ²Π° Π΅ ΠΌΠΎΡΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΡΡΠ²ΠΎ, ΠΈΡΠΊΠ°ΠΌ Π΄Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π° Π΅ΠΊΠΈΠΏΠ° Π½Π° Cilium: ΠΌΠΎΠΌΡΠ΅ΡΠ°ΡΠ° ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡ ΠΈ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΠΌ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈΡΠ΅.
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΎΡ Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ 2018 Π³
ΠΡΠΎ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ ΠΎΡΡΠΎΠ³Π°Π²Π° (Π°ΠΊΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΡΠ΅):
Flannel ΠΎΡΡΠ°Π²Π° Π½Π°ΠΉ-Π±ΡΡΠ·ΠΈΡΡ ΠΈ ΠΏΡΠΎΡΡ CNI ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΈ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅.
Romana Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°, Π·Π°ΡΠΎΠ²Π° Ρ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ ΠΌΠ΅ ΠΎΡ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°.
WeaveNet Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π·Π° Ingress ΠΈ Egress! ΠΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΅ Π½Π°ΠΌΠ°Π»ΡΠ»Π°.
Π Calico Π²ΡΠ΅ ΠΎΡΠ΅ ΡΡΡΠ±Π²Π° ΡΡΡΠ½ΠΎ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° (MTU) Π·Π° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. Calico ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄Π²Π΅ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° CNI, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΡΠ΅ Π±Π΅Π· ΠΎΡΠ΄Π΅Π»Π½ΠΎ ETCD Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅:
- ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π² Kubernetes API ΠΊΠ°ΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ (ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° < 50 Π²ΡΠ·Π΅Π»Π°);
- ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π² Kubernetes API ΠΊΠ°ΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ Ρ Typha ΠΏΡΠΎΠΊΡΠΈ Π·Π° ΠΎΠ±Π»Π΅ΠΊΡΠ°Π²Π°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° K8S API (ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° > 50 Π²ΡΠ·Π΅Π»Π°).
Calico ΠΎΠ±ΡΠ²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°
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.
Π©Π΅ ΠΎΠΏΠΈΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ° Π² ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΠΊΠ°Π»Π°:
ΠΠ·Π±ΠΎΡ Π½Π° CNI Π·Π° Π±Π΅Π½ΡΠΌΠ°ΡΠΊ
Π’ΠΎΠ²Π° Π΅ Π±Π΅Π½ΡΠΌΠ°ΡΠΊ ΡΠ°ΠΌΠΎ Π·Π° CNI ΠΎΡ ΡΠΏΠΈΡΡΠΊΠ° Π² ΡΠ°Π·Π΄Π΅Π»Π°
Π©Π΅ ΡΡΠ°Π²Π½ΠΈΠΌ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 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 ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ Π΄ΠΆΡΠΌΠ±ΠΎ ΡΠ°ΠΌΠΊΠΈ:
ΠΠ°ΠΊ MTU Π²Π»ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ?
ΠΠΈΠ΄ΡΡ ΠΌΠ΅ ΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΠΆΠ΅Π½ Π΅ MTU Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΡΠ΅Π³Π° Π½Π΅ΠΊΠ° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ Π½Π°ΡΠΈΡΠ΅ CNI Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ:
CNI Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡΠΊΡΠΈΠ²Π° MTU
ΠΡΠ°ΡΠΈΠΊΠ°ΡΠ° ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ MTU Π·Π° Calico, Canal, Kube-router ΠΈ WeaveNet Π·Π° ΠΎΠΏΡΠΈΠΌΠ°Π»Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. Cilium ΠΈ Flannel ΡΡΠΏΡΡ Π° ΡΠ°ΠΌΠΈ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ MTU Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ
Π©Π΅ ΡΡΠ°Π²Π½ΠΈΠΌ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° CNI Π² Π΄Π²Π° Π°ΡΠΏΠ΅ΠΊΡΠ°: ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π½Π° Kubernetes (Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΡΠ΅Π°Π»Π½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅, Π° Π½Π΅ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ).
Π‘Π°ΠΌΠΎ Π΄Π²Π΅ CNI ΠΊΡΠΈΠΏΡΠΈΡΠ°Ρ Π΄Π°Π½Π½ΠΈ: Cilium ΠΈ WeaveNet. Π¨ΠΈΡΡΠΎΠ²Π°Π½Π΅ WeaveNet Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΡΡΠ΅Π· Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΎΠ»Π°ΡΠ° Π·Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° CNI ΡΡΠ΅Π΄Π°. IN
Π©ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°, ΡΠ΅ ΡΡΠΏΡΡ Π° Calico, Canal, Cilium ΠΈ WeaveNet, Π² ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π²Π»ΠΈΠ·Π°Π½Π΅ ΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅. ΠΠ° Kube-ΡΡΡΠ΅Ρ ΠΈΠΌΠ° ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ°ΠΌΠΎ Π·Π° Ingress ΠΈ Π±Π°ΡΡ Π΅Ρ ΠΠ·ΠΎΠ±ΡΠΎ Π½ΡΠΌΠ° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ.
ΠΡΠΎ ΠΎΠ±ΡΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ:
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ ΡΠ΅ΡΡΠ° Π·Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ°
ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡ
Π’ΠΎΠ·ΠΈ Π±Π΅Π½ΡΠΌΠ°ΡΠΊ ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΡΠ΅Π΄Π½Π°ΡΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π·Π° ΠΏΠΎΠ½Π΅ ΡΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΡ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅ΡΡ. ΠΠΈΠ΅ ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° TCP ΠΈ UDP (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ iperf3), ΡΠ΅Π°Π»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠΎ HTTP (Ρ Nginx ΠΈ curl) ΠΈΠ»ΠΈ FTP (Ρ vsftpd ΠΈ curl) ΠΈ Π½Π°ΠΊΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ SCP-Π±Π°Π·ΠΈΡΠ°Π½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΡΡΠ²ΡΡ OpenSSH).
ΠΠ° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡ ΠΌΠ΅ Π±Π΅Π½ΡΠΌΠ°ΡΠΊ (Π·Π΅Π»Π΅Π½Π° Π»ΠΈΠ½ΠΈΡ), Π·Π° Π΄Π° ΡΡΠ°Π²Π½ΠΈΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° CNI Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ°. Π’ΡΠΊ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΡΡΠ°ΡΠ° ΡΠΊΠ°Π»Π°, Π½ΠΎ Π² ΡΠ²ΡΡ:
- ΠΡΠ»ΡΠΎ = ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠΎ
- ΠΡΠ°Π½ΠΆΠ΅Π²ΠΎ = Π΄ΠΎΠ±ΡΠΎ
- Π‘ΠΈΠ½ΡΠΎ = ΡΠ°ΠΊΠ°-ΡΠ°ΠΊΠ°
- Π§Π΅ΡΠ²Π΅Π½ΠΎ = Π»ΠΎΡΠΎ
ΠΠΈΠ΅ Π½ΡΠΌΠ° Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ CNI ΠΈ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΡΠ°ΠΌΠΎ Π·Π° CNI Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎΡΠΎ MTU. (ΠΠ°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Cilium Π½Π΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ MTU, Π°ΠΊΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ ΡΡΡΠ±Π²Π° ΡΡΡΠ½ΠΎ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡΠ΅ MTU Π΄ΠΎ 8900 Π²ΡΠ² Π²Π΅ΡΡΠΈΡ 1.4. Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ, 1.5, ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ.)
ΠΡΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅:
TCP ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ
ΠΡΠΈΡΠΊΠΈ CNI ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡ Π° Π΄ΠΎΠ±ΡΠ΅ Π² TCP Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°. CNI Ρ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΈΠ·ΠΎΡΡΠ°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ, Π·Π°ΡΠΎΡΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ΡΠΎ Π΅ ΡΠΊΡΠΏΠΎ.
UDP ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ
Π ΡΡΠΊ Π²ΡΠΈΡΠΊΠΈ CNI ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡ Π΄ΠΎΠ±ΡΠ΅. CNI Ρ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π° ΠΏΠΎΡΡΠΈ ΡΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ. Cilium Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π½Π°Π·Π°Π΄ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡΡΠ°, Π½ΠΎ Π΅ ΡΠ°ΠΌΠΎ 2,3% Π³ΠΎΠ» ΠΌΠ΅ΡΠ°Π», ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ Π΅ Π»ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ. ΠΠ΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅, ΡΠ΅ ΡΠ°ΠΌΠΎ Cilium ΠΈ Flannel ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ MTU ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΡΠ°ΠΌΠΈ ΠΈ ΡΠΎΠ²Π° ΡΠ° ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
ΠΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π·Π° ΠΈΡΡΠΈΠ½ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅? ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΎΠ±ΡΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π·Π° HTTP Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π½ΠΈΡΠΊΠ° ΠΎΡ ΡΠ°Π·ΠΈ Π·Π° TCP. ΠΠΎΡΠΈ Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ HTTP Ρ TCP, Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Ρ ΠΌΠ΅ iperf3 Π² TCP Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ Π±Π°Π²Π½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ΅ΡΠΎ Π±ΠΈ ΠΏΠΎΠ²Π»ΠΈΡΠ»ΠΎ Π½Π° HTTP Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°. Π’ΡΠΊ Π²ΡΠΈΡΠΊΠΈ ΡΠ²ΡΡΡΠΈΡ Π° Π΄ΠΎΠ±ΡΠ° ΡΠ°Π±ΠΎΡΠ°. Kube-ΡΡΡΠ΅ΡΡΡ ΠΈΠΌΠ° ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ, Π½ΠΎ WeaveNet Π½Π΅ ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ Π΄ΠΎΠ±ΡΠ΅: ΠΎΠΊΠΎΠ»ΠΎ 20% ΠΏΠΎ-Π»ΠΎΡΠΎ ΠΎΡ Π³ΠΎΠ»ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅. Cilium ΠΈ WeaveNet Ρ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ Π½Π°ΠΈΡΡΠΈΠ½Π° ΡΡΠΆΠ½ΠΈ.
Π‘ FTP, Π΄ΡΡΠ³ TCP-Π±Π°Π·ΠΈΡΠ°Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ Π²Π°ΡΠΈΡΠ°Ρ. Flannel ΠΈ Kube-router Π²ΡΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°, Π½ΠΎ Calico, Canal ΠΈ Cilium ΡΠ° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π½Π°Π·Π°Π΄ ΠΈ ΡΠ° Ρ ΠΎΠΊΠΎΠ»ΠΎ 10% ΠΏΠΎ-Π±Π°Π²Π½ΠΈ ΠΎΡ bare metal. WeaveNet ΠΈΠ·ΠΎΡΡΠ°Π²Π° Ρ ΡΠ΅Π»ΠΈ 17%, Π½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈΡΡ WeaveNet Π΅ Ρ 40% ΠΏΡΠ΅Π΄ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈΡ Cilium.
Π‘ SCP ΠΌΠΎΠΆΠ΅ΠΌ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π½ΠΈ ΡΡΡΡΠ²Π° SSH ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ΡΠΎ. ΠΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ CNI ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡ Π΄ΠΎΠ±ΡΠ΅, Π½ΠΎ WeaveNet ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΈΠ·ΠΎΡΡΠ°Π²Π°. Cilium ΠΈ WeaveNet Ρ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΎ ΡΠ° Π½Π°ΠΉ-Π»ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΠ°Π΄ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΡΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ (SSH + CNI).
ΠΡΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅:
ΠΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈ
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΡΡΠ°Π²Π½ΠΈΠΌ ΠΊΠ°ΠΊ CNI ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° ΡΠ΅ΡΡΡΡΠΈ ΠΏΡΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ (ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° TCP ΡΡΠ°Π½ΡΡΠ΅Ρ, 10 Gbps). Π ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΡΠ°Π²Π½ΡΠ²Π°ΠΌΠ΅ CNI Ρ Π³ΠΎΠ» ΠΌΠ΅ΡΠ°Π» (Π·Π΅Π»Π΅Π½Π° Π»ΠΈΠ½ΠΈΡ). ΠΠ° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈ, Π½Π΅ΠΊΠ° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΡΠΈΡΡ Kubernetes (Π»ΠΈΠ»Π°Π²Π° Π»ΠΈΠ½ΠΈΡ) Π±Π΅Π· CNI ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° CNI.
ΠΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΠΎ ΡΡΠ΅Π΄Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π·Π° RAM Π½Π° Π²ΡΠ·Π»ΠΈΡΠ΅ (Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π±ΡΡΠ΅ΡΠΈΡΠ΅ ΠΈ ΠΊΠ΅ΡΠ°) Π² MB ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅.
ΠΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ
Flannel ΠΈ Kube-router ΠΏΠΎΠΊΠ°Π·Π°Ρ
Π° ΠΎΡΠ»ΠΈΡΠ½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ - ΡΠ°ΠΌΠΎ 50 MB. Calico ΠΈ Canal ΠΈΠΌΠ°Ρ ΠΏΠΎ 70. WeaveNet ΡΠ²Π½ΠΎ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ - 130 MB, Π° Cilium ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅Π»ΠΈ 400.
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. ΠΠ°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΎ: Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠΎΠΊΠ°Π·Π²Π° Π½Π΅ ΠΏΡΠΎΡΠ΅Π½ΡΠΈ, Π° ppm, ΡΠΎΠ΅ΡΡ 38 ppm Π·Π° βΠ³ΠΎΠ»ΠΎ ΠΆΠ΅Π»ΡΠ·ΠΎβ Π΅ 3,8%. ΠΡΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅:
ΠΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°
Calico, Canal, Flannel ΠΈ Kube-router ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° - ΡΠ°ΠΌΠΎ Ρ 2% ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Kubernetes Π±Π΅Π· CNI. WeaveNet ΠΈΠ·ΠΎΡΡΠ°Π²Π° Π΄Π°Π»Π΅Ρ Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ 5%, ΡΠ»Π΅Π΄Π²Π°Π½ ΠΎΡ Cilium ΡΡΡ 7%.
ΠΡΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈ:
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ
Π’Π°Π±Π»ΠΈΡΠ° Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ:
ΠΠ±ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΠ°ΡΡ ΡΠ΅ ΠΈΠ·ΠΊΠ°ΠΆΠ° ΠΌΠΎΠ΅ΡΠΎ ΡΡΠ±Π΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅ Π·Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅. ΠΠ΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅, ΡΠ΅ ΡΠΎΠ·ΠΈ Π±Π΅Π½ΡΠΌΠ°ΡΠΊ ΡΠ΅ΡΡΠ²Π° ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ ΡΠ°ΠΌΠΎ Π½Π° Π΅Π΄Π½Π° Π²ΡΡΠ·ΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΡΠΊ ΠΊΠ»ΡΡΡΠ΅Ρ (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 ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π΅Π½ Π΅ΠΊΠΈΠΏ, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΡ Ρ ΡΠ΅Ρ Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ (ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΏΠ΅ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, Π³ΡΡΠΏΠΈΡΠ°Π½Π΅...) ΠΈ ΠΈΠΌΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΠΏΠ»Π°Π½ΠΎΠ²Π΅.
ΠΠΈΠ·ΡΠ°Π»Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° CNI
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com