Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)
ื–ื” ื”ืขื“ื›ื•ืŸ ืฉืœื™ ืืžืช ืžื™ื“ื” ืงื•ื“ื, ืฉืคื•ืขืœ ื›ืขืช ืขืœ Kubernetes 1.14 ืขื ื’ืจืกืช ื”-CNI ื”ืขื“ื›ื ื™ืช ื‘ื™ื•ืชืจ ืœืืคืจื™ืœ 2019.

ืงื•ื“ื ื›ืœ, ืื ื™ ืจื•ืฆื” ืœื”ื•ื“ื•ืช ืœืฆื•ื•ืช Cilium: ื”ื—ื‘ืจ'ื” ืขื–ืจื• ืœื™ ืœื‘ื“ื•ืง ื•ืœืชืงืŸ ืืช ื”ืชืกืจื™ื˜ื™ื ืœื ื™ื˜ื•ืจ ืžื“ื“ื™ื.

ืžื” ื”ืฉืชื ื” ืžืื– ื ื•ื‘ืžื‘ืจ 2018

ื”ื ื” ืžื” ืฉื”ืฉืชื ื” ืžืื– (ืื ืืชื” ืžืขื•ื ื™ื™ืŸ):

ืคืœื ืœ ื ื•ืชืจ ืžืžืฉืง ื”-CNI ื”ืžื”ื™ืจ ื•ื”ืคืฉื•ื˜ ื‘ื™ื•ืชืจ, ืืš ืขื“ื™ื™ืŸ ืื™ื ื• ืชื•ืžืš ื‘ืžื“ื™ื ื™ื•ืช ืจืฉืช ื•ื”ืฆืคื ื”.

ืจื•ืžื ื” ื›ื‘ืจ ืœื ื ืชืžื›ืช, ืื– ื”ืกืจื ื• ืื•ืชื” ืžื”ืžื“ื“.

WeaveNet ืชื•ืžืš ื›ืขืช ื‘ืžื“ื™ื ื™ื•ืช ืจืฉืช ืขื‘ื•ืจ Ingress ื•-Egress! ืื‘ืœ ื”ืคืจื™ื•ืŸ ื™ืจื“.

ื‘-Calico, ืืชื” ืขื“ื™ื™ืŸ ืฆืจื™ืš ืœื”ื’ื“ื™ืจ ื‘ืื•ืคืŸ ื™ื“ื ื™ ืืช ื’ื•ื“ืœ ื”ืžื ื•ืช ื”ืžืจื‘ื™ (MTU) ืœื‘ื™ืฆื•ืขื™ื ื”ื˜ื•ื‘ื™ื ื‘ื™ื•ืชืจ. Calico ืžืฆื™ืขื” ืฉืชื™ ืืคืฉืจื•ื™ื•ืช ืœื”ืชืงื ืช CNI, ื›ืš ืฉืชื•ื›ืœ ืœื”ืกืชื“ืจ ื‘ืœื™ ืžืื’ืจ ETCD ื ืคืจื“:

  • ืžืฆื‘ ืื—ืกื•ืŸ ื‘ืžืžืฉืง ื”-API ืฉืœ Kubernetes ื›ืžืื’ืจ ื ืชื•ื ื™ื (ื’ื•ื“ืœ ืืฉื›ื•ืœ < 50 ืฆืžืชื™ื);
  • ืžืฆื‘ ืื—ืกื•ืŸ ื‘-Kubernetes API ื›ืžืื’ืจ ื ืชื•ื ื™ื ืขื ืคืจื•ืงืกื™ Typha ื›ื“ื™ ืœื”ืงืœ ืขืœ ื”ืขื•ืžืก ืขืœ K8S API (ื’ื•ื“ืœ ืืฉื›ื•ืœ > 50 ืฆืžืชื™ื).

Calico ื”ื•ื“ื™ืขื” ืขืœ ืชืžื™ื›ื” ืžื“ื™ื ื™ื•ืช ื‘ืจืžืช ื”ื™ื™ืฉื•ื ืขืœ ื’ื‘ื™ Istio ืœืื‘ื˜ื—ื” ื‘ืจืžืช ื”ืืคืœื™ืงืฆื™ื”.

