Eyi ni imudojuiwọn mi
Ni akọkọ, Mo fẹ dupẹ lọwọ ẹgbẹ Cilium: awọn eniyan ṣe iranlọwọ fun mi lati ṣayẹwo ati ṣatunṣe awọn iwe afọwọkọ ibojuwo metiriki.
Kini ti yipada lati Oṣu kọkanla ọdun 2018
Eyi ni ohun ti o yipada lati igba naa (ti o ba nifẹ):
Flannel maa wa ni wiwo CNI ti o yara julọ ati irọrun, ṣugbọn sibẹ ko ṣe atilẹyin awọn ilana nẹtiwọọki ati fifi ẹnọ kọ nkan.
Romana ko ṣe atilẹyin mọ, nitorinaa a ti yọ kuro ni ala-ilẹ.
WeaveNet ni bayi ṣe atilẹyin awọn ilana nẹtiwọọki fun Ingress ati Egress! Ṣugbọn iṣelọpọ ti dinku.
Ni Calico, o tun nilo lati tunto iwọn idii ti o pọju (MTU) pẹlu ọwọ fun iṣẹ ṣiṣe to dara julọ. Calico nfunni awọn aṣayan meji fun fifi sori ẹrọ CNI, nitorinaa o le ṣe laisi ibi ipamọ ETCD lọtọ:
- ipo ipamọ ni Kubernetes API bi ibi ipamọ data (iwọn iṣupọ <50 awọn apa);
- ipo fifipamọ sinu Kubernetes API gẹgẹbi ile itaja data pẹlu aṣoju Typha kan lati tu ẹru lori K8S API (iwọn iṣupọ> awọn apa 50).
Calico kede atilẹyin
Cilium ṣe atilẹyin fifi ẹnọ kọ nkan bayi! Cilium n pese fifi ẹnọ kọ nkan pẹlu awọn tunnels IPSec ati pe o funni ni yiyan si nẹtiwọọki WeaveNet ti paroko. Ṣugbọn WeaveNet yiyara ju Cilium pẹlu fifi ẹnọ kọ nkan ṣiṣẹ.
Cilium ni bayi rọrun lati ran lọwọ ọpẹ si oniṣẹ ETCD ti a ṣe sinu rẹ.
Ẹgbẹ Cilium ti gbiyanju lati gee diẹ ninu iwuwo lati CNI rẹ nipa idinku agbara iranti ati awọn idiyele Sipiyu, ṣugbọn awọn oludije rẹ tun fẹẹrẹ.
Itumọ ala
Aṣepari naa jẹ ṣiṣe lori awọn olupin Supermicro mẹta ti kii ṣe foju foju kan pẹlu 10 Gb Supermicro yipada. Awọn olupin naa ti sopọ taara si iyipada nipasẹ palolo DAC SFP + awọn kebulu ati pe a tunto lori VLAN kanna pẹlu awọn fireemu jumbo (MTU 9000).
Kubernetes 1.14.0 ti fi sori ẹrọ lori Ubuntu 18.04 LTS pẹlu Docker 18.09.2 (ẹya Docker aiyipada ni idasilẹ yii).
Lati mu atunṣe pada, a pinnu lati tunto oluwa nigbagbogbo lori ipade akọkọ, gbe apakan olupin ti ala-ilẹ lori olupin keji, ati apakan onibara lori kẹta. Lati ṣe eyi, a lo NodeSelector ni awọn imuṣiṣẹ Kubernetes.
A yoo ṣe apejuwe awọn abajade ala-ilẹ lori iwọn atẹle:
Yiyan CNI kan fun ala
Eyi jẹ ala-ilẹ nikan fun CNI lati atokọ ni apakan
A yoo ṣe afiwe awọn CNI wọnyi:
- Calico v3.6
- Canal v3.6 (pataki Flannel fun Nẹtiwọki + Calico bi ogiriina)
- Siliomu 1.4.2
- Flannel 0.11.0
- Kube-olulana 0.2.5
- WeaveNet 2.5.1
eto
Rọrun CNI ni lati fi sori ẹrọ, dara julọ sami akọkọ wa yoo jẹ. Gbogbo awọn CNI lati ala-ilẹ jẹ rọrun pupọ lati fi sori ẹrọ (pẹlu awọn aṣẹ kan tabi meji).
Gẹgẹbi a ti sọ, awọn olupin ati yipada ni tunto pẹlu awọn fireemu jumbo ṣiṣẹ (a ṣeto MTU si 9000). Inu wa yoo dun ti CNI ba pinnu laifọwọyi MTU da lori iṣeto awọn oluyipada. Sibẹsibẹ, Cilium ati Flannel nikan ni o ṣakoso eyi. Awọn iyokù CNI ni awọn ibeere lori GitHub lati ṣafikun wiwa MTU laifọwọyi, ṣugbọn a yoo tunto rẹ pẹlu ọwọ nipa yiyipada ConfigMap fun Calico, Canal ati Kube-router, tabi gbigbe iyipada agbegbe fun WeaveNet.
Kini iṣoro pẹlu MTU ti ko tọ? Aworan yi fihan iyatọ laarin WeaveNet pẹlu MTU aiyipada ati awọn fireemu jumbo ṣiṣẹ:
Bawo ni MTU ṣe ni ipa lori iṣelọpọ?
A ti rii bii MTU ṣe ṣe pataki fun iṣẹ ṣiṣe, ni bayi jẹ ki a wo bii awọn CNI wa ṣe pinnu rẹ laifọwọyi:
Aworan naa fihan pe o nilo lati tunto MTU fun Calico, Canal, Kube-router ati WeaveNet fun iṣẹ ṣiṣe to dara julọ. Cilium ati Flannel ni anfani lati pinnu MTU funrararẹ laisi awọn eto eyikeyi.
Aabo
A yoo ṣe afiwe aabo CNI ni awọn aaye meji: agbara lati encrypt data ti a firanṣẹ ati imuse ti awọn eto nẹtiwọọki Kubernetes (da lori awọn idanwo gidi, kii ṣe iwe).
Nikan meji CNIs encrypt data: Cilium ati WeaveNet. ìsekóòdù WeaveNet ṣiṣẹ nipa siseto ọrọ igbaniwọle fifi ẹnọ kọ nkan bi iyipada ayika CNI. IN
Bi fun imuse ti eto imulo nẹtiwọki, wọn ti ṣaṣeyọri Calico, Canal, Cilium ati WeaveNet, ninu eyiti o le tunto Awọn ofin Ingress ati Egress. Fun Kube-olulana nibẹ ni o wa ofin nikan fun Ingress, ati Flannel Ko si awọn ilana nẹtiwọki ni gbogbo.
Eyi ni awọn abajade lapapọ:
Ise sise
Iṣe ala yii ṣe afihan agbejade apapọ lori o kere ju awọn ṣiṣe mẹta ti idanwo kọọkan. A ṣe idanwo iṣẹ TCP ati UDP (lilo iperf3), awọn ohun elo gidi bii HTTP (pẹlu Nginx ati curl) tabi FTP (pẹlu vsftpd ati curl) ati nikẹhin iṣẹ ohun elo nipa lilo fifi ẹnọ kọ nkan ti SCP (lilo alabara ati olupin OpenSSH).
Fun gbogbo awọn idanwo, a ṣe ala-ilẹ irin (laini alawọ ewe) lati ṣe afiwe iṣẹ CNI pẹlu iṣẹ nẹtiwọọki abinibi. Nibi a lo iwọn kanna, ṣugbọn ni awọ:
- Yellow = dara julọ
- Orange = dara
- Blue = bẹ-bẹ
- Pupa = buburu
A kii yoo gba awọn CNI ti a tunto ti ko tọ ati pe yoo ṣafihan awọn abajade fun awọn CNI nikan pẹlu MTU to pe. (Akiyesi: Cilium ko ṣe iṣiro MTU ni deede ti o ba mu fifi ẹnọ kọ nkan, nitorinaa iwọ yoo ni lati dinku MTU pẹlu ọwọ si 8900 ni ẹya 1.4. Ẹya ti o tẹle, 1.5, ṣe eyi laifọwọyi.)
Eyi ni awọn abajade:
Gbogbo awọn CNI ṣe daradara ni ala ala TCP. CNI pẹlu ìsekóòdù lags jina sile nitori ìsekóòdù jẹ gbowolori.
Nibi, paapaa, gbogbo awọn CNI n ṣe daradara. CNI pẹlu ìsekóòdù fihan fere esi kanna. Cilium jẹ diẹ lẹhin idije naa, ṣugbọn o jẹ 2,3% ti irin igboro, nitorinaa kii ṣe abajade buburu. Maṣe gbagbe pe Cilium ati Flannel nikan pinnu MTU ni deede, ati pe iwọnyi ni awọn abajade wọn laisi iṣeto ni afikun.
Kini nipa ohun elo gidi kan? Bii o ti le rii, iṣẹ gbogbogbo fun HTTP jẹ kekere diẹ ju fun TCP. Paapa ti o ba lo HTTP pẹlu TCP, a tunto iperf3 ninu aami ala TCP lati yago fun ibẹrẹ ti o lọra ti yoo ni ipa lori aami HTTP. Gbogbo eniyan ṣe iṣẹ to dara nibi. Kube-router ni anfani ti o daju, ṣugbọn WeaveNet ko ṣe daradara: nipa 20% buru ju irin lọ. Cilium ati WeaveNet pẹlu ìsekóòdù wo gan ìbànújẹ.
Pẹlu FTP, Ilana ti o da lori TCP miiran, awọn abajade yatọ. Flannel ati Kube-router ṣe iṣẹ naa, ṣugbọn Calico, Canal ati Cilium jẹ diẹ lẹhin ati pe o jẹ nipa 10% losokepupo ju irin igboro lọ. WeaveNet wa lẹhin nipasẹ bii 17%, ṣugbọn WeaveNet ti paroko jẹ 40% niwaju Cilium ti paroko.
Pẹlu SCP a le rii lẹsẹkẹsẹ iye ti fifi ẹnọ kọ nkan SSH jẹ iye owo wa. O fẹrẹ jẹ pe gbogbo awọn CNI n ṣe daradara, ṣugbọn WeaveNet n dinku lẹhin lẹẹkansi. Cilium ati WeaveNet pẹlu fifi ẹnọ kọ nkan ni a nireti pe o buru julọ nitori fifi ẹnọ kọ nkan meji (SSH + CNI).
Eyi ni tabili akojọpọ pẹlu awọn abajade:
Lilo awọn oluşewadi
Bayi jẹ ki a ṣe afiwe bii CNI ṣe n gba awọn orisun labẹ awọn ẹru iwuwo (lakoko gbigbe TCP, 10 Gbps). Ninu awọn idanwo iṣẹ a ṣe afiwe CNI pẹlu irin igboro (ila alawọ ewe). Fun agbara awọn oluşewadi, jẹ ki a ṣe afihan Kubernetes mimọ (laini eleyi ti) laisi CNI ati wo iye awọn orisun afikun CNI n gba.
Jẹ ká bẹrẹ pẹlu iranti. Eyi ni iye apapọ fun Ramu awọn apa (laisi awọn buffers ati kaṣe) ni MB lakoko gbigbe.
Flannel ati Kube-router fihan awọn esi to dara julọ - 50 MB nikan. Calico ati Canal kọọkan ni 70. WeaveNet njẹ kedere diẹ sii ju awọn miiran lọ - 130 MB, ati Cilium nlo bi 400.
Bayi jẹ ki ká ṣayẹwo awọn Sipiyu akoko agbara. Ohun akiyesi: aworan atọka ko fihan awọn ipin ogorun, ṣugbọn ppm, iyẹn ni, 38 ppm fun “irin igboro” jẹ 3,8%. Eyi ni awọn abajade:
Calico, Canal, Flannel ati Kube-router jẹ daradara Sipiyu daradara - nikan 2% diẹ sii ju Kubernetes laisi CNI. WeaveNet lags jina sile pẹlu afikun 5%, atẹle nipa Cilium ni 7%.
Eyi ni akopọ ti lilo awọn orisun:
Awọn esi
Tabili pẹlu gbogbo awọn abajade:
ipari
Ni apakan ti o kẹhin Emi yoo ṣalaye ero-ara mi lori awọn abajade. Ranti pe ala yii nikan ṣe idanwo igbejade ti asopọ ẹyọkan lori iṣupọ kekere pupọ (awọn apa 3). Ko kan awọn iṣupọ nla (<50 nodes) tabi awọn asopọ ti o jọra.
Mo ṣeduro lilo awọn CNI wọnyi da lori oju iṣẹlẹ naa:
- Ṣe o ni ninu rẹ iṣupọ apa pẹlu diẹ oro (ọpọlọpọ GB ti Ramu, ọpọlọpọ awọn ohun kohun) ati pe o ko nilo awọn ẹya aabo - yan Flannel. Eyi jẹ ọkan ninu awọn CNI ti o munadoko julọ. Ati pe o ni ibamu pẹlu ọpọlọpọ awọn ayaworan ile (amd64, apa, arm64, bbl). Ni afikun, eyi jẹ ọkan ninu awọn meji (keji jẹ Cilium) CNI ti o le ṣe ipinnu MTU laifọwọyi, nitorina o ko ni lati tunto ohunkohun. Kube-router tun dara, ṣugbọn kii ṣe bii boṣewa ati pe iwọ yoo nilo lati tunto MTU pẹlu ọwọ.
- Ti o ba nilo encrypt nẹtiwọki fun ailewu, gba WeaveNet. Maṣe gbagbe lati pato iwọn MTU ti o ba nlo awọn fireemu jumbo, ati mu fifi ẹnọ kọ nkan ṣiṣẹ nipa sisọ ọrọ igbaniwọle kan nipasẹ oniyipada ayika. Ṣugbọn o dara lati gbagbe nipa iṣẹ ṣiṣe - iyẹn ni idiyele fifi ẹnọ kọ nkan.
- fun lilo deede советую Calico. CNI yii jẹ lilo pupọ ni ọpọlọpọ awọn irinṣẹ imuṣiṣẹ Kubernetes (Kops, Kubespray, Rancher, bbl). Gẹgẹbi WeaveNet, rii daju pe o tunto MTU ni ConfigMap ti o ba nlo awọn fireemu jumbo. O jẹ ohun elo iṣẹ-ọpọlọpọ ti o munadoko ni awọn ofin ti lilo awọn orisun, iṣẹ ati aabo.
Ati nikẹhin, Mo gba ọ ni imọran lati tẹle idagbasoke naa Siliomu. CNI yii ni ẹgbẹ ti nṣiṣe lọwọ pupọ ti o ṣiṣẹ pupọ lori ọja wọn (awọn ẹya ara ẹrọ, ifowopamọ awọn orisun, iṣẹ ṣiṣe, aabo, iṣupọ…) ati pe wọn ni awọn ero ti o nifẹ pupọ.
orisun: www.habr.com