áá
á¨áĽá ááá ááá˘
á ááááŞáŤ á¨á˛áá¨á áĄáľáá áááľáá áĽáááááᥠáááśáš á¨áááŞáŤ áá¨áłá°áŤ áľááŞááśá˝á áĽááłáŁáŤ áĽá áĽááłáľá°áŤáá á¨áľá°áááá˘
á¨ááŹáá á 2018 ááᎠáá á°áááŻá
á¨ááŤá áá ááᎠá¨á°ááá á áá¸áá (á¨ááááľá )
Flannel ááŁá áĽá ááá á¨CNI á áááá˝ áá áááŤáᣠááá áá á ááá á¨á ááłá¨ áá¨áĽ ááá˛áá˝á áĽá ááľá áŤá á áá°áááá˘
áŽáá á¨á áá á áá á áá°áááᣠáľááá á¨á¤áá˝ááá á áľááá°áááá˘
WeaveNet á áá á¨á ááłá¨ áá¨áĽ ááá˛áá˝á á Ingress áĽá Egress áá°ááá! ááá áá áááłáááľ áááˇá.
á áŤáᎠááľáĽ á ááá á¨áá°ááá á¨ááŹáľ áá á (MTU) áá áá á áááá áĽáŤáľá áááá áŤáľáááááłáᢠáŤáᎠCNI á áááŤá áááľ á ááŤáŽá˝á áá°áŁá ᣠáľáááá áŤá á¨á°áᨠETCD áá¨ááť ááľá¨á áá˝áá á˘
- áááłá á Kubernetes á¤áá á ááľáĽ áĽáá° á¨ááἠáá¨ááť áá¨áá¸áľ (áááľá°á áá á <50 ááśá˝);
- á K8S API (áááľá°á áá á > 50 ááśá˝) áá áŤááá áááľ ááááá áááłá á Kubernetes API áĽáá° á¨ááἠáá¨ááť á¨Typha ááŽáᲠáá áá¨áá¸áľá˘
Calico áľáá á áľáłáá
á˛áá¨á á áá ááľá áŤá áá°ááá! á˛áá¨á á¨á ááá´á ááťáá˝ áá ááľá áŤá áŤáááŁá áĽá á¨á°áá°á á¨á WeaveNet á ááłá¨ áá¨áĽ áá á ááŤá áá°áŁáᢠááá áá WeaveNet ááľá ፠á¨áá á¨á˛áá¨á á¨á áá ááŁá ááá˘
á˛áá¨á á áá á áĽáŽ á á°á°áŤá ᨠETCD áŚááŹá°á ááá°ááŤáľ ááá áááá˘
á¨á˛áá¨á áĄáľá á¨áá á°á¨ áľááľáł áááłá áĽá á¨á˛áአááŞáá˝á á áááᾠᨠCNI á¨á°áá°á ááĽá°áľá áááááľ áááŻáᣠááá áá á°ááŤáŤáŞááš á ááá ááá áá¸áá˘
á¨á¤áá˝ááá á ááľ
áááŞáŤá á 10 Gb áąááááᎠááĽáŞáŤ/ááĽáŞáŤ/ááĽáŞáŤ/ááĽáŞáŤ/ááĽáŞáŤ/ááľá°áŤá¨áŤ á áŚáľáľ áááŁá áŁááá áąááááᎠá ááááŽá˝ áá áá°áŤáᢠá ááááŽáš á ááĽáł á¨ááá¨áŞáŤá áá á ááľá˛á DAC SFP+ áŹáĽáá˝ á¨á°ááá áĽá á á°ááłáłá VLAN áá á¨ááጠááŹáá˝ (MTU 9000) áá á¨á°ááአáá¸áá˘
Kubernetes 1.14.0 á áĄáĄááą 18.04 LTS á¨Docker 18.09.2 áá á°ááá (á áá á¨á°áááá ááŁáŞ Docker áľáŞáľ)á˘
áĽáá°áá ááŁááľá áááťáťá, ááłáá áááá á ááááŞáŤá ááľááá ááááľ áá ááááá ááľááá, á¨á ááááŠá á¨á¤áá˝ááá ááá á ááá°áá á áááá áá áĽá á¨á°áá ááá ááá á áŚáľá°áá áá áŤáľáááĄ. áá áá áááľá¨á, NodeSelector á Kubernetes áá°ááŤáľ ááľáĽ áĽáá áááá.
á¨á¤áá˝ááá áá¤áśá˝á á áá¨á°áá ááá áĽááááťáááĄ
áá¤áá˝ááá CNI ááá¨áĽ
áá
á ááá ááľáĽ áŤáá áááá ááľáĽ á CNI áĽáť áááŞáŤ ááá˘
á¨áá¨á°ááľá CNIs áĽáááá áŤáááĄ-
- áŤáᎠv3.6
- áŤáá v3.6 (á ááááľ Flannel áá ááłá¨ áá¨áĽ + Calico áĽáá° áá¨ááá)
- á˛áá¨á 1.4.2
- Flannel 0.11.0
- áŠá¤-áŤáá°á 0.2.5
- WeaveNet 2.5.1
á ááĽá
ᨠCNI ááŤá ááá áá, á¨áĽá á¨ááááŞáŤ áááᤠá¨á°áťá áááá. á¨á¤áá˝ááá ááá CNIáá˝ áááŤá á áŁá ááá áá¸á (á á ááľ ááá áááľ áľáááá˝)á˘
áĽáá°á°áááááᣠá ááááŽáš áĽá ááĽáŞáŤááš á¨á°ááአá¨ááጠááŹáá˝ áá áá (MTU á áá° 9000 áĽááľáááŁáá)ᢠCNI á á ááťážá˝ áá á áá á áááľá¨áľ MTU á á áŤáľ-á°á á¨áá°á á°áľá°áá˝ ááᢠááá áá áá áá á¨á°ááŁá áŠáľ á˛áá¨á áĽá áááá áĽáť áá¸áᢠá¨á°ááŠáľ CNIs á ááśáá˛á MTU áááľá ááá¨áá á GitHub áá áĽáŤááá˝ á áá¸áᣠááá áá ConfigMap á CalicoᣠCanal áĽá Kube-router á ááá¨á ááá á¨á áŤáŁá˘ á°áááá áWeaveNet á ááá áĽááá á¨áááá˘
á¨á°áłáłá° MTU á˝áá áááľáá? áá áĽááá ááá፠á WeaveNet á ááŁáŞ MTU áĽá á ááጠááŹáá˝ ááŤá¨á áŤááá ááŠááľ áŤáłáŤááĄ-
MTU á ááĽá áľ áá áá á°á˝áá áŤáłáľáŤá?
MTU áá ááťá¸á áá áŤá á á áľááá áĽáá°áá á áá°ááᣠá áá á¨áĽá CNIs áĽáá´áľ á áŤáľ-á°á áĽáá°áááľááľ áĽáááĄ-
CNI á áŤáľ-á°á MTU á áŤááá
ááŤá áĽáá°ááŤáłá¨á MTU á á Calico, Canal, Kube-router áĽá WeaveNet á áá°áťá á áááá áááá áŤáľáááááłá. á˛áá¨á áĽá áááá MTU á áĽáŤáłá¸áá áŤáááá á áá áśá˝ á áľááá ááá°á á˝áááá˘
á°á áááľ
ᨠCNI á°á áááľá á áááľ áá áłáá˝ áĽáááá áŤáá-á¨á°ááá áá¨áá á¨áááľá á á˝ááł áĽá ᨠKubernetes á ááłá¨ áá¨áĽ ááá˛áá˝á áá°áá á (á áĽááá°á áá¨áŤáá˝ áá á¨á°áá°á¨á° áĽáá á á°ááľ á áá°áá)á˘
áááľ CNIáá˝ áĽáť áá¨áá áŤáá°áĽáŠáĄá˛áá¨á áĽá ááááľá˘ ááľá ፠WeaveNet á¨á˘áááŞáá˝á ááá áá áĽáá° CNI á áŤáŁá˘ á°áááá á áááááľ á¨ááᢠááľáĽ
á¨ááľááá ááᲠá á°ááŁá áá á á°ááá¨á°á á°áłááśáá¸áá Calico, Canal, Cilium áĽá WeaveNet, á ááľáĄ ᨠIngress áĽá Egress á°ááŚá˝á áááá áá˝áá. á áŠá¤-áŤáá°á á Ingress áĽáť á°ááŚá˝ á á, áĽá Flannel ááá á¨á ááłá¨ áá¨áĽ ááá˛áá˝ á ááŤá˝ á¨ááá˘
á á ááá áá¤áśáš áĽáááĄ-
á¨á°á
áááľ á ááťá¸á á¤áá˝ááá áá¤áśá˝
áááłáááľ
áá áááá á áĽáŤááłááą á¨áá°á áá á˘áŤááľ á áśáľáľ áá á ááŤá á¨áá¤áľ áá á áŤáłáŤáᢠá¨TCP áĽá UDP (Iperf3á á áá áá)ᣠáĽáá° HTTP áŤá áĽááá°á á áááŹá˝áá˝ (á Nginx áĽá curl) ááá FTP (ᨠvsftpd áĽá curl) áĽá á áá¨á¨áťá á¨áá°áá áŞáŤ á ááťá¸áá á SCP áá á¨á°áá°á¨á° ááľá áŤá (á°áá á áĽá á áááá OpenSSHá á áá áá) áĽáááľáťááá˘
áááá áá¨áŤáá˝áŁ á¨CNI á ááťá¸áá á¨á ááá á ááłá¨ áá¨áĽ á ááťá¸á áá áááááá áŁáś á¨áĽá¨áľ áááŞáŤ (á á¨ááá´ ááľáá) á áľááááᢠáĽáá á°ááłáłá áááŞáŤ áĽáá áááá, áá á ááá:
- á˘áŤ = á áŁá áĽáŠ
- áĽááąáŤá = áĽáŠ
- á°ááŤá = áĽáá˛á - áĽáá˛á
- áá = ááĽá
á áľá á°áľ á¨á°ááአCNIáá˝á á áááľáľá áĽá á CNIáá˝ áľáááááá MTU áĽáť áĽááłáŤááᢠ(ááľáłááťáĄ á˛áá¨á á˘áááŞáá˝áá áŤááá á¤áá˛áŠá á áľááá á áŤá°ááᣠáľááá MTU á á áŤáľ 8900 áá° 1.4 ááááľ á ááŚáľá˘ á¨áááĽáá áĽáľá 1.5ᣠáá á á áŤáľ á°á áŤá°ááááá˘)
áá¤áśáš áĽáááĄ-
ááá CNIáá˝ á TCP á¤áá˝ááá ááľáĽ áĽáŠ á ááťá¸á á áłáá°ááᢠááľá ፠ááľ áľááá CNI á¨áááľá á áá áá° áá áááˇáá˘
áĽáá á°áá ááá CNIáá˝ áĽáŠ áĽá¨á°áŠ ááᢠCNI á¨áááľá á áá á°ááłáłá áá¤áľ á áłááˇáᢠá˛áá¨á á¨ááľáľáŠ á áľá°ááᣠáľáá˝ áá, ááá áá á¨áŁáś áĽá¨áľ 2,3% áĽáť áá, áľááá ááĽá áá¤áľ á áá°áá. á˛áá¨á áĽá áááá áĽáť MTU á á áľááá áĽáá°áá°á á ááṠᣠáĽá áĽááá áŤá á°á¨á᪠áá á áá¤áśáťá¸á áá¸áá˘
áľá áĽááá°á áá°áá áŞáŤáľ? áĽáá°áááá¨áąáľáŁ á á ááá á¨á¤á˝á˛á˛á á ááťá¸á á¨TCP á áľááš áŤáá° ááᢠá¤á˝á˛á˛áá á¨TCP áá áĽáľá ááá á HTCP á¤áá˝ááá ááľáĽ á¨á¤á˝á˛á˛á á¤áá˝áááá á¨áááł áááá á ááá áááľáááľ iperf3á á áá á¨áááᢠáĽáá ááá á°á áĽáŠ áľáŤ á°ááˇáᢠKube-router ááá˝ á¨áá áĽá á á áá, ááá áá WeaveNet áĽáŠ áá¤áľ á áááŁá: á¨áŁáś áĽá¨áľ 20% á¨á¨á áá. á˛áá¨á áĽá ááááľ á¨ááľá ፠áá á áŁá á¨ááŤáłáá áááľááá˘
á á¤áá˛áᣠáá á TCP áá á¨á°áá°á¨á° ááŽáśáŽáᣠáá¤áśáš áááŤáŤáᢠáááá áĽá áŠá¤-áŤáá°á áľáŤáá áŤá¨áááá, ááá áá áŤááŽ, áŤáá áĽá á˛áá¨á áľáá˝ á¨áá áá¸á áĽá á¨áŁáś áĽá¨áľ 10% áááá áá¸á. WeaveNet á 17% áŤá á áá áááˇáᣠáá á˘áááŞááľ á¨á°á°á¨áá WeaveNet á¨á°áá°á ᨠá˛áá¨á á 40% áá ááŁáá˘
á SCP á ááŤáááľ á¨á¤áľá¤áľá¤á˝ ááľá ፠áá áŤá á áĽáá°ááŤáľááŁá áá˛áŤáá áá¨áľ áĽáá˝áááᢠááá áááľ ááťáá CNIs áĽáŠ áĽá¨á°áŠ ááᣠááá áá WeaveNet áĽáá°áá áá° áá áááˇáᢠá˛áá¨á áĽá ááááľ á¨ááľá ፠áá á áľáἠááľá ፠(SSH + CNI) ááááŤáľ á áŁá ááĽá áá¸á á°áĽá áá á ááá˘
áá¤áąá á¨áŤá áá áá፠á°áá á¨áĽ áá¸áááĄ-
á¨ááĽáľ áááł
á áá CNI á á¨áŁáľ á¸ááá˝ (á TCP á˝ááá áá áľáŁ 10 Gbps) ááĽáśá˝á áĽáá´áľ áĽáá°áá áá áĽáááłáľáᢠá á áááá áá¨áŤáá˝ CNI á á¨áŁáś áĽá¨áľ (á á¨ááá´ ááľáá) áá áĽáááá áŤááᢠáááĽá¨áľ áááłáŁ ááá Kubernetes (áááŤá ááľáá) áŤá CNI áĽááłá áĽá CNI áá áŤá á á°á¨á᪠ááĽáśá˝á áĽáá°áá áá áĽááá˘
á ááľáłááľ áĽááááᢠá áá°áááá áľ áá á áᣠááľáĽ áŤáá á¨á áááá˝ áŤá (áááá፠áĽá áá¸á፠áłáá¨áá) á ááŤá áá áĽáá á áá˘
á¨áá
á°á¨ áľááľáł áááł
Flannel áĽá Kube-áŤáá°á áĽáŠ áá¤áľ á áłáá°áá - 50 áᣠáĽáťá˘ áŤáᎠáĽá áŤáá áĽáŤááłááłá¸á 70. WeaveNet á ááá
á¨áááš á¨á áá áááł á áá¸á - 130 áᣠᣠáĽá á˛áá¨á áĽáľá¨ 400 áľá¨áľ áá áááá˘
á áá á¨á˛ááŠáá áá áááł áĽáááľá˝á˘ áľáŠá¨áľ á¨ááľáĽáĽááá ááááŤá á ááśá á áá°áá ᣠáá ppm ᣠáááľá ᣠ38 ááá¤á á âáŁáś áĽá¨áľâ 3,8% ááᢠáá¤áśáš áĽáááĄ-
Calico, Canal, Flannel áĽá Kube-router á áŁá áá¤áłá á˛áአáá¸á - CNI á¨ááá Kubernetes 2% áĽáť áá ááŁáᢠWeaveNet á 5% á°á¨á᪠áá° áá áááˇá áŁá˛áá¨á á 7% áá¨á°ááá˘
á¨ááĽáľ áááł áá áá፠áá¸áááĄ-
áá¤áśá˝
á¨ááá áá¤áśá˝ áá á°áá á¨áĽ:
á á ááá á¤áá˝ááá áá¤áśá˝
áá°áá°ááŤ
á áá¨á¨áťá ááá á áá¤áśáš áá á¨áĽáá á°á¨áŁá á áľá°áŤá¨áľ áĽáááťáá. áŤáľáłááą áá áááłá¨áŞáŤ á¨á ááľ áá á áááááľá áá á á¨áááľáá á áŁá áľáá˝ ááá (3 ááśá˝) áá áĽáť ááᢠááľáá ááááá˝ (<50 nodes) ááá áľáአáááááśá˝á á áááá¨áľáá˘
áĽáá° áááłá ââá¨áá¨á°ááľá CNIs áĽááľáľá áá áĽáááŤááá˘
- á áááľá°áá ááľáĽ á áá áĽááľ ááĽáśá˝ áŤáá¸á á áááá˝ (á ááŤáł áᢠáŤá ᣠá ááŤáł áŽáŽá˝) áĽá á¨á°á áááľ áŁá áŞáá˝ á áŤáľáááááľá - ááá¨áĄ Flannel. áá á áŁá á᪠ááŁá˘ CNIs á ááą ááᢠáĽá á¨á°ááŤáŠ áľá-á áááá˝ (amd64ᣠáááľáŁ áááľ64ᣠááá°) áá á°áłáá ááᢠá á°á¨ááŞá, áá á¨áááą á ááą áá (áááá Cilium) CNI á áŤáľ-á°á MTU á áááľá áá˝áá, áľááá ááá ááá áááá á¨ááĽááľá. Kube-router áĽáá˛á á°áľáá áá, áá áĽáá° áá°á á á áá°áá áĽá MTU á áĽáŤáľá áááá áŤáľáááááłá.
- á áľááá á¨áá á ááłá¨ áá¨áĄá áááľá á áá°á áááľ, ááá°áą WeaveNet. á¨ááጠááŹáá˝á áĽá¨á°á áá á¨áá á¨MTU áá áá áááá˝áá á áááąáŁ áĽá á á á¨áŁá˘ á°áááá á áŠá á¨ááá áá á áááá˝ ááľá áŤá ááááľá˘ áá áľá á áááá áááłáľ ááťáá - áá á¨á˘áááŞáá˝á áá ááá˘
- á áá°á á á á ááá ŃОвоŃŃŃ áŤááŽ. áá CNI á á°ááŤáŠ á¨áŠá áááľáľ áá°ááŞáŤ ááłáŞáŤáá˝ (Kops, Kubespray, Rancher, ááá°) ááľáĽ á áľááľ áĽá á áá áááá. áĽáá° WeaveNetᣠá¨ááጠááŹáá˝á á¨á°á áá á ConfigMap ááľáĽ MTU á áááááá áŤá¨áááĄá˘ á¨ááĽáľ áááłáŁ á¨á ááťá¸á áĽá á¨á°á áááľ á ááá áááŁá á¨áá áŁááĽá-á°ááŁá ááłáŞáŤ ááá˘
áĽá á áá¨á¨áťá áĽáľááąá áĽááľáľá¨á°á áĽáááŤá˝ááá á˛áá¨á. áá CNI á áááłá¸á (áŁá áŞáŤáľáŁ ááĽáľ áá áŁáŁ á ááťá¸áᣠá°á áááľáŁ áľáĽáľáĽ...) áá áĽá á¨áá°áŤ á áŁá áá áĄáľá á áá áĽá á áŁá á áľá°áłá˝ áĽá áśá˝ á áá¸áá˘
á CNI áá፠á¨áĽááł ááľá
ááá: hab.com