Cilium ืชื•ืžืš ื›ืขืช ื‘ื”ืฆืคื ื”! Cilium ืžืกืคืงืช ื”ืฆืคื ื” ืขื ืžื ื”ืจื•ืช IPSec ื•ืžืฆื™ืขื” ื—ืœื•ืคื” ืœืจืฉืช WeaveNet ื”ืžื•ืฆืคื ืช. ืื‘ืœ WeaveNet ืžื”ื™ืจื” ื™ื•ืชืจ ืž-Cilium ื›ืฉื”ื”ืฆืคื ื” ืžื•ืคืขืœืช.

ื›ืขืช ืงืœ ื™ื•ืชืจ ืœืคืจื™ืกื” ืฉืœ Cilium ื”ื•ื“ื•ืช ืœืื•ืคืจื˜ื•ืจ ETCD ื”ืžื•ื‘ื ื”.

ืฆื•ื•ืช Cilium ื ื™ืกื” ืœื”ืคื—ื™ืช ืžืฉืงืœ ืžื”-CNI ืฉืœื• ืขืœ ื™ื“ื™ ื”ืคื—ืชืช ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ื•ืขืœื•ื™ื•ืช ื”ืžืขื‘ื“, ืืš ื”ืžืชื—ืจื™ื ืฉืœื• ืขื“ื™ื™ืŸ ืงืœื™ื ื™ื•ืชืจ.

ื”ืงืฉืจ ื‘ื ืฆ'ืžืจืง

ื”ื”ืฉื•ื•ืื” ืžื•ืคืขืœืช ืขืœ ืฉืœื•ืฉื” ืฉืจืชื™ Supermicro ืฉืื™ื ื ื•ื™ืจื˜ื•ืืœื™ื™ื ืขื ืžืชื’ Supermicro ืฉืœ 10 ื’'ื™ื’ื”-ื‘ื™ื™ื˜. ื”ืฉืจืชื™ื ืžื—ื•ื‘ืจื™ื ื™ืฉื™ืจื•ืช ืœืžืชื’ ื‘ืืžืฆืขื•ืช ื›ื‘ืœื™ DAC SFP+ ืคืกื™ื‘ื™ื™ื ื•ืžื•ื’ื“ืจื™ื ืขืœ ืื•ืชื• VLAN ืขื ืžืกื’ืจื•ืช ื’'ืžื‘ื• (MTU 9000).

Kubernetes 1.14.0 ืžื•ืชืงืŸ ื‘ืื•ื‘ื•ื ื˜ื• 18.04 LTS ืขื Docker 18.09.2 (ื’ืจืกืช Docker ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื‘ืžื”ื“ื•ืจื” ื–ื•).

ื›ื“ื™ ืœืฉืคืจ ืืช ื™ื›ื•ืœืช ื”ืฉื—ื–ื•ืจ, ื”ื—ืœื˜ื ื• ืœื”ื’ื“ื™ืจ ืชืžื™ื“ ืืช ื”ืžืืกื˜ืจ ื‘ืฆื•ืžืช ื”ืจืืฉื•ืŸ, ืœืžืงื ืืช ื—ืœืง ื”ืฉืจืช ืฉืœ ื”-benchmark ื‘ืฉืจืช ื”ืฉื ื™, ื•ืืช ื—ืœืง ื”ืœืงื•ื— ื‘ืฉืœื™ืฉื™. ืœืฉื ื›ืš, ืื ื• ืžืฉืชืžืฉื™ื ื‘-NodeSelector ื‘ืคืจื™ืกื•ืช Kubernetes.

ื ืชืืจ ืืช ืชื•ืฆืื•ืช ื”ื”ืฉื•ื•ืื” ื‘ืกื•ืœื ื”ื‘ื:

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)

ื‘ื—ื™ืจืช CNI ืขื‘ื•ืจ ืžื“ื“

ื–ื”ื• ืืžืช ืžื™ื“ื” ืจืง ืขื‘ื•ืจ CNI ืžื”ืจืฉื™ืžื” ื‘ืกืขื™ืฃ ืขืœ ื™ืฆื™ืจืช ืืฉื›ื•ืœ ืžืืกื˜ืจ ืื—ื“ ืขื kubeadm ืขื™ื™ืŸ ื‘ืชื™ืขื•ื“ ื”ืจืฉืžื™ ืฉืœ Kubernetes. ืžืชื•ืš 9 CNIs, ื ื™ืงื— ืจืง 6: ื ืฉืœืœ ืืช ืืœื” ืฉืงืฉื” ืœื”ืชืงื™ืŸ ื•/ืื• ืœื ืขื•ื‘ื“ื™ื ืœืœื ืชืฆื•ืจื” ืœืคื™ ื”ืชื™ืขื•ื“ (Romana, Contiv-VPP ื•-JuniperContrail/TungstenFabric).

