á€áááºááŸá¬ áá»áœááºá¯ááºá á¡ááºááááºááŒá
áºáááºá
ááááá¯á¶ážá¡áá±áá²á·á Cilium á¡ááœá²á·ááᯠáá»á±ážáá°ážáááºáá»ááºáá«áááº- áá±á¬ááºá»á¬ážááœá±á áá»áœááºáá±á¬á·áºááᯠáááºááá áºá á±á¬áá·áºááŒáá·áºáá±áž script ááœá±ááᯠá á áºáá±ážááŒá®áž ááŒááºáá±ážáá²á·áááºá
2018 áá¯ááŸá Ạááá¯áááºáá¬áááááºážá áá¬ááœá±ááŒá±á¬ááºážáá²ááœá¬ážáá²á
á€áááºááŸá¬ ááá¯á¡áá»áááºááŸá á ááŒá±á¬ááºážáá²ááœá¬ážááẠ(áááºá áááºáááºá á¬ážáá«á-)
Flannel ááẠá¡ááŒááºáááºáá¯á¶ážááŸáá·áº á¡ááá¯ážááŸááºážáá¯á¶áž CNI á¡ááºáá¬áá±á·á áºá¡ááŒá Ạáá»ááºááŸááá±áá±á¬áºáááºáž ááœááºáááºáá°áá«ááá»á¬ážááŸáá·áº áá¯ááºááŸááºááŒááºážááᯠááá¶á·ááá¯ážááá¯ááºáá±ážáá«á
Romana ááᯠááá¶á·ááá¯ážáá±á¬á·áá«á ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠá á¶áááºááŸááºáá»ááºá០áááºááŸá¬ážááá¯ááºáá«ááŒá®á
ááᯠWeaveNet ááẠIngress ááŸáá·áº Egress á¡ááœáẠááœááºáááºáá°áá«ááá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá áá«áá±ááá·áº áá¯ááºáá¯ááºá áœááºážá¡á¬áž áá»áááºážááœá¬ážáááºá
Calico ááœááºá á¡áá±á¬ááºážáá¯á¶ážá áœááºážáá±á¬ááºáááºá¡ááœáẠáááºááẠá¡áá»á¬ážáá¯á¶áž packet á¡ááœááºá¡á á¬áž (MTU) ááᯠááá¯ááºááá¯áẠconfigure áá¯ááºááẠááá¯á¡ááºáá±ážáááºá Calico ááẠCNI áááºáááºááŒááºážá¡ááœáẠááœá±ážáá»ááºá áá¬ááŸá áºáá¯ááᯠáá±ážáá±á¬ááºáá¬ážáá±á¬ááŒá±á¬áá·áº áá®ážááŒá¬áž ETCD repository ááá«áá² áááºáá¯ááºáá±á¬ááºááá¯ááºáááº-
- áá±áá¬ááá¯ááŸá±á¬ááºááŸá¯á¡ááŒá ẠKubernetes API ááœáẠá¡ááŒá±á¡áá±ááᯠááááºážáááºážááŒááºáž (á¡á á¯á¡áá±ážá¡ááœááºá¡á á¬áž < 50 nodes);
- K8S API (á¡á á¯á¡áá±áž á¡ááœááºá¡á á¬áž > 50 nodes) ááœáẠáááºá¡á¬ážáá»á±á¬á·áá«ážá á±ááẠTypha proxy ááŒáá·áº áá±áá¬ááá¯ááŸá±á¬ááºááŸá¯á¡ááŒá ẠKubernetes API ááœáẠááááºážáááºážááŒááºážá
Calico á áá±á¬ááºáá¶ááŒá±á¬ááºáž ááŒá±áá¬áá²á·áááºá
ááᯠCilium ááẠáá¯ááºááŸááºááŒááºážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá Cilium ááẠIPSec á¥áááºááá¯ááºáá±á«ááºážáá»á¬ážááŒáá·áº áá¯ááºááŸááºááŒááºážááᯠáá¶á·ááá¯ážáá±ážááŒá®áž áá¯ááºááŸááºáá¬ážáá±á¬ WeaveNet ááœááºáááºá¡ááœáẠá¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá áºáá¯ááᯠáá±ážáá«áááºá ááá¯á·áá±á¬áº WeaveNet ááẠá á¬ááŸááºá áá áºááœáá·áºáá¬ážááá·áº Cilium ááẠááá¯ááŒááºáááºá
Cilium ááẠbuilt-in ETCD á¡á±á¬áºááá±áá¬ááŒá±á¬áá·áº ááá¯á¡áá«ááœáẠááá¯ááá¯ááœááºáá°á áœá¬ á¡áá¯á¶ážááŒá¯ááá¯ááºáá«ááŒá®á
Cilium á¡ááœá²á·ááẠááŸááºáá¬ááºáá¯á¶ážá áœá²ááŸá¯ááŸáá·áº CPU áá¯ááºáá»á ááááºáá»á¬ážááᯠáá»áŸá±á¬á·áá»ááŒááºážááŒáá·áº áááºážá CNI á០á¡áá±ážáá»áááºá¡áá»áá¯á·ááᯠáá»á¯á¶á·ááẠááŒáá¯ážá á¬ážáá²á·áá±á¬áºáááºáž áááºážáááŒáá¯ááºáááºáá»á¬ážááẠááá¯ááá¯áá±á«á·áá«ážáá²ááŒá áºáááºá
á á¶ááœáŸááºážáááºá ááºááŸá¯
á á¶áááºááŸááºáá»ááºááᯠ10 Gb Supermicro ááá¯ááºááŒáá·áº á¡áá¯ááá¯ááºáá±á¬ Supermicro áá¬áá¬áá¯á¶ážáá¯ááœáẠáá¯ááºáá±á¬ááºáááºá áá¬áá¬áá»á¬ážááᯠpassive DAC SFP+ ááŒáá¯ážáá»á¬ážááŸáááá·áº switch ááá¯á· ááá¯ááºááá¯ááºáá»áááºáááºáá¬ážááŒá®áž jumbo frames (MTU 9000) ááŸáá·áºáá°áá®áá±á¬ VLAN áá±á«áºááœáẠconfigure áá¯ááºáá¬ážáááºá
Kubernetes 1.14.0 ááᯠDocker 18.04 ááŒáá·áº Ubuntu 18.09.2 LTS ááœáẠááá·áºááœááºážáá¬ážááẠ(á€áá¯ááºáá±ááŸá¯ááœáẠáá°áááºáž Docker áá¬ážááŸááºáž)á
áá»áá¯ážááœá¬ážááá¯ááºááŸá¯ááᯠááŒáŸáá·áºáááºáááºá áá»áœááºá¯ááºááá¯á·ááẠáá¬á áá¬ááᯠááá node ááœáẠá¡ááŒá²áááºáž configure áá¯ááºáááºá áá¯ááá server ááœáẠbenchmark á server á¡á áááºá¡ááá¯ááºážááŸáá·áº client part ááᯠááááááœáẠáá¬ážááŸáááẠáá¯á¶ážááŒááºáá²á·áááºá áá«ááá¯áá¯ááºááá¯á·á Kubernetes ááŒáá·áºáá»ááºááŸá¯ááŸá¬ NodeSelector ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá«á áá±ážááœáẠá á¶ááŸá¯ááºážááááºáá»á¬ážááᯠáá±á¬áºááŒáá«áááº-
á á¶ááœáŸááºážáá áºáá¯á¡ááœáẠCNI ááᯠááœá±ážáá»ááºááŒááºážá
áááºážááẠááá¹áááŸáá
á¬áááºážá០CNI á¡ááœááºáᬠá
á¶áááºááŸááºáá»ááºáá
áºáá¯ááŒá
áºáááºá
á¡á±á¬ááºáá« CNI áá»á¬ážááᯠááŸáá¯ááºážááŸááºáá«áááºá
- Calico v3.6
- Canal v3.6 (ááœááºáááºáá»áááºáááºááŸá¯á¡ááœáẠá¡áááá¡á¬ážááŒáá·áº Flannel + Calico ááᯠfirewall á¡ááŒá áº)
- Cilium 1.4.2
- ááááºááẠ0.11.0
- Kube-router 0.2.5
- WeaveNet 2.5.1
ustanovka
CNI ááᯠáááºáááºááẠááá¯ááá¯ááœááºáá°áá±á áá»áœááºá¯ááºááá¯á·á ááááŠážáááºáá»áẠááá¯ááá¯áá±á¬ááºážááœááºáá±ááŒá áºáááºá á á¶áááºááŸááºáá»ááºáá»á¬ážá០CNI áá»á¬ážá¡á¬ážáá¯á¶ážááẠ(á¡áááá·áºáá áºáᯠááá¯á·ááá¯áẠááŸá áºáá¯ááŒáá·áº) ááá·áºááœááºážááẠá¡ááœááºááœááºáá°áááºá
áá»áœááºá¯ááºááá¯á·ááŒá±á¬áá²á·ááá·áºá¡ááá¯ááºážá áá¬áá¬áá»á¬ážááŸáá·áº ááá¯ááºáá»á¬ážááᯠjumbo frames áá»á¬ážááŒáá·áº configure áá¯ááºáá¬ážáá«ááẠ(áá»áœááºá¯ááºááá¯á·ááẠMTU ááᯠ9000 ááá¯á· áááºááŸááºáááº)á á¡áááºáá¬áá»á¬ážáááœá²á·á ááºážáá¯á¶á¡áá±á«áºá¡ááŒá±áá¶á CNI á០MTU ááá¯á¡ááá¯á¡áá»á±á¬ááºáá¯á¶ážááŒááºáá«ááá»áœááºá¯ááºááá¯á·áá»á±á¬áºááœáŸááºáá«áááºá ááá¯á·áá±á¬áºá Cilium ááŸáá·áº Flannel ááᬠáááºážááᯠá á®áá¶ááá·áºááœá²áááºá áá»áẠCNI áá»á¬ážááẠá¡ááá¯á¡áá»á±á¬áẠMTU ááŸá¬ááœá±ááœá±á·ááŸáááŸá¯ááᯠááá·áºááœááºážááẠGitHub ááœáẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááŸááá±á¬áºáááºáž Calicoá Canal ááŸáá·áº Kube-router á¡ááœáẠConfigMap ááá¯ááŒá±á¬ááºážáá²ááŒááºáž ááá¯á·ááá¯áẠWeaveNet á¡ááœáẠáááºáááºážáá»ááºááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯á¡á¬áž ááŒááºáááºážááŒááºážááŒáá·áº áááºážááᯠááá¯ááºááá¯ááºá á®á ááºáá±ážáá«áááºá
MTU áááŸááºááŒááºáž ááŒá¿áá¬á áá¬áá²á á€áá¯á¶ááŒááºážááẠáá¯á¶áá± MTU ááŸáá·áº jumbo frames áá»á¬ážááŒáá·áº WeaveNet á¡ááŒá¬áž ááŒá¬ážáá¬ážáá»ááºááᯠááŒáááº-
MTU ááẠthroughput ááá¯áááºááá¯á·á¡áá»áá¯ážáááºáá±á¬ááºááááºážá
á áœááºážáá±á¬ááºáááºá¡ááœáẠMTU ááẠáááºáá»áŸá¡áá±ážááŒá®ážáááºááᯠáá»áœááºá¯ááºááá¯á·ááŒááºááœá±á·áá²á·áááŒá®áž ááá¯á¡áá« áá»áœááºá¯ááºááá¯á·á CNI áá»á¬ážá áááºážááᯠá¡ááá¯á¡áá»á±á¬áẠáá¯á¶ážááŒááºááá¯ááºáá¯á¶ááᯠááŒáá·áºááŒáá«á áá¯á·á
CNI ááẠMTU ááᯠá¡ááá¯á¡áá»á±á¬áẠááááŸááááºá
á¡áá±á¬ááºážáá¯á¶ážá áœááºážáá±á¬ááºáááºá¡ááœáẠCalicoá Canalá Kube-router ááŸáá·áº WeaveNet á¡ááœáẠMTU ááᯠáááºááŸááºááẠááá¯á¡ááºááŒá±á¬ááºáž ááááºá áá±á¬áºááŒáááºá Cilium ááŸáá·áº Flannel ááá¯á·ááẠáááºááá·áºáááºáááºáá»á¬ážááá«áá² MTU ááᯠááŸááºáááºá áœá¬ áá¯á¶ážááŒááºááá¯ááºáá²á·ááŒáááºá
áá¯á¶ááœá¯á¶ááŸá¯
áá»áœááºá¯ááºááá¯á·ááẠCNI áá¯á¶ááŒá¯á¶áá±ážááᯠá¡ááœááºá¡ááŒááºááŸá áºáá¯ááŒáá·áº ááŸáá¯ááºážááŸááºáá«áááº- áá¯ááºááœáŸáá·áºáá±á¬áá±áá¬ááᯠá á¬ááŸááºááá¯ááºááŸá¯ááŸáá·áº Kubernetes ááœááºáááºáá°áá«ááá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºáž (á¡á á áºá¡ááŸááºá ááºážáááºááŸá¯áá»á¬ážá á á¬ááœááºá á¬áááºážáá»á¬ážááá¯ááºáá²) ááá¯á¡ááŒá±áá¶á ááŸáá¯ááºážááŸááºáá«áááºá
áá±áá¬ááᯠCNI ááŸá
áºáá¯áᬠáá¯ááºááŸááºáá¬ážáááº- Cilium ááŸáá·áº WeaveNetá áá¯ááºááŸááºááŒááºáž WeaveNet áá¯ááºááŸááºááŒááºáž á
áá¬ážááŸááºááᯠCNI áááºáááºážáá»áẠááŒá±á¬ááºážáá²ááŸá¯á¡ááŒá
ẠáááºááŸááºááŒááºážááŒáá·áº ááœáá·áºáá¬ážáááºá IN
ááœááºáááºáá±á«áºáá á®ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ááœáẠá¡á±á¬ááºááŒááºáá²á·áááºá Calicoá Canalá Cilium ááŸáá·áº WeaveNetIngress ááŸáá·áº Egress á ááºážáá»ááºážáá»á¬ážááᯠááẠconfigure áá¯ááºááá¯ááºáá±á¬á ááá¯á· Kube-router Ingress á¡ááœááºáᬠá ááºážáá»ááºážááœá± ááŸááááºá Flannel ááœááºáááºáá°áá«ááá»á¬áž áá¯á¶ážááááŸááá«á
á€áááºááŸá¬ á á¯á á¯áá±á«ááºážááááºáá»á¬ážááŒá áºáááº-
áá±ážáááºážáá±áž á
áœááºážáá±á¬ááºááẠá
á¶ááœáŸááºážááááºáá»á¬áž
ááœááºááá¯ááºáá±áž
á€á á¶ááŸá¯ááºážááẠá ááºážáááºááŸá¯áá áºáá¯á á®á á¡áááºážáá¯á¶ážáá¯á¶ážááŒáááºáá»á±á¬áº áá»ááºážáá»áŸááŒááºáááºážááŸá¯ááᯠááŒááááºá áá»áœááºá¯ááºááá¯á·ááẠTCP ááŸáá·áº UDP (iperf3 ááá¯á¡áá¯á¶ážááŒá¯á)á HTTP (Nginx ááŸáá·áº curl) áá²á·ááá¯á· áááá·áºá¡ááá®áá±ážááŸááºážáá»á¬áž ááá¯á·ááá¯áẠFTP (vsftpd ááŸáá·áº curl) ááŸáá·áº áá±á¬ááºáá¯á¶ážááœáẠSCP-based encryption (áááá¯ááºážááá·áºááŸáá·áºáá¬áᬠOpenSSH ááá¯á¡áá¯á¶ážááŒá¯á á¡ááá®áá±ážááŸááºážá áœááºážáá±á¬ááºáááºááᯠá ááºážáááºáá«áááºá
á ááºážáááºááŸá¯á¡á¬ážáá¯á¶ážá¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠCNI á áœááºážáá±á¬ááºáááºááᯠáá°áááºážááœááºáááºá áœááºážáá±á¬ááºáááºááŸáá·áº ááŸáá¯ááºážááŸááºááẠááá¹áá¯á¡áá»ááºážááŸá®ážáá±á¬ á á¶áááºááŸááºáá»áẠ(á¡á áááºážáá±á¬ááºááá¯ááºáž) ááᯠáá¯ááºáá±á¬ááºáá²á·áá«áááºá á€áá±áá¬ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáá°áá®áá±á¬á¡ááá¯ááºážá¡áá¬ááᯠá¡áá¯á¶ážááŒá¯áá±á¬áºáááºáž á¡áá±á¬ááºá¡á¬ážááŒáá·áº
- á¡áá«áá±á¬áẠ= á¡ááœááºáá±á¬ááºážáááºá
- áááá¹áá±á¬áº = áá±á¬ááºážáááºá
- á¡ááŒá¬ = áá«áá±á·á«
- á¡áá® = ááá±á¬ááºáž
áá»áœááºá¯ááºááá¯á·ááẠááŸá¬ážááœááºážá áœá¬ááŒááºáááºáá¬ážáá±á¬ CNI áá»á¬ážááᯠááá°áá² ááŸááºáááºáá±á¬ MTU áá»á¬ážááŒáá·áº CNI áá»á¬ážá¡ááœáẠááááºáá»á¬ážááá¯áᬠááŒááá«áááºá (ááŸááºáá»ááº- Cilium ááẠáá¯ááºááŸááºááŒááºážááᯠááœáá·áºáá¬ážáá»áŸáẠMTU ááᯠááŸááºáááºá áœá¬ áááœááºáá»ááºááá¯ááºáá±á¬ááŒá±á¬áá·áº áá¬ážááŸááºáž 8900 ááœáẠMTU ááᯠ1.4 ááá¯á· ááá¯ááºááá¯ááºáá»áŸá±á¬á·áá»ááááºááŒá áºáá«áááºá áá±á¬ááºáá¬ážááŸááºáž 1.5 ááẠáááºážááᯠá¡ááá¯á¡áá»á±á¬áẠáá¯ááºáá±á¬ááºáá«áááºá)
á€áááºááŸá¬ ááááºáá»á¬ážááŒá áºáááº-
TCP á
áœááºážáá±á¬ááºáááº
CNI áá»á¬ážá¡á¬ážáá¯á¶ážááẠTCP á á¶ááŸá¯ááºážááœáẠáá±á¬ááºážááœááºá áœá¬ áá¯ááºáá±á¬ááºáá²á·áááºá áá¯ááºááŸááºááŒááºážááẠá á»á±ážááŒá®ážáá±á¬ááŒá±á¬áá·áº CNI ááẠáá»áŸáá¯á·ááŸááºáá¯ááºáá¯ááºááŒááºážááẠáá»á¬ážá áœá¬áá±á¬ááºáá»áá»ááºáá±áá«áááºá
UDP á
áœááºážáá±á¬ááºáááº
á€ááœááºáááºáž CNI áá»á¬ážá¡á¬ážáá¯á¶áž áá±á¬ááºážááœááºá áœá¬ áá¯ááºáá±á¬ááºáá±áá«áááºá á á¬ááŸááºá áá áºááŒáá·áº CNI ááẠáá°áá®áá±á¬ááááºááᯠááŒááá²á·áááºá Cilium ááẠááŒáá¯ááºááá¯ááºááŸá¯áá±á¬ááºááœáẠá¡áááºážáááºáá¬ááŸááá±á¬áºáááºáž áááºážááẠááá¹áá¯ááá¬á 2,3% áá¬ááŒá áºáá±á¬ááŒá±á¬áá·áº ááááºááá±á¬ááºážáá«á Cilium ááŸáá·áº Flannel áá¬áá»áŸáẠMTU ááᯠáááºážááá¯á·ááá¯ááºááá¯áẠááŸááºáááºá áœá¬ áá¯á¶ážááŒááºáá²á·ááŒá®áž áááºážááá¯á·ááẠá¡ááá¯ááœá²á·á ááºážááŸá¯áá áºáá¯áá»áŸááá«áá² áááºážááá¯á·áááááºáá»á¬ážááŒá áºááŒá±á¬ááºáž ááá±á·áá«ááŸáá·áºá
áááá·áº application ááá±á¬? áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºáž HTTP á¡ááœáẠá¡áá¯á¶ážá á¯á¶á áœááºážáá±á¬ááºáááºááẠTCP ááẠá¡áááºážáááºáááá·áºáááºá HTTP ááŒáá·áº ááẠTCP ááᯠââá¡áá¯á¶ážááŒá¯áá»áŸááºááẠHTTP á á¶ááœáŸááºážááᯠááááá¯ááºá á±ááá·áº ááŸá±ážááœá±ážáá±á¬ á¡á ááŒá¯ááŒááºážááᯠááŸá±á¬ááºááŸá¬ážááẠáá»áœááºá¯ááºááá¯á·ááẠTCP á á¶ááœáŸááºážááœáẠiperf3 ááᯠááŒááºáááºáááºááŸááºáá¬ážáá«áááºá áá°ááá¯ááºážá áá®ááŸá¬ á¡áá¯ááºáá±á¬ááºážáá±á¬ááºážáá¯ááºáá²á·áááºá Kube-router ááœáẠááŸááºážááŸááºážáááºážáááºáž á¡á¬ážáá¬áá»áẠááŸááááºá ááá¯á·áá±á¬áº WeaveNet ááẠáá±á¬ááºážá áœá¬ áá áœááºážáá±á¬ááºááá¯ááºáá²á·áá«- ááá¹áá¯ááá«áá±á¬ ááá¹áá¯ááẠ20% ááá·áº ááá¯ááá¯ážáááºá áá¯ááºááŸááºááŒááºážáá«ááŸááá±á¬ Cilium ááŸáá·áº WeaveNet ááẠá¡ááŸááºááááºááẠáááºážáááºážááœááºáá±á¬ááºážáááºá
FTPá á¡ááŒá¬ážáá±á¬ TCP-based protocol ááŒáá·áº ááááºáá»á¬áž ááœá²ááŒá¬ážáááºá Flannel ááŸáá·áº Kube-router ááẠá¡áá¯ááºááŒá áºáááºá ááá¯á·áá±á¬áº Calicoá Canal ááŸáá·áº Cilium ááẠá¡áááºážáááºáá±á¬ááºáá»áá±ááŒá®áž ááá¹áá¯ááá¬ááẠ10% ááá·áºááŸá±ážááœá±ážáá«áááºá WeaveNet ááẠ17% áááºáá»á¬ážá áœá¬áá±á¬ááºáá»áá±áá±á¬áºáááºáž encrypt áá¯ááºáá¬ážáá±á¬ WeaveNet ááẠencrypt áá¯ááºáá¬ážáá±á¬ Cilium ááẠ40% áááºáá¬ááœááºáááºá
SCP ááŒáá·áº SSH encryption áááºáá»áŸáá¯ááºáá»áááºááᯠáá»áœááºá¯ááºááá¯á·áá»ááºáá»ááºážááŒááºááá¯ááºáááºá CNIs á¡á¬ážáá¯á¶ážáá®ážáá«ážááẠáá±á¬ááºážááœááºáá±á¬áºáááºáž WeaveNet ááẠáá±á¬ááºáá»ááºáá±ááŒááºáááºá á á¬ááŸááºá áá áºáá«ááŸááá±á¬ Cilium ááŸáá·áº WeaveNet ááá¯á·ááẠááŸá áºáááºáá¯ááºááŸááºá áá Ạ(SSH + CNI) ááŒá±á¬áá·áº á¡ááá¯ážáá¯á¶ážáᯠáá»áŸá±á¬áºááá·áºááááºá
á€áááºááŸá¬ ááááºáá»á¬ážááŸáá·áºá¡áá° á¡áá»ááºážáá»á¯ááºááá¬ážááŒá áºáááº
ááá¶áá¬á áá¯á¶ážá áœá²ááŸá¯
ááᯠCNI ááẠááŒá®ážáá¬ážáá±á¬áááºáá¯ááºáááºááá¯ážáá»á¬ážá¡á±á¬ááºááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºáá²á·ááá¯á·áá¯á¶ážá áœá²ááẠ(TCP ááœáŸá²ááŒá±á¬ááºážááŸá¯á¡ááœááºážá 10 Gbps) ááᯠááŸáá¯ááºážááŸááºááŒáá·áºááŒáá«á áá¯á·á á áœááºážáá±á¬ááºáááºá ááºážáááºááŸá¯áá»á¬ážááœáẠáá»áœááºá¯ááºááá¯á·ááẠCNI ááᯠááá¹áá¯á¡ááœáẠ(á¡á áááºážáá±á¬ááºááá¯ááºáž) ááŸáá·áº ááŸáá¯ááºážááŸááºáá«áááºá á¡áááºážá¡ááŒá áºáá¯á¶ážá áœá²ááŸá¯á¡ááœááºá CNI ááá«áá² ááá·áºá ááºáá±á¬ Kubernetes (ááááºážáá±á¬ááºááá¯ááºáž) ááá¯ááŒáááŒá®áž á¡ááá¯á¡áááºážá¡ááŒá ẠCNI áááºáá»áŸáá¯á¶ážá áœá²áááºááᯠááŒáá·áºááŒáá«á áá¯á·á
Memory áá²á· á ááá¯ááºáá¡á±á¬ááºá á€áááºááŸá¬ ááœáŸá²ááŒá±á¬ááºážá áẠMB ááŸá node áá»á¬ážá RAM (buffers ááŸáá·áº cache áá»á¬áž á¡áá«á¡áááº) á¡ááœáẠáá»ááºážáá»áŸáááºááá¯ážááŒá áºáááºá
ááŸááºáá¬ááºáá¯á¶ážá
áœá²ááŸá¯
Flannel ááŸáá·áº Kube-router ááẠáá±á¬ááºážááœááºáá±á¬ááááºáá»á¬ážááá¯ááŒááá²á·ááẠ- 50 MB áá¬ááŸááááºá Calico ááŸáá·áº Canal áá
áºáá¯á
á®ááœáẠ70 ááŸááááºá WeaveNet ááẠá¡ááŒá¬ážáá°áá»á¬ážááẠ130 MB ááá¯áá»á¬ážááŒá®áž Cilium ááẠ400 á¡áá á¡áá¯á¶ážááŒá¯áááºá
á¡áᯠCPU á¡áá»áááºáá¯á¶ážá
áœá²ááŸá¯ááᯠá
á
áºáá±ážááŒáá·áºáá¡á±á¬ááºá ááŸááºáá¬ážááœááºáá¯á¶ááŒááºážááœáẠáá¬ááá¯ááºááŸá¯ááºážáá»á¬ážááᯠáááŒáá±á¬áºáááºáž ppm ááá¯áááºááŸá¬ "áá¶ááá¬" á¡ááœáẠ38 ppm ááẠ3,8% ááŒá
áºáááºá á€áááºááŸá¬ ááááºáá»á¬ážááŒá
áºáááº-
CPU áá¯á¶ážá
áœá²ááŸá¯
Calicoá Canalá Flannel ááŸáá·áº Kube-router ááá¯á·ááẠCNI ááá«áá² Kubernetes ááẠ2% áá¬ááœááºáá±á¬ CPU áááá±á¬ááºáááºá WeaveNet ááẠá¡ááᯠ5% ááŸáá·áºáá±á¬ááºááœáẠCilium 7% ááŒáá·áº áá±á¬ááºáá»áá»ááºáá±áá«áááºá
á€áááºááŸá¬ á¡áááºážá¡ááŒá Ạáá¯á¶ážá áœá²ááŸá¯á á¡áá»ááºážáá»á¯áẠááŒá áºáá«áááºá
ááááºáá»á¬ážááá¯
ááááºá¡á¬ážáá¯á¶ážáá«áá±á¬ ááá¬áž-
áá±áá¯áá»á
á¶ááŸá¯ááºážááááºáá»á¬áž
áá±á¬ááºáá»ááº
áá±á¬ááºáá¯á¶ážá¡ááá¯ááºážááŸá¬ ááááºá¡áá±á«áº áá»áœááºáá±á¬á·áºáá²á· áá¯áá¹ááá¡ááŒááºááᯠáá±á¬áºááŒáá«áááºá á€á á¶ááŸá¯ááºážááẠá¡ááœááºáá±ážáááºáá±á¬ á¡á á¯á¡áá±áž (3 nodes) áá±á«áºááœáẠáá»áááºáááºááŸá¯áá áºáá¯á ááŒááºáááºážááŸá¯ááá¯áᬠá ááºážáááºááŒá±á¬ááºáž áááááá«á áááºážááẠááŒá®ážáá¬ážáá±á¬ á¡á á¯á¡áá±ážáá»á¬áž (<50 nodes) ááá¯á·ááá¯áẠá¡ááŒáá¯ááºáá»áááºáááºááŸá¯áá»á¬ážááŸáá·áº ááááºááá¯ááºáá«á
á¡ááŒá±á¡áá±áá±á«áºáá°áááºá á¡á±á¬ááºáá« CNI áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááŒá¶ááŒá¯ááá¯áá«áááº-
- ááá·áºá¡á á¯á¡áá±ážááœáẠááŸááá«ááá¬ážá á¡áááºážá¡ááŒá áºá¡áááºážáááºááŸááá±á¬ node áá»á¬áž (RAM á¡áá»á¬ážá¡ááŒá¬áž GBá core á¡áá»á¬ážá¡ááŒá¬áž) ááŸáá·áºáááºáá¯á¶ááŒá¯á¶áá±ážá¡ááºá¹áá«áááºáá»á¬ážáááá¯á¡ááºáá« - ááœá±ážáá»ááºáá«á Flannel. áááºážááẠáá¯ááºáá»á ááááºá¡áááºáá¬áá¯á¶áž CNI áá»á¬ážáá²á០áá áºáá¯ááŒá áºáááºá áááºážááẠáááá¯áá¬áááºáá¬ááŒá±á¬ááºáá»á¬ážá áœá¬ (amd64á áááºáá±á¬ááºážá arm64 á áááºááŒáá·áº) ááŸáá·áº ááœá²áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá ááá¯á·á¡ááŒááºá áááºážááẠMTU ááá¯á¡ááá¯á¡áá»á±á¬ááºáá¯á¶ážááŒááºááá¯ááºáá±á¬ CNI ááŸá áºáá¯á¡áááºááŸáá áºáá¯ááŒá áºááẠ(á¡ááŒá¬ážáá áºáá¯ááẠCilium) ááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áºáááºáá¬á០configure áá¯ááºáááºáááá¯á¡ááºáá«á Kube-router ááẠááá·áºáá»á±á¬áºáá±á¬áºáááºáž áááºážááẠá á¶ááŸá¯ááºážá¡ááá¯ááºážááá¯ááºáá±á¬ááŒá±á¬áá·áº MTU ááᯠááá¯ááºááá¯áẠconfigure áá¯ááºááẠááá¯á¡ááºáá«áááºá
- ááá¯á¡ááºáá»áŸáẠááœááºáááºááᯠá á¬ááŸááºáá«á áá¯á¶ááŒá¯á¶áá±ážá¡ááœááºá áá°áá«á WeaveNet. áááºááẠjumbo frames áá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áá±áá«á MTU á¡ááœááºá¡á á¬ážááᯠáááºááŸááºááẠááá±á·áá«ááŸáá·áºá áááºáááºážáá»áẠááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯ááŸáá áºááá·áº á áá¬ážááŸááºááᯠáááºááŸááºááŒááºážááŒáá·áº áá¯ááºááŸááºááŒááºážááᯠááœáá·áºáá«á áá«áá±ááá·áº á áœááºážáá±á¬ááºáááºááᯠáá±á·ááœá¬ážáá¬á ááá¯áá±á¬ááºážáá«ááẠ- á¡á²áá«á áá¯ááºááŸááºááŒááºážáá²á· áá¯ááºáá»á ááááºáá«á
- á¡ááœáẠáá¯á¶ááŸááºá¡áá¯á¶ážááŒá¯ááŸá¯ áá«á¡ááŒá¶áá±áž Calico. ဠCNI ááᯠKubernetes ááŒáá·áºáá»ááºáá±ážáááááá¬á¡áá»áá¯ážáá»áá¯áž (Kopsá Kubesprayá Rancher á áááºááŒáá·áº) ááœááºááœááºáá»ááºá áœá¬á¡áá¯á¶ážááŒá¯áá«áááºá WeaveNet áá²á·ááá¯á·ááẠjumbo frames ááá¯á¡áá¯á¶ážááŒá¯áá«á ConfigMap ááœáẠMTU ááᯠconfigure áá¯ááºáááºáá±áá»á¬áá«á á±á áááºážááẠá¡áááºážá¡ááŒá áºáá¯á¶ážá áœá²ááŸá¯á á áœááºážáá±á¬ááºáááºááŸáá·áº áá¯á¶ááŒá¯á¶áá±ážá¡ááœáẠáááá±á¬ááºááŸá¯ááŸááá±á¬ áááºá á¯á¶áá¯á¶ážáááááá¬áá áºáá¯ááŒá áºáááºá
áá±á¬ááºáá¯á¶ážá¡áá±áá²á· ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááᯠááá¯ááºáá¬ááá¯á· á¡ááŒá¶ááŒá¯áá»ááºáá«áááºá cilium. ဠCNI ááœáẠáááºážááá¯á·ááá¯ááºáá¯ááºáá»á¬áž (á¡ááºá¹áá«áááºáá»á¬ážá á¡áááºážá¡ááŒá áºáá»áœá±áá¬ááŸá¯á á áœááºážáá±á¬ááºáááºá áá¯á¶ááŒá¯á¶áá±ážá á¡á á¯á¡áá±ážááŒá¯áá¯ááºááŒááºáž...) ááœáẠá¡ááœááºáááºááŒáœáá±á¬á¡ááœá²á·áá áºáá¯ááŸáááŒá®áž áááºážááá¯á·ááœáẠá¡ááœááºá áááºáááºá á¬ážááœááºáá±á¬ááºážáá±á¬ á¡á á®á¡á ááºáá»á¬ážááŸááááºá
CNI ááœá±ážáá»ááºááŸá¯á¡ááœáẠVisual Diagram
source: www.habr.com