Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)
Hoc est update prior velit fermentumquae nunc in Kubernetes 1.14 cum recentissima CNI versione ut mensis Aprilis MMXIX currit.

Imprimis ago Cilium turmas: latinas me adiuverunt et scripta metri vigilantia reprehendunt et corrigunt.

Quod mutatum est cum November MMXVIII

Ecce quid mutatum est quia tunc (si es interested):

Flannel velocissimo et simplicissimo CNI interfacies manet, sed tamen rationes retiaculas et encryptiones non sustinet.

Romana non diutius sustinetur, sic eam a Probatio removimus.

WeaveNet nunc sustinet retiaculis agendis pro Ingress et Egress! Sed fructibus decrevit.

In Calico, adhuc manually debes configurare magnitudinem maximam (MTU) ad optimam observantiam. Calico duas optiones praebet pro CNI insertis, ut sine repositorio separato ETCD repositorium facere possis:

  • actorarium in Kubernetes API ut data copia (botrus size <50 nodes);
  • accommodare statum in Kubernetes API ut data copia cum Typha procuratorio ad levandum onus in K8S API (botrus size > 50 nodi).

Calico nuntiatum firmamentum applicationem gradu policies super Istio ad applicationem-gradu securitatis.

Cilium nunc encryption sustinet! Cilium encryptionem cum cuniculis IPSec praebet et jocus praebet ad ornatum WeaveNet encryptatum. Sed WeaveNet velocior est quam Cilium cum encryption para.

Facilius nunc est Cilium ad explicandas gratias operante aedificato in ETCD.

Turma Cilium conatus est aliquod pondus de CNI stringere et memoriam consumptionis et CPU sumptibus minuere, sed competitores eius adhuc leviores sunt.

Probatio contextu

Probatio currit in tribus servientibus Supermicro non-virtualibus cum 10 Gb Supermicro switch. Servientes directe ad transitum per funem passivum DAC SFP+ connectuntur et in eodem VLAN cum jumbo tabulae configurantur (MTU 9000).

Kubernetes 1.14.0 in Ubuntu 18.04 LTS inauguravit cum Docker 18.09.2 (defalta Docker versionis in hac emissione).

Ad reproducibilitatem emendandam constituimus dominum in prima node semper configurare, partem servo probandi in secunda servo, partem clientis in tertia collocare. Ad hoc utimur NodeSelector in instruere in Kubernetes.

Probatio eventus sequenti ordine describemus:

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)

Discriptis CNI ad velit fermentum

Hoc Probatio solum CNI ex indice in sectione est de creando unum botrum cum kubeadm Vide Documenta officialis Kubernetes. De 9 CNIs tantum VI capiemus: ea quae difficilia sunt ad institutionem vel/vel non operantur sine schemate, excludemus secundum documenta (Romana, Contiv-VPP et JuniperContrail/TungstenFabric).

CNIS sequenti comparabimus:

  • Calico v3.6
  • Canal v3.6 (per se Flannel pro networking + Calico ut firewall)
  • Cilium 1.4.2
  • Flannel 0.11.0
  • Kube-iter 0.2.5
  • WeaveNet 2.5.1

occasum

Quo facilius CNI instituatur, melior prima impressio erit. Omnes CNIS ex Probatio facillime sunt ad instituendum (cum uno vel duobus mandatis).

Ut diximus, ministri et switch configurantur cum tabulis jumbo parandis (MTU ad 9000 constituimus). Laeti essemus si CNI automatice MTU in conformatione adaptatorum fundata decrevisset. Sed hoc solum Cilium et Flannel administrarunt. Reliquae CNIs petitiones in GitHub habent ut inventionem automatice MTU addant, sed manually figurabimus mutando ConfigMap pro Calico, Canal et Kube-iter, seu ambitus variabilis pro WeaveNet transiens.

Quid est quaestio falsa MTU? Hoc schemate ostendit differentiam inter WeaveNet cum default MTU et jumbo tabulae enabled;

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)
Per quem modum MTU afficit?

Vidimus quam momenti MTU ad effectum perducatur, nunc videamus quomodo noster CNIs sponte eam determinet;

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)
CNI sponte detegit MTU

Aliquam lacinia purus ostendit te opus esse configurare MTU pro Calico, Canal, Kube-iter et WeaveNet ad optimales effectus. Cilium et Flannel sine ullis fundis ipsi MTU recte determinare poterant.

salutem

Securitatem CNI in duobus aspectibus comparabimus: facultatem ad encrypt notitias transmissas et ad exsequendum rationes retis Kubernetes (ex probatis realibus, non documentis fundatur).

CNIS duo tantum encrypt data: Cilium et WeaveNet. Encryption WeaveNet enabled ponendo encryption password ut CNI environment variabilis. IN' documentum WeaveNet describit eam vario modo, sed omnia simpliciter fiunt. Encryption cilium configuratus iussa, Kubernetes secreta creando, et daemonSet modificatione (paulo intricata quam in WeaveNet, at Cilium gradatim habet. instructiones).

Quod ad exsequendam retis consilium, successerunt Calico, Canal, Cilium et WeaveNet, in qua configurare potes Ingress et Egress regulas. For Kube-iter sunt praecepta tantum Ingress, et flannel Nulla at lobortis nulla.

Hic sunt eventus altiore:

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)
Salus euismod Probatio Results

productivity

Hoc Probatio mediocris perput supra saltem tres cuiusque experimenti currit. Probamus effectum TCP et UDP (iperf3 utens), applicationes reales sicut HTTP (cum Nginx et Crispum) vel FTP (cum vsftpd et Crispum) ac demum applicationes peractas utendo SCP-substructio encryptione (cliente et servo OpenSSH utente).