ื ืฉื•ื•ื” ืืช ื”-CNIs ื”ื‘ืื™ื:

  • Calico v3.6
  • Canal v3.6 (ื‘ืขืฆื ืคืœื ืœ ืœืจืฉืช + Calico ื›ื—ื•ืžื”)
  • Cilium 1.4.2
  • ืคืœื ืœ 0.11.0
  • ืงื™ื•ื‘-ื ืชื‘ 0.2.5
  • WeaveNet 2.5.1

ื”ืชืงื ื”

ื›ื›ืœ ืฉื™ื”ื™ื” ืงืœ ื™ื•ืชืจ ืœื”ืชืงื™ืŸ ืืช ื”-CNI, ื›ืš ื”ืจื•ืฉื ื”ืจืืฉื•ื ื™ ืฉืœื ื• ื™ื”ื™ื” ื˜ื•ื‘ ื™ื•ืชืจ. ื›ืœ ื”-CNIs ืžื”ืžื“ื“ ืงืœื™ื ืžืื•ื“ ืœื”ืชืงื ื” (ืขื ืคืงื•ื“ื” ืื—ืช ืื• ืฉืชื™ื™ื).

ื›ืคื™ ืฉืืžืจื ื•, ื”ืฉืจืชื™ื ื•ื”ืžืชื’ ืžื•ื’ื“ืจื™ื ืขื ืžืกื’ืจื•ืช ื’'ืžื‘ื• ืžื•ืคืขืœื•ืช (ื”ื’ื“ืจื ื• ืืช ื”-MTU ืœ-9000). ื ืฉืžื— ืื CNI ื™ืงื‘ืข ืื•ื˜ื•ืžื˜ื™ืช ืืช ื”-MTU ื‘ื”ืชื‘ืกืก ืขืœ ืชืฆื•ืจืช ื”ืžืชืืžื™ื. ืขื ื–ืืช, ืจืง Cilium ื•- Flanell ื”ืฆืœื™ื—ื• ื‘ื›ืš. ืœืฉืืจ ื”-CNIs ื™ืฉ ื‘ืงืฉื•ืช ื‘-GitHub ืœื”ื•ืกื™ืฃ ื’ื™ืœื•ื™ MTU ืื•ื˜ื•ืžื˜ื™, ืืš ืื ื• ื ื’ื“ื™ืจ ื–ืืช ื‘ืื•ืคืŸ ื™ื“ื ื™ ืขืœ ื™ื“ื™ ืฉื™ื ื•ื™ ConfigMap ืขื‘ื•ืจ Calico, Canal ื•-Kube-ื ืชื‘, ืื• ื”ืขื‘ืจืช ืžืฉืชื ื” ืกื‘ื™ื‘ื” ืขื‘ื•ืจ WeaveNet.

ืžื” ื”ื‘ืขื™ื” ืขื MTU ืฉื’ื•ื™? ื“ื™ืื’ืจืžื” ื–ื• ืžืฆื™ื’ื” ืืช ื”ื”ื‘ื“ืœ ื‘ื™ืŸ WeaveNet ืขื ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ MTU ื•ืžืกื’ืจื•ืช ื’'ืžื‘ื• ืžื•ืคืขืœื•ืช:

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)
ื›ื™ืฆื“ MTU ืžืฉืคื™ืข ืขืœ ื”ืชืคื•ืงื”?

ืจืื™ื ื• ื›ืžื” ื—ืฉื•ื‘ MTU ืœื‘ื™ืฆื•ืขื™ื, ืขื›ืฉื™ื• ื‘ื•ืื• ื ืจืื” ืื™ืš ื”-CNI ืฉืœื ื• ืงื•ื‘ืขื™ื ื–ืืช ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™:

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)
CNI ืžื–ื”ื” ืื•ื˜ื•ืžื˜ื™ืช MTU

ื”ื’ืจืฃ ืžืจืื” ืฉืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”-MTU ืขื‘ื•ืจ Calico, Canal, Kube-Roter ื•-WeaveNet ืœื‘ื™ืฆื•ืขื™ื ืžื™ื˜ื‘ื™ื™ื. Cilium ื•-Flannel ื”ืฆืœื™ื—ื• ืœืงื‘ื•ืข ื ื›ื•ืŸ ืืช ื”-MTU ื‘ืขืฆืžื ืœืœื ื›ืœ ื”ื’ื“ืจื•ืช.

