Sa a se aktyalizasyon mwen an
Premye a tout, mwen vle remèsye ekip Cilium la: mesye yo te ede m 'tcheke ak korije scripts siveyans mezi yo.
Ki sa ki chanje depi Novanm 2018
Men sa ki chanje depi lè sa a (si w enterese):
Flanèl rete koòdone CNI ki pi rapid ak pi senp, men li toujou pa sipòte politik rezo ak chifreman.
Romana pa sipòte ankò, kidonk nou retire li nan referans lan.
WeaveNet kounye a sipòte politik rezo pou Antre ak Sòti! Men, pwodiktivite te diminye.
Nan Calico, ou toujou bezwen manyèlman configured gwosè maksimòm pake (MTU) pou pi bon pèfòmans. Calico ofri de opsyon pou enstale CNI, kidonk, ou ka fè san yo pa yon depo ETCD separe:
- estoke eta nan API Kubernetes kòm yon magazen done (gwosè gwoup < 50 nœuds);
- eta estoke nan API Kubernetes kòm yon magazen done ak yon prokurasyon Typha pou soulaje chaj la sou API K8S (gwosè gwoup > 50 nœuds).
Calico te anonse sipò
Cilium kounye a sipòte chifreman! Cilium bay chifreman ak tinèl IPSec epi li ofri yon altènativ a rezo WeaveNet chiffres. Men, WeaveNet se pi vit pase Cilium ak chifreman pèmèt.
Cilium se kounye a pi fasil pou deplwaye gras a operatè ETCD entegre.
Ekip Cilium la te eseye koupe kèk pwa nan CNI li yo pa diminye konsomasyon memwa ak depans CPU, men konpetitè li yo toujou pi lejè.
Kontèks referans
Referans lan ap kouri sou twa sèvè Supermicro ki pa virtualize ak yon switch Supermicro 10 Gb. Sèvè yo konekte dirèkteman nan switch la atravè pasif DAC SFP + câbles epi yo configuré sou menm VLAN ak ankadreman jumbo (MTU 9000).
Kubernetes 1.14.0 enstale sou Ubuntu 18.04 LTS ak Docker 18.09.2 (vèsyon Docker default nan lage sa a).
Pou amelyore repwodiksyon, nou deside toujou konfigirasyon mèt la sou premye ne, mete pati nan sèvè nan referans nan dezyèm sèvè a, ak pati nan kliyan sou twazyèm lan. Pou fè sa, nou itilize NodeSelector nan deplwaman Kubernetes.
Nou pral dekri rezilta referans yo sou echèl sa a:
Chwazi yon CNI pou yon referans
Sa a se yon referans sèlman pou CNI nan lis la nan seksyon an
Nou pral konpare CNI sa yo:
- Calico v3.6
- Canal v3.6 (esansyèlman flanèl pou rezo + Calico kòm yon firewall)
- Cilium 1.4.2
- Flanèl 0.11.0
- Kube-routeur 0.2.5
- WeaveNet 2.5.1
Enstalasyon
Plis CNI a se fasil enstale, se pi bon premye enpresyon nou an pral. Tout CNI ki soti nan referans yo trè fasil pou enstale (ak youn oswa de kòmandman).
Kòm nou te di, sèvè yo ak switch yo configuré ak ankadreman jumbo pèmèt (nou mete MTU a 9000). Nou ta kontan si CNI otomatikman detèmine MTU a ki baze sou konfigirasyon adaptè yo. Sepandan, sèlman Cilium ak Flannel jere sa a. Rès CNI yo gen demann sou GitHub pou ajoute otomatik dekouvèt MTU, men nou pral konfigirasyon li manyèlman lè nou chanje ConfigMap pou Calico, Canal ak Kube-router, oswa pase yon varyab anviwònman pou WeaveNet.
Ki pwoblèm ki genyen ak MTU ki pa kòrèk? Dyagram sa a montre diferans ki genyen ant WeaveNet ak MTU default ak ankadreman jumbo aktive:
Nou te wè ki jan MTU enpòtan pou pèfòmans, kounye a ann wè ki jan CNI nou yo otomatikman detèmine li:
Graf la montre ke ou bezwen konfigirasyon MTU pou Calico, Canal, Kube-routeur ak WeaveNet pou pèfòmans optimal. Cilium ak Flannel yo te kapab kòrèkteman detèmine MTU a tèt yo san okenn paramèt.
Безопасность
Nou pral konpare sekirite CNI nan de aspè: kapasite nan ankripte done transmèt ak aplikasyon politik rezo Kubernetes (ki baze sou tès reyèl, pa dokiman).
Se sèlman de CNI yo ankripte done: Cilium ak WeaveNet. Ankripteman WeaveNet pèmèt lè w mete modpas chifreman an kòm yon varyab anviwònman CNI. NAN
Kòm pou aplikasyon an nan politik rezo, yo te reyisi Calico, Canal, Cilium ak WeaveNet, kote ou ka configured règ Antre ak Sòti. Pou Kube-routeur gen règ sèlman pou Ingress, ak Flanèl Pa gen okenn politik rezo ditou.
Men rezilta jeneral yo:
Rezilta referans pèfòmans sekirite
Pwodiktivite
Referans sa a montre debi an mwayèn sou omwen twa kouri nan chak tès. Nou teste pèfòmans TCP ak UDP (itilize iperf3), aplikasyon reyèl tankou HTTP (ak Nginx ak curl) oswa FTP (ak vsftpd ak curl) epi finalman pèfòmans aplikasyon an lè l sèvi avèk chifreman ki baze sou SCP (itilize kliyan ak sèvè OpenSSH).
Pou tout tès yo, nou te fè yon referans metal vid (liy vèt) pou konpare pèfòmans CNI ak pèfòmans rezo natif natal. Isit la nou itilize menm echèl la, men nan koulè:
- Jòn = trè bon
- Orange = bon
- Blue = konsa-konsa
- Wouj = move
Nou p ap pran CNI ki pa kòrèk epi n ap montre rezilta sèlman pou CNI ki gen MTU ki kòrèk la. (Remak: Cilium pa kòrèkteman kalkile MTU a si ou pèmèt chifreman, kidonk w ap oblije manyèlman diminye MTU a 8900 nan vèsyon 1.4. Pwochen vèsyon an, 1.5, fè sa otomatikman.)
Men rezilta yo:
Tout CNI yo te fè byen nan referans TCP la. CNI ak chifreman lag byen lwen dèyè paske chifreman se chè.
La tou, tout CNI yo ap mache byen. CNI ak chifreman te montre prèske menm rezilta a. Cilium se yon ti kras dèyè konpetisyon an, men li la sèlman 2,3% nan metal fè, kidonk li pa yon move rezilta. Pa bliye ke sèlman Cilium ak Flannel detèmine MTU a kòrèkteman tèt yo, e sa yo se rezilta yo san okenn konfigirasyon adisyonèl.
E yon aplikasyon reyèl? Kòm ou ka wè, pèfòmans jeneral pou HTTP se yon ti kras pi ba pase pou TCP. Menm si ou itilize HTTP ak TCP, nou konfigirasyon iperf3 nan referans TCP pou evite yon kòmansman dousman ki ta afekte referans HTTP. Tout moun te fè yon bon travay isit la. Kube-routeur gen yon avantaj klè, men WeaveNet pa t 'fè byen: apeprè 20% pi mal pase metal fè. Cilium ak WeaveNet ak chifreman sanble vrèman tris.
Avèk FTP, yon lòt pwotokòl ki baze sou TCP, rezilta yo varye. Flanèl ak Kube-routeur fè travay la, men Calico, Canal ak Cilium yo yon ti kras dèyè epi yo apeprè 10% pi dousman pase metal fè. WeaveNet se dèyè pa otan ke 17%, men WeaveNet chiffres se 40% devan Cilium chiffres.
Avèk SCP nou ka imedyatman wè konbyen SSH chifreman koute nou. Prèske tout CNI yo ap fè byen, men WeaveNet ap retade ankò. Cilium ak WeaveNet ak chifreman yo espere pi move a akòz doub chifreman (SSH + CNI).
Men yon tablo rezime ak rezilta yo:
Konsomasyon resous
Koulye a, ann konpare ki jan CNI konsome resous anba chay lou (pandan transfè TCP, 10 Gbps). Nan tès pèfòmans nou konpare CNI ak metal fè (liy vèt). Pou konsomasyon resous, ann montre pi Kubernetes (liy koulè wouj violèt) san CNI epi wè konbyen resous siplemantè CNI konsome.
Ann kòmanse ak memwa. Men valè mwayèn pou RAM nœuds yo (eksepte tanpon ak kachèt) nan MB pandan transfè.
Flanèl ak Kube-routeur te montre rezilta ekselan - sèlman 50 MB. Calico ak Canal chak gen 70. WeaveNet byen klè konsome plis pase lòt yo - 130 MB, ak Cilium itilize otan ke 400.
Koulye a, kite a tcheke konsomasyon nan tan CPU. Remakab: dyagram nan montre pa pousantaj, men ppm, se sa ki, 38 ppm pou "fè fè" se 3,8%. Men rezilta yo:
Calico, Canal, Flannel ak Kube-routeur yo trè efikas CPU - sèlman 2% plis pase Kubernetes san CNI. WeaveNet lag byen lwen dèyè ak yon siplemantè 5%, ki te swiv pa Cilium nan 7%.
Men yon rezime konsomasyon resous:
Rezilta
Tablo ak tout rezilta yo:
Konklizyon
Nan dènye pati a mwen pral eksprime opinyon subjectif mwen sou rezilta yo. Sonje ke referans sa a sèlman teste debi yon sèl koneksyon sou yon grap piti anpil (3 nœuds). Li pa aplike nan gwo grap (<50 nœuds) oswa koneksyon paralèl.
Mwen rekòmande pou itilize CNI sa yo depann de senaryo a:
- ou genyen nan grap ou a nœuds ak kèk resous (plizyè GB RAM, plizyè nwayo) epi ou pa bezwen karakteristik sekirite - chwazi Flanèl. Sa a se youn nan CNI ki pi pri-efikas. Epi li konpatib ak yon gran varyete achitekti (amd64, bra, arm64, elatriye). Anplis de sa, sa a se youn nan de (lòt la se Cilium) CNI ki ka otomatikman detèmine MTU a, kidonk, ou pa bezwen konfigirasyon anyen. Kube-routeur tou apwopriye, men li pa kòm estanda epi w ap bezwen manyèlman configured MTU la.
- Si sa nesesè ankripte rezo a pou sekirite, pran WeaveNet. Pa bliye presize gwosè MTU a si w ap itilize ankadreman jumbo, epi pèmèt chifreman lè w espesifye yon modpas atravè yon varyab anviwònman. Men, li pi bon bliye sou pèfòmans - sa a se pri a nan chifreman.
- Pou itilizasyon nòmal Mwen konseye endyèn. CNI sa a lajman itilize nan divès zouti deplwaman Kubernetes (Kops, Kubespray, Rancher, elatriye). Menm jan ak WeaveNet, asire w ke w configured MTU a nan ConfigMap si w ap itilize ankadreman jumbo. Li se yon zouti milti-fonksyonèl ki efikas an tèm de konsomasyon resous, pèfòmans ak sekirite.
E finalman, mwen konseye w swiv devlopman an sily. CNI sa a gen yon ekip trè aktif ki travay anpil sou pwodwi yo (karakteristik, ekonomize resous, pèfòmans, sekirite, clustering...) epi yo gen plan trè enteresan.
Dyagram vizyèl pou seleksyon CNI
Sous: www.habr.com