Pro omnibus probationibus, probatio metalli nuda (linea viridis) ad CNI perficiendum cum retis indigenis comparandis praestiti sumus. Simili magnitudine hic utimur, sed colore;

  • Yellow = valde bona
  • Orange = bono
  • Hyacintho = sic-so
  • Red = bad

Non recte figuratum CNIs accipiemus et proventus tantum CNIs cum recto MTU ostendemus. (Nota: Cilium non recte computat MTU si encryptionem potes, sic manually MTU ad 8900 in versione 1.4 reducere debebis. Sequens versio 1.5, hoc automatice facit.)

Hic eventus sunt:

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)
TCP euismod

Omnes CNIs bene perfecerunt in TCP Probatio. CNI cum encryption multo post tardus est quia encryption carum est.

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)
UDP perficientur

Hic etiam omnes CNIS bene faciunt. CNI cum encryption idem fere ostendit. Cilium paulo post certamen est, sed solum 2,3% metalli nudae, unde malum non evenit. Noli oblivisci tantum Cilium et Flannel MTU recte se statuisse, et hi eventus sine ulla addita configuratione sunt.

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)

Quid de applicatione reali? Ut vides, altiore effectu pro HTTP est leviter inferior quam pro TCP. Etiamsi HTTP cum TCP uteris, iperf3 in TCP signum configuravimus ne initium lentum, quod HTTP Probatio afficeret. Hic omnes bene fecerunt. Kube-iterum luculentum commodum habet, sed WeaveNet bene non fecit: circiter 20% gravius ​​quam metallum nudum. Cilium and WeaveNet with encryption look really sad.

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)

Cum FTP, alia TCP protocollo substructa, variantur eventus. Flannel et Kube-iter officium faciunt, sed Calico, Canal et Cilium paulo post sunt et fere 10% tardius quam metallum nudum sunt. WeaveNet quantum 17% deficit, sed encryptatum WeaveNet 40% ante Cilium encryptatum est.

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)

Cum SCP statim videre possumus quantum SSH encryption nobis constat. Fere omnes CNIS bene faciunt, sed WeaveNet pigri est iterum. Cilium et WeaveNet cum encryptione exspectantur pessimum ob encryptionem duplicem (SSH + CNI).

Hic est summa mensa cum eventibus:

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)

Resource consummatio

Nunc comparemus quomodo CNI opes sub oneribus (per TCP translatio 10 Gbps consumit). In experimentis faciendis comparamus CNI cum metallo nudo (linea viridi). Ad consumptionem resource, ostendemus puram Kubernetes (lineam purpuram) sine CNI et vide quot facultates extra CNI consumat.

Initium sit memoria. Hic est valor mediocris nodis RAM (exclusis buffers et cache) in MB translatione.

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)
Memoria consummatio

Flannel et Kube-iter praeclaros eventus demonstraverunt - modo 50 MB. Calico et Canal singuli habent 70. WeaveNet plane consumit prae caeteri - 130 MB, et Cilium utitur quantum 400.
Nunc in CPU tempus consummationis inspiciamus. NotabileTabula ostendit non percentages, sed ppm, id est, 38 ppm pro "ferrum nudum" est 3,8%. Hic eventus sunt:

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)
CPU consummatio

Calico, Canal, Flannel et Kube-iter valde CPU efficientes tantum 2% plus quam Kubernetes sine CNI. WeaveNet pigra multo post cum extra 5%, quam sequitur Cilium in 7%.

Hic summa subsidii consummatio est:

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)

results

Mensa cum omnibus eventibus:

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)
Probatio generalis eventus

conclusio,

In extrema parte de eventibus sententiam meam proferam. Memento quod hoc Probatio solum probat perpositionem unius connexionis in minimo botro (III nodi). Non applicatur ad magnas ligaturas (<3 nodes) vel nexus parallelos.

Suadeo utens his CNIS secundum missionem:

  • Habes in botro lymphaticorum cum paucis opibus (Plures GB ipsius RAM, plures nuclei) et securitatem notis non indiges - choose flannel. Haec una maxime CNIS cost-efficax est. Et compatitur cum varietate architecturae (amd64, arm, arm64, etc.). Praeterea, haec duorum unum est (alterum Cilium) CNI quae sponte MTU determinare potest, ne quid configurare debeas. Etiam idoneus Kube-iter, sed non ut vexillum et necesse est ut MTU manually configurare.
  • si oportet contristari in variis encrypt ad network ad salutem accipere WeaveNet. Noli oblivisci magnitudinem MTU denotare si tabulis jumbo uteris, et encryptionem da per tesseram per modum variabilis. Sed melius est de observantia oblivisci - sumptus encryptionis est.
  • Ad normalis usus et monere Calico. Hoc CNI late in variis instrumentis Kubernetes instruere (Kops, Kubespray, Rancher, etc.). Ut apud WeaveNet, cave configurare MTU in ConfigMap si usus jumbo tabulae. Instrumentum multi-muneris est efficax in terminis subsidiorum consummatio, effectus et securitas.

Ac denique moneo ut progressionem sequantur cilium. Haec CNI turmas acerrimas habet, quae multum in producto (featurae, copiae, peculi, observantia, securitate, pampineis ... operantur) et consilia valde iucunda habent.

Kubernetes Network Plugin (CNI) Proventus Probatio super 10 Gbps Network (Updated: April MMXIX)
Visual tabulae CNI delectu

Source: www.habr.com