ืื‘ื˜ื—ื”

ื ืฉื•ื•ื” ืืช ืื‘ื˜ื—ืช CNI ื‘ืฉื ื™ ื”ื™ื‘ื˜ื™ื: ื”ื™ื›ื•ืœืช ืœื”ืฆืคื™ืŸ ื ืชื•ื ื™ื ืžืฉื•ื“ืจื™ื ื•ื”ื˜ืžืขืช ืžื“ื™ื ื™ื•ืช ืจืฉืช Kubernetes (ืžื‘ื•ืกืกืช ืขืœ ื‘ื“ื™ืงื•ืช ืืžื™ืชื™ื•ืช, ืœื ืชื™ืขื•ื“).

ืจืง ืฉื ื™ CNIs ืžืฆืคื™ื ื™ื ื ืชื•ื ื™ื: Cilium ื•-WeaveNet. ื”ืฆืคื ื” WeaveNet ืžื•ืคืขืœ ืขืœ ื™ื“ื™ ื”ื’ื“ืจืช ืกื™ืกืžืช ื”ื”ืฆืคื ื” ื›ืžืฉืชื ื” ืกื‘ื™ื‘ืช CNI. IN ืชื™ืขื•ื“ WeaveNet ืžืชืืจืช โ€‹โ€‹ืืช ื–ื” ื‘ืฆื•ืจื” ืžืกื•ื‘ื›ืช, ืื‘ืœ ื”ื›ืœ ื ืขืฉื” ื‘ืคืฉื˜ื•ืช. ื”ืฆืคื ื” ืกื™ืœื™ื•ื ืžื•ื’ื“ืจ ืขืœ ื™ื“ื™ ืคืงื•ื“ื•ืช, ืขืœ ื™ื“ื™ ื™ืฆื™ืจืช ืกื•ื“ื•ืช Kubernetes, ื•ื“ืจืš ืฉื™ื ื•ื™ ืฉืœ daemonSet (ืงืฆืช ื™ื•ืชืจ ืžืกื•ื‘ืš ืžืืฉืจ ื‘-WeaveNet, ืื‘ืœ ืœ-Cilium ื™ืฉ ืฉืœื‘ ืื—ืจ ืฉืœื‘ ื”ื•ืจืื•ืช).

ื‘ืืฉืจ ืœื™ื™ืฉื•ื ืžื“ื™ื ื™ื•ืช ื”ืจืฉืช, ื”ื ื”ืฆืœื™ื—ื• Calico, Canal, Cilium ื•-WeaveNet, ืฉื‘ื• ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ื›ืœืœื™ Ingress ื•-Egress. ืœ ืงื•ื‘ื™-ื ืชื‘ ื™ืฉ ื›ืœืœื™ื ืจืง ืขื‘ื•ืจ Ingress, ื• ืคืœึธื ึถืœ ืื™ืŸ ืžื“ื™ื ื™ื•ืช ืจืฉืช ื‘ื›ืœืœ.

ืœื”ืœืŸ ื”ืชื•ืฆืื•ืช ื”ื›ื•ืœืœื•ืช:

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)
ืชื•ืฆืื•ืช ื‘ื™ืฆื•ืขื™ ื‘ื˜ื™ื—ื•ืช

ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช

ืืžืช ืžื™ื“ื” ื–ื• ืžืฆื™ื’ื” ืืช ื”ืชืคื•ืงื” ื”ืžืžื•ืฆืขืช ืœืื•ืจืš ืฉืœื•ืฉ ืจื™ืฆื•ืช ืœืคื—ื•ืช ืฉืœ ื›ืœ ื‘ื“ื™ืงื”. ืื ื• ื‘ื•ื“ืงื™ื ืืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ TCP ื•-UDP (ื‘ืืžืฆืขื•ืช iperf3), ื™ื™ืฉื•ืžื™ื ืืžื™ืชื™ื™ื ื›ืžื• HTTP (ืขื Nginx ื•-curl) ืื• FTP (ืขื vsftpd ื•-curl) ื•ืœื‘ืกื•ืฃ ื‘ื™ืฆื•ืขื™ ืืคืœื™ืงืฆื™ื•ืช ื‘ืืžืฆืขื•ืช ื”ืฆืคื ื” ืžื‘ื•ืกืกืช SCP (ื‘ืืžืฆืขื•ืช ืœืงื•ื— ื•ืฉืจืช OpenSSH).

ืขื‘ื•ืจ ื›ืœ ื”ื‘ื“ื™ืงื•ืช, ื‘ื™ืฆืขื ื• ืžื“ื“ ืžืชื›ืช ื—ืฉื•ืฃ (ืงื• ื™ืจื•ืง) ื›ื“ื™ ืœื”ืฉื•ื•ืช ื‘ื™ืŸ ื‘ื™ืฆื•ืขื™ CNI ืœื‘ื™ืฆื•ืขื™ ืจืฉืช ืžืงื•ืžื™ื™ื. ื›ืืŸ ืื ื• ืžืฉืชืžืฉื™ื ื‘ืื•ืชื• ืกื•ืœื, ืื‘ืœ ื‘ืฆื‘ืข:

  • ืฆื”ื•ื‘ = ื˜ื•ื‘ ืžืื•ื“
  • ื›ืชื•ื = ื˜ื•ื‘
  • ื›ื—ื•ืœ = ื›ืš-ื›ืš
  • ืื“ื•ื = ืจืข

ืœื ื ื™ืงื— CNIs ืฉื”ื•ื’ื“ืจื• ื‘ืฆื•ืจื” ืฉื’ื•ื™ื” ื•ื ืจืื” ืจืง ืชื•ืฆืื•ืช ืขื‘ื•ืจ CNIs ืขื ื”-MTU ื”ื ื›ื•ืŸ. (ื”ืขืจื”: Cilium ืœื ืžื—ืฉื‘ ื ื›ื•ืŸ ืืช ื”-MTU ืื ืชืคืขื™ืœ ื”ืฆืคื ื”, ืื– ืชืฆื˜ืจืš ืœื”ืคื—ื™ืช ืืช ื”-MTU ื‘ืื•ืคืŸ ื™ื“ื ื™ ืœ-8900 ื‘ื’ืจืกื” 1.4. ื”ื’ืจืกื” ื”ื‘ืื”, 1.5, ืขื•ืฉื” ื–ืืช ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™.)

ื”ื ื” ื”ืชื•ืฆืื•ืช:

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)
ื‘ื™ืฆื•ืขื™ TCP

ื›ืœ ื”-CNIs ื”ืฆื™ื’ื• ื”ื™ื˜ื‘ ื‘ืžื“ื“ ื”-TCP. CNI ืขื ื”ืฆืคื ื” ืžืคื’ืจ ื”ืจื‘ื” ืžืื—ื•ืจ ืžื›ื™ื•ื•ืŸ ืฉื”ื”ืฆืคื ื” ื™ืงืจื”.

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)
ื‘ื™ืฆื•ืขื™ UDP

ื’ื ื›ืืŸ ื›ืœ ื”-CNI ืžืฆืœื™ื—ื™ื. CNI ืขื ื”ืฆืคื ื” ื”ืจืื” ื›ืžืขื˜ ืืช ืื•ืชื” ืชื•ืฆืื”. Cilium ืงืฆืช ืžืื—ื•ืจื™ ื”ืžืชื—ืจื™ื, ืื‘ืœ ื–ื” ืจืง 2,3% ืฉืœ ืžืชื›ืช ื—ืฉื•ืคื”, ืื– ื–ื• ืชื•ืฆืื” ืœื ืจืขื”. ืืœ ืชืฉื›ื— ืฉืจืง Cilium ื•-Flannel ืงื‘ืขื• ืืช ื”-MTU ื‘ืฆื•ืจื” ื ื›ื•ื ื” ื‘ืขืฆืžื, ื•ืืœื” ื”ืชื•ืฆืื•ืช ืฉืœื”ื ืœืœื ื›ืœ ืชืฆื•ืจื” ื ื•ืกืคืช.

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)

ืžื” ืœื’ื‘ื™ ืืคืœื™ืงืฆื™ื” ืืžื™ืชื™ืช? ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ื”ื‘ื™ืฆื•ืขื™ื ื”ื›ื•ืœืœื™ื ืขื‘ื•ืจ HTTP ื”ื ืžืขื˜ ื ืžื•ื›ื™ื ื™ื•ืชืจ ืžืืฉืจ ืขื‘ื•ืจ TCP. ื’ื ืื ืืชื” ืžืฉืชืžืฉ ื‘-HTTP ืขื TCP, ื”ื’ื“ืจื ื• ืืช iperf3 ื‘ืžื‘ื—ืŸ TCP ื›ื“ื™ ืœืžื ื•ืข ื”ืชื—ืœื” ืื™ื˜ื™ืช ืฉืชืฉืคื™ืข ืขืœ ืžื“ื“ HTTP. ื›ื•ืœื ืขืฉื• ื›ืืŸ ืขื‘ื•ื“ื” ื˜ื•ื‘ื”. ืœ-Kube-Roter ื™ืฉ ื™ืชืจื•ืŸ ื‘ืจื•ืจ, ืื‘ืœ WeaveNet ืœื ื”ืฆืœื™ื—ื•: ื›-20% ื’ืจื•ืขื™ื ื™ื•ืชืจ ืžืžืชื›ืช ื—ืฉื•ืคื”. Cilium ื•-WeaveNet ืขื ื”ืฆืคื ื” ื ืจืื™ื ืžืžืฉ ืขืฆื•ื‘ื™ื.

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)

ืขื FTP, ืคืจื•ื˜ื•ืงื•ืœ ื ื•ืกืฃ ืžื‘ื•ืกืก TCP, ื”ืชื•ืฆืื•ืช ืžืฉืชื ื•ืช. Flanell ื•-Kube-Roter ืขื•ืฉื™ื ืืช ื”ืขื‘ื•ื“ื”, ืื‘ืœ Calico, Canal ื•-Cilium ื ืžืฆืื™ื ืงืฆืช ื‘ืคื™ื’ื•ืจ ื•ื”ื ืื™ื˜ื™ื™ื ื‘ื›-10% ืžืžืชื›ืช ื—ืฉื•ืคื”. WeaveNet ื ืžืฆืืช ื‘ืคื™ื’ื•ืจ ืฉืœ ืขื“ 17%, ืื‘ืœ WeaveNet ื”ืžื•ืฆืคื ืช ืžืงื“ื™ืžื” ื‘-40% ืืช Cilium ื”ืžื•ืฆืคื ืช.

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)

ืขื SCP ื ื•ื›ืœ ืœืจืื•ืช ืžื™ื“ ื›ืžื” ืขื•ืœื” ืœื ื• ื”ืฆืคื ืช SSH. ื›ืžืขื˜ ื›ืœ ื”-CNI ืžืฆืœื™ื—ื™ื, ืื‘ืœ WeaveNet ืžืคื’ืจืช ืฉื•ื‘. Cilium ื•-WeaveNet ืขื ื”ืฆืคื ื” ืฆืคื•ื™ื™ื ืœื”ื™ื•ืช ื”ื’ืจื•ืขื™ื ื‘ื™ื•ืชืจ ื‘ื’ืœืœ ื”ืฆืคื ื” ื›ืคื•ืœื” (SSH + CNI).

ืœื”ืœืŸ ื˜ื‘ืœืช ืกื™ื›ื•ื ืขื ื”ืชื•ืฆืื•ืช:

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)

ืฆืจื™ื›ืช ืžืฉืื‘ื™ื

ื›ืขืช ื ืฉื•ื•ื” ื›ื™ืฆื“ CNI ืฆื•ืจืš ืžืฉืื‘ื™ื ื‘ืขื•ืžืกื™ื ื›ื‘ื“ื™ื (ื‘ืžื”ืœืš ื”ืขื‘ืจืช TCP, 10 Gbps). ื‘ืžื‘ื—ื ื™ ื‘ื™ืฆื•ืขื™ื ืื ื• ืžืฉื•ื•ื™ื CNI ืขื ืžืชื›ืช ื—ืฉื•ืคื” (ืงื• ื™ืจื•ืง). ืœืฆืจื™ื›ืช ืžืฉืื‘ื™ื, ื‘ื•ืื• ื ืจืื” Kubernetes ื˜ื”ื•ืจ (ืงื• ืกื’ื•ืœ) ืœืœื CNI ื•ื ืจืื” ื›ืžื” ืžืฉืื‘ื™ื ื ื•ืกืคื™ื CNI ืฆื•ืจืš.

ื ืชื—ื™ืœ ื‘ื–ื™ื›ืจื•ืŸ. ื”ื ื” ื”ืขืจืš ื”ืžืžื•ืฆืข ืฉืœ ื–ื™ื›ืจื•ืŸ RAM ืฉืœ ืฆืžืชื™ื (ืœื ื›ื•ืœืœ ืžืื’ืจื™ื ื•ืžื˜ืžื•ืŸ) ื‘-MB ื‘ืžื”ืœืš ื”ื”ืขื‘ืจื”.

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)
ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ

Flanell ื•-Kube-ืจืื•ื˜ืจ ื”ืจืื• ืชื•ืฆืื•ืช ืžืฆื•ื™ื ื•ืช - ืจืง 50 MB. ืœ-Calico ื•ืœ-Canal ื™ืฉ 70 ื›ืœ ืื—ืช. WeaveNet ืฆื•ืจื›ืช ื‘ื‘ื™ืจื•ืจ ื™ื•ืชืจ ืžื”ืื—ืจื™ื - 130 ืžื’ื”-ื‘ื™ื™ื˜, ื•-Cilium ืžืฉืชืžืฉ ื‘-400.
ืขื›ืฉื™ื• ื‘ื•ืื• ื ื‘ื“ื•ืง ืืช ืฆืจื™ื›ืช ื–ืžืŸ ื”ืžืขื‘ื“. ืจืื•ื™ ืœืฆื™ื•ืŸ: ื”ืชืจืฉื™ื ืœื ืžืฆื™ื’ ืื—ื•ื–ื™ื, ืืœื ppm, ื›ืœื•ืžืจ, 38 ppm ืขื‘ื•ืจ "ื‘ืจื–ืœ ื—ืฉื•ืฃ" ื”ื•ื 3,8%. ืœื”ืœืŸ ื”ืชื•ืฆืื•ืช:

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)
ืฆืจื™ื›ืช ืžืขื‘ื“

Calico, Canal, Flannel ื•-Kube-Roter ื™ืขื™ืœื™ื ืžืื•ื“ ื‘ืžืขื‘ื“ - ืจืง 2% ื™ื•ืชืจ ืž-Kubernetes ืœืœื CNI. WeaveNet ืžืคื’ืจืช ื”ืจื—ืง ืžืื—ื•ืจ ืขื ืชื•ืกืคืช ืฉืœ 5%, ื•ืื—ืจื™ื” Cilium ื‘-7%.

ืœื”ืœืŸ ืกื™ื›ื•ื ืฉืœ ืฆืจื™ื›ืช ืžืฉืื‘ื™ื:

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)

ืชื•ืฆืื•ืช ืฉืœ

ื˜ื‘ืœื” ืขื ื›ืœ ื”ืชื•ืฆืื•ืช:

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)
ืชื•ืฆืื•ืช ื‘ื ืฆ'ืžืจืง ื›ืœืœื™ื•ืช

ืžืกืงื ื”

ื‘ื—ืœืง ื”ืื—ืจื•ืŸ ืื‘ื™ืข ืืช ื“ืขืชื™ ื”ืกื•ื‘ื™ื™ืงื˜ื™ื‘ื™ืช ืขืœ ื”ืชื•ืฆืื•ืช. ื–ื›ื•ืจ ืฉืจืฃ ื–ื” ื‘ื•ื“ืง ืจืง ืืช ื”ืชืคื•ืงื” ืฉืœ ื—ื™ื‘ื•ืจ ื‘ื•ื“ื“ ืขืœ ืืฉื›ื•ืœ ืงื˜ืŸ ืžืื•ื“ (3 ืฆืžืชื™ื). ื–ื” ืœื ื—ืœ ืขืœ ืืฉื›ื•ืœื•ืช ื’ื“ื•ืœื™ื (<50 ืฆืžืชื™ื) ืื• ื—ื™ื‘ื•ืจื™ื ืžืงื‘ื™ืœื™ื.

ืื ื™ ืžืžืœื™ืฅ ืœื”ืฉืชืžืฉ ื‘-CNI ื”ื‘ืื™ื ื‘ื”ืชืื ืœืชืจื—ื™ืฉ:

  • ื”ืื ื™ืฉ ืœืš ื‘ืืฉื›ื•ืœ ืฉืœืš ืฆืžืชื™ื ืขื ืžืขื˜ ืžืฉืื‘ื™ื (ืžืกืคืจ ื’'ื™ื’ื”-ื‘ื™ื™ื˜ ืฉืœ ื–ื™ื›ืจื•ืŸ RAM, ืžืกืคืจ ืœื™ื‘ื•ืช) ื•ืืชื” ืœื ืฆืจื™ืš ืชื›ื•ื ื•ืช ืื‘ื˜ื—ื” - ื‘ื—ืจ ืคืœึธื ึถืœ. ื–ื”ื• ืื—ื“ ื”-CNIs ื”ื—ืกื›ื•ื ื™ื™ื ื‘ื™ื•ืชืจ. ื•ื”ื•ื ืชื•ืื ืœืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช (amd64, arm, arm64 ื•ื›ื•'). ื‘ื ื•ืกืฃ, ื–ื”ื• ืื—ื“ ืžืฉื ื™ (ื”ืฉื ื™ ื”ื•ื Cilium) CNI ืฉื™ื›ื•ืœ ืœืงื‘ื•ืข ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ืืช ื”-MTU, ื›ืš ืฉืœื ืชืฆื˜ืจืš ืœื”ื’ื“ื™ืจ ืฉื•ื ื“ื‘ืจ. ื ืชื‘ Kube ืžืชืื™ื ื’ื ื”ื•ื, ืื‘ืœ ื”ื•ื ืœื ื›ืกื˜ื ื“ืจื˜ ื•ืชืฆื˜ืจืš ืœื”ื’ื“ื™ืจ ื™ื“ื ื™ืช ืืช ื”-MTU.
  • ื‘ืžื™ื“ืช ื”ืฆื•ืจืš ืœื”ืฆืคื™ืŸ ืืช ื”ืจืฉืช ืœื™ืชืจ ื‘ื™ื˜ื—ื•ืŸ, ืงื— WeaveNet. ืืœ ืชืฉื›ื— ืœืฆื™ื™ืŸ ืืช ื’ื•ื“ืœ ื”-MTU ืื ืืชื” ืžืฉืชืžืฉ ื‘ืžืกื’ืจื•ืช ื’'ืžื‘ื•, ื•ืœืืคืฉืจ ื”ืฆืคื ื” ืขืœ ื™ื“ื™ ืฆื™ื•ืŸ ืกื™ืกืžื” ื‘ืืžืฆืขื•ืช ืžืฉืชื ื” ืกื‘ื™ื‘ื”. ืื‘ืœ ืขื“ื™ืฃ ืœืฉื›ื•ื— ืžื”ื‘ื™ืฆื•ืขื™ื - ื–ื” ืขืœื•ืช ื”ื”ืฆืคื ื”.
  • ืขื‘ื•ืจ ืฉื™ืžื•ืฉ ืจื’ื™ืœ ัะพะฒะตั‚ัƒัŽ ืงืืœื™ืงื•. CNI ื–ื” ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ื›ืœื™ ืคืจื™ืกื” ืฉื•ื ื™ื ืฉืœ Kubernetes (Kops, Kubespray, Rancher ื•ื›ื•'). ื›ืžื• ื‘-WeaveNet, ื”ืงืคื“ ืœื”ื’ื“ื™ืจ ืืช ื”-MTU ื‘-ConfigMap ืื ืืชื” ืžืฉืชืžืฉ ื‘ืžืกื’ืจื•ืช ื’'ืžื‘ื•. ื–ื”ื• ื›ืœื™ ืจื‘ ืชืคืงื•ื“ื™ ื™ืขื™ืœ ืžื‘ื—ื™ื ืช ืฆืจื™ื›ืช ืžืฉืื‘ื™ื, ื‘ื™ืฆื•ืขื™ื ื•ืื‘ื˜ื—ื”.

ื•ืœื‘ืกื•ืฃ, ืื ื™ ืžืžืœื™ืฅ ืœืš ืœืขืงื•ื‘ ืื—ืจ ื”ื”ืชืคืชื—ื•ืช ืกื™ืœื™ื•ื. ืœ-CNI ื”ื–ื” ื™ืฉ ืฆื•ื•ืช ืžืื•ื“ ืคืขื™ืœ ืฉืขื•ื‘ื“ ื”ืจื‘ื” ืขืœ ื”ืžื•ืฆืจ ืฉืœื”ื (ืชื›ื•ื ื•ืช, ื—ื™ืกื›ื•ืŸ ื‘ืžืฉืื‘ื™ื, ื‘ื™ืฆื•ืขื™ื, ืื‘ื˜ื—ื”, ืืฉื›ื•ืœื•ืช...) ื•ื™ืฉ ืœื”ื ืชื•ื›ื ื™ื•ืช ืžืื•ื“ ืžืขื ื™ื™ื ื•ืช.

Kubernetes Network Plugin (CNI) ืชื•ืฆืื•ืช benchmark ืžืขืœ 10 Gbps ืจืฉืช (ืขื“ื›ื•ืŸ: ืืคืจื™ืœ 2019)
ืชืจืฉื™ื ื—ื–ื•ืชื™ ืœื‘ื—ื™ืจืช CNI